Beispiel #1
0
 void recordMemberRemoved(Record &def, Variable &key)
 {
     if(keys.contains(key.name()))
     {
         key.audienceForChangeFrom() -= this;
         parents.remove(&key);
         removeFromLookup(key.name(), key.value(), def);
     }
 }
Beispiel #2
0
 void recordMemberAdded(Record &def, Variable &key)
 {
     // Keys must be observed so that they are indexed in the lookup table.
     if(keys.contains(key.name()))
     {
         // Index definition using its current value.
         // Observe empty keys so we'll get the key's value when it's set.
         if(addToLookup(key.name(), key.value(), def) ||
            isEmptyKeyValue(key.value()))
         {
             parents.insert(&key, &def);
             key.audienceForChangeFrom() += this;
         }
     }
 }