The function checks if the object satisfies the subscription and adds to changes. The actions could be: '+' - created '~' - changed '-' - deleted
981 {
982
983 bool any = (class_names.empty() && objects.empty());
984
985
986
987
988
989
990
991 OksConfiguration::SMap::const_iterator omi = objects.end();
992
993 if(action != '+') {
994 omi = objects.find(obj_class);
995 if(omi != objects.end()) {
996 std::set<std::string>::const_iterator i = omi->second.find(obj_id);
997
998 if(i != omi->second.end()) {
1000 }
1001 }
1002 }
1003
1004
1005
1006
1007 if(action == '+' || omi == objects.end()) {
1008 if(any || class_names.find(obj_class) != class_names.end()) {
1010 }
1011 }
1012
1013
1014
1015
1016 OksConfiguration::SMap::const_iterator it = inheritance.
data().find(obj_class);
1017 if(it != inheritance.
data().end()) {
1018 for(std::set<std::string>::const_iterator j = it->second.begin(); j != it->second.end(); ++j) {
1019 omi = (
action !=
'+' ? objects.find(*j) : objects.end());
1020
1021
1022
1023
1024
1025 if(
1026 any ||
1027 (
1028 omi == objects.end() &&
1029 class_names.find(*j) != class_names.end()
1030 ) ||
1031 (
1032 omi != objects.end() &&
1033 omi->second.find(obj_id) != omi->second.end()
1034 )
1035 ) {
1037 }
1038 }
1039 }
1040}
static void add(std::vector< ConfigurationChange * > &changes, const std::string &class_name, const std::string &obj_id, const char action)
Helper method to add object to the vector of existing changes.
const OksConfiguration::SMap & data() const