LocalRepository::LocalRepository(void) : context(0) { // the SimpleDeclContext object does not handle inheritance so it is necessary to create super-class // qualifiers and properties in subclasses. context = new SimpleDeclContext; // create essential qualifiers CIMQualifierDecl abstractQualifier("Abstract", Boolean(true), CIMScope::CLASS, CIMFlavor::NONE); CIMQualifierDecl keyQualifier("Key", Boolean(true), (CIMScope::PROPERTY + CIMScope::REFERENCE), CIMFlavor::TOSUBCLASS); context->addQualifierDecl("test_namespace", abstractQualifier); context->addQualifierDecl("test_namespace", keyQualifier); // create base class { CIMClass classA("ClassA"); classA.addQualifier(CIMQualifier("Abstract", Boolean(true))); CIMProperty property1("Property1", CIMValue(CIMTYPE_UINT32, 0, 0), 0, CIMName(), "ClassA"); classA.addProperty(property1); CIMProperty property2("Property2", CIMValue(String("default_value")), 0, CIMName(), "ClassA"); classA.addProperty(property2); CIMProperty property3("Property3", CIMValue(CIMTYPE_DATETIME, 0, 0), 0, CIMName(), "ClassA"); classA.addProperty(property3); // add class to namespace context->addClass("test_namespace", classA); } // create sub-class { CIMClass classB("ClassB", "ClassA"); classB.addQualifier(CIMQualifier("Abstract", Boolean(true))); CIMProperty property1("Property1", CIMValue(CIMTYPE_UINT32, 0, 0), 0, CIMName(), "ClassA"); property1.addQualifier(CIMQualifier("Key", Boolean(true))); classB.addProperty(property1); CIMProperty property2("Property2", CIMValue(String("default_value")), 0, CIMName(), "ClassA"); property2.addQualifier(CIMQualifier("Key", Boolean(true))); classB.addProperty(property2); CIMProperty property3("Property3", CIMValue(CIMTYPE_DATETIME, 0, 0), 0, CIMName(), "ClassA"); property3.addQualifier(CIMQualifier("Key", Boolean(true))); classB.addProperty(property3); CIMProperty property4("Property4", CIMValue(String("default_value")), 0, CIMName(), "ClassB"); classB.addProperty(property4); // add class to namespace context->addClass("test_namespace", classB); } // create sub-class { CIMClass classC("ClassC", "ClassB"); classC.addQualifier(CIMQualifier("Description", String(""))); CIMProperty property1("Property1", CIMValue(CIMTYPE_UINT32, 0, 0), 0, CIMName(), "ClassA"); property1.addQualifier(CIMQualifier("Key", Boolean(true))); property1.addQualifier(CIMQualifier("Description", String(""))); classC.addProperty(property1); CIMProperty property2("Property2", CIMValue(String("default_value")), 0, CIMName(), "ClassA"); property2.addQualifier(CIMQualifier("Key", Boolean(true))); property2.addQualifier(CIMQualifier("Description", String(""))); classC.addProperty(property2); CIMProperty property3("Property3", CIMValue(CIMTYPE_DATETIME, 0, 0), 0, CIMName(), "ClassA"); property3.addQualifier(CIMQualifier("Key", Boolean(true))); property3.addQualifier(CIMQualifier("Description", String(""))); classC.addProperty(property3); CIMProperty property4("Property4", CIMValue(CIMTYPE_STRING, 0, 0), 0, CIMName(), "ClassB"); property4.addQualifier(CIMQualifier("Description", String(""))); classC.addProperty(property4); CIMProperty property5("Property5", CIMValue(CIMTYPE_REAL32, 0, 0), 0, CIMName(), "ClassC"); classC.addProperty(property5); CIMProperty property6("Property6", CIMValue(CIMTYPE_REAL64, 0, 0), 0, CIMName(), "ClassC"); classC.addProperty(property6); CIMProperty property7("Property7", CIMValue(CIMTYPE_STRING, 0, 0), 0, CIMName(), "ClassC"); classC.addProperty(property7); CIMProperty property8("Property8", CIMValue(CIMTYPE_STRING, 0, 0), 0, CIMName(), "ClassC"); classC.addProperty(property8); CIMProperty property9("Property9", CIMValue(CIMTYPE_STRING, 0, 0), 0, CIMName(), "ClassC"); classC.addProperty(property9); CIMProperty property10("Property10", CIMValue(CIMTYPE_STRING, 0, 0), 0, CIMName(), "ClassC"); classC.addProperty(property10); CIMProperty property11("Property11", CIMValue(CIMTYPE_STRING, 0, 0), 0, CIMName(), "ClassC"); classC.addProperty(property11); CIMProperty property12("Property12", CIMValue(CIMTYPE_STRING, 0, 0), 0, CIMName(), "ClassC"); classC.addProperty(property12); CIMProperty property13("Property13", CIMValue(CIMTYPE_STRING, 0, 0), 0, CIMName(), "ClassC"); classC.addProperty(property13); CIMProperty property14("Property14", CIMValue(CIMTYPE_STRING, 0, 0), 0, CIMName(), "ClassC"); classC.addProperty(property14); CIMProperty property15("Property15", CIMValue(CIMTYPE_STRING, 0, 0), 0, CIMName(), "ClassC"); classC.addProperty(property15); CIMProperty property16("Property16", CIMValue(CIMTYPE_STRING, 0, 0), 0, CIMName(), "ClassC"); classC.addProperty(property16); CIMProperty property17("Property17", CIMValue(CIMTYPE_STRING, 0, 0), 0, CIMName(), "ClassC"); classC.addProperty(property17); CIMProperty property18("Property18", CIMValue(CIMTYPE_STRING, 0, 0), 0, CIMName(), "ClassC"); classC.addProperty(property18); CIMProperty property19("Property19", CIMValue(CIMTYPE_STRING, 0, 0), 0, CIMName(), "ClassC"); classC.addProperty(property19); CIMProperty property20("Property20", CIMValue(CIMTYPE_STRING, 0, 0), 0, CIMName(), "ClassC"); classC.addProperty(property20); // add class to namespace context->addClass("test_namespace", classC); } // TODO: add association object // TODO: add indication object // TODO: add object with embedded object }
typename BinaryFunction::result_type operator () (const typename Property1::Type& item) { return binary_function(property1(item), property2(item)); }