void _createSubscriptionInstance( CIMClient& client, const CIMObjectPath& filterPath, const CIMObjectPath& handlerPath, Uint16 onFatalErrorPolicy) { CIMInstance subscriptionInstance(PEGASUS_CLASSNAME_INDSUBSCRIPTION); subscriptionInstance.addProperty(CIMProperty(CIMName("Filter"), filterPath, 0, PEGASUS_CLASSNAME_INDFILTER)); subscriptionInstance.addProperty(CIMProperty(CIMName("Handler"), handlerPath, 0, PEGASUS_CLASSNAME_LSTNRDST_CIMXML)); subscriptionInstance.addProperty(CIMProperty( CIMName("SubscriptionState"), CIMValue((Uint16) 2))); subscriptionInstance.addProperty( CIMProperty( CIMName("OnFatalErrorPolicy"), CIMValue((Uint16) onFatalErrorPolicy))); CIMObjectPath path = client.createInstance(PEGASUS_NAMESPACENAME_INTEROP, subscriptionInstance); }
int createSubscription(CIMClient& client) { // Create a Listener Destination CIMInstance destinationInstance("CIM_ListenerDestinationCIMXML"); destinationInstance.addProperty(CIMProperty( CIMName("SystemCreationClassName"), System::getSystemCreationClassName())); // destinationInstance.addProperty(CIMProperty(CIMName("SystemName"), // System::getFullyQualifiedHostName())); // destinationInstance.addProperty(CIMProperty(CIMName("CreationClassName"), // String("CIM_ListenerDestinationCIMXML"))); destinationInstance.addProperty(CIMProperty(CIMName("Name"), String("EmbeddedInstance Test Handler"))); destinationInstance.addProperty(CIMProperty(CIMName("Destination"), String("http://localhost:2003"))); try { destinationPath = client.createInstance(TEST_NAMESPACE, destinationInstance); } catch (Exception& e) { cout << "Exception caught while creating listener destination: " << e.getMessage() << endl; return -1; } // Create a Filter CIMInstance filterInstance("CIM_IndicationFilter"); filterInstance.addProperty(CIMProperty( CIMName("SystemCreationClassName"), System::getSystemCreationClassName())); filterInstance.addProperty(CIMProperty(CIMName("SystemName"), System::getFullyQualifiedHostName())); filterInstance.addProperty(CIMProperty(CIMName("CreationClassName"), String("CIM_IndicationFilter"))); filterInstance.addProperty(CIMProperty(CIMName("Name"), String("Embedded Instance Test Filter"))); filterInstance.addProperty(CIMProperty(CIMName("Query"), String("SELECT * FROM PG_InstMethodIndication"))); filterInstance.addProperty(CIMProperty(CIMName("QueryLanguage"), String("CIM:CQL"))); filterInstance.addProperty(CIMProperty(CIMName("SourceNamespace"), TEST_NAMESPACE.getString())); try { filterPath = client.createInstance (TEST_NAMESPACE, filterInstance); } catch (Exception& e) { cout << "Exception caught while creating indication filter: " << e.getMessage() << endl; return -1; } // Create a Subscription CIMInstance subscriptionInstance("CIM_IndicationSubscription"); subscriptionInstance.addProperty(CIMProperty(CIMName("Filter"), filterPath, 0, "CIM_IndicationFilter")); subscriptionInstance.addProperty(CIMProperty(CIMName("Handler"), destinationPath, 0, "CIM_ListenerDestinationCIMXML")); subscriptionInstance.addProperty(CIMProperty( CIMName("SubscriptionState"), CIMValue((Uint16) 2))); try { subscriptionPath = client.createInstance(TEST_NAMESPACE, subscriptionInstance); } catch (Exception& e) { cout << "Exception caught while creating subscription: " << e.getMessage() << endl; return -1; } return 0; }