function createTmp($name, $ref = null)
 {
     $f = new Service($name, $this);
     $this->tmpserv[] = $f;
     $this->all[] = $f;
     $f->type = 'tmp';
     $f->addReference($ref);
     $this->fast[$f->name()] = $f;
     $this->fastMemToIndex[spl_object_hash($f)] = lastIndex($this->all);
     return $f;
 }
 /**
  * @param Rule $rule
  * @param bool $inPost
  * @return bool
  */
 public function addRule($rule, $inPost = false)
 {
     if (!is_object($rule)) {
         derr('this function only accepts Rule class objects');
     }
     if ($rule->owner !== null) {
         derr('Trying to add a rule that has a owner already !');
     }
     $ser = spl_object_hash($rule);
     if ($inPost !== true) {
         if (!isset($this->fastMemToIndex[$ser])) {
             $rule->owner = $this;
             $this->rules[] = $rule;
             $index = lastIndex($this->rules);
             $this->fastMemToIndex[$ser] = $index;
             $this->fastNameToIndex[$rule->name()] = $index;
             $this->xmlroot->appendChild($rule->xmlroot);
             return true;
         } else {
             derr('You cannot add a Rule that is already here :)');
         }
     } else {
         if (!isset($this->fastMemToIndex_forPost[$ser])) {
             $rule->owner = $this;
             $this->postRules[] = $rule;
             $index = lastIndex($this->postRules);
             $this->fastMemToIndex_forPost[$ser] = $index;
             $this->fastNameToIndex_forPost[$rule->name()] = $index;
             $this->postRulesRoot->appendChild($rule->xmlroot);
             return true;
         } else {
             derr('You cannot add a Rule that is already here :)');
         }
     }
     return false;
 }