(file) Return to SLPAttrib.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Server / Attic

Diff for /pegasus/src/Pegasus/Server/Attic/SLPAttrib.cpp between version 1.5 and 1.6

version 1.5, 2008/01/08 20:15:17 version 1.6, 2008/03/10 06:29:36
Line 97 
Line 97 
  
 // fill all data required for SLP. // fill all data required for SLP.
 // Returns true if specifie // Returns true if specifie
 Boolean SLPAttrib::fillData(String protocol)  String SLPAttrib::fillData( const CIMInstance &commInst,
                               const Array<CIMInstance> &objInstances,
                               const Array<CIMInstance> &nameSpaceInstances,
                               const Array<CIMInstance> &commMechInstances,
                               const Array<CIMInstance> &regProfileInstances,
                               const CIMClass & nameSpaceClass,
                               const CIMClass &commMechClass)
   
 { {
     CIMClient client;  
     CIMClass cimClass;     CIMClass cimClass;
     //  
     // open connection to CIMOM  
     //  
     String hostStr = System::getHostName();     String hostStr = System::getHostName();
       String protocol;
  
     try     try
     {     {
         //  
         client.connectLocal();  
   
         //  
         Array <CIMInstance> instances;         Array <CIMInstance> instances;
         CIMInstance saveInstance;         CIMInstance saveInstance;
         CIMValue val;         CIMValue val;
         Uint32 pos;         Uint32 pos;
         Boolean foundProtocol=false;  
         Boolean localOnly=true;  
         Boolean includeQualifiers=true;  
         Boolean includeClassOrigin=false;  
         Boolean deepInheritance=true;  
         Uint32 len = 0;         Uint32 len = 0;
  
           pos = commInst.findProperty (PROP_NAMESPACETYPE);
           PEGASUS_ASSERT (pos != PEG_NOT_FOUND);
           protocol = commInst.getProperty(pos).getValue ().toString();
           pos = commInst.findProperty (PROP_IPADDRESS);
           PEGASUS_ASSERT (pos != PEG_NOT_FOUND);
           val = commInst.getProperty(pos).getValue ();
   
           saveInstance = commInst;
           serviceUrl= PEGASUS_SLP_SERVICE_TYPE;
           serviceUrl.append(":");
           serviceUrl.append(protocol);
           serviceUrl.append("://");
           serviceUrl.append(val.toString());
   
         // set to true if there is "Other" property value in         // set to true if there is "Other" property value in
         // FunctionsProfilesSupported value.         // FunctionsProfilesSupported value.
         Boolean functionaProfileDescriptions = false;         Boolean functionaProfileDescriptions = false;
  
         instances = client.enumerateInstances (          instances = objInstances;
             PEGASUS_NAMESPACENAME_INTEROP,  
             PEGASUS_CLASSNAME_OBJECTMANAGER,  
             deepInheritance,  
             localOnly,  
             includeQualifiers,  
             includeClassOrigin);  
  
         PEGASUS_ASSERT (instances.size () == 1);         PEGASUS_ASSERT (instances.size () == 1);
  
Line 152 
Line 155 
         val = instances[0].getProperty(pos).getValue ();         val = instances[0].getProperty(pos).getValue ();
         serviceId = val.toString();         serviceId = val.toString();
  
         instances = client.enumerateInstances (          cimClass = nameSpaceClass;
             PEGASUS_NAMESPACENAME_INTEROP,          instances = nameSpaceInstances;
             PEGASUS_CLASSNAME_PG_CIMXMLCOMMUNICATIONMECHANISM,  
             deepInheritance,  
             localOnly,  
             includeQualifiers,  
             includeClassOrigin);  
   
         for (Uint32 n=instances.size(),i=0 ; i<n; i++)  
         {  
             pos = instances[i].findProperty (PROP_NAMESPACETYPE);  
             PEGASUS_ASSERT (pos != PEG_NOT_FOUND);  
             val = instances[i].getProperty(pos).getValue ();  
             if (val.toString() == protocol)  
             {  
                 pos = instances[i].findProperty (PROP_IPADDRESS);  
                 PEGASUS_ASSERT (pos != PEG_NOT_FOUND);  
                 val = instances[i].getProperty(pos).getValue ();  
                 // Save copy of instance of PG_CIMXMLCommunicationMechanism  
                 // matching protocol for later reference.  
                 saveInstance = instances[i];  
                 serviceUrl= PEGASUS_SLP_SERVICE_TYPE;  
                 serviceUrl.append(":");  
                 serviceUrl.append(protocol);  
                 serviceUrl.append("://");  
                 serviceUrl.append(val.toString());  
                 foundProtocol=true;  
                 break;  
             }  
         }  
         if (!foundProtocol)  
         {  
             // reset information that was already set  
             serviceHiName.clear();  
             serviceHiDescription.clear();  
             serviceId.clear();  
             return false;  
         }  
   
         cimClass = client.getClass(PEGASUS_NAMESPACENAME_INTEROP,  
             PEGASUS_CLASSNAME_CIMNAMESPACE);  
         instances = client.enumerateInstances  
             (PEGASUS_NAMESPACENAME_INTEROP, PEGASUS_CLASSNAME_CIMNAMESPACE,  
              deepInheritance, localOnly,includeQualifiers,includeClassOrigin);  
  
         for (Uint32 n=instances.size(),i=0 ; i<n; i++)         for (Uint32 n=instances.size(),i=0 ; i<n; i++)
         {         {
Line 221 
Line 182 
         if (len > 0)         if (len > 0)
             classes.remove( len-1,1);             classes.remove( len-1,1);
  
         cimClass = client.getClass (PEGASUS_NAMESPACENAME_INTEROP,          cimClass = commMechClass;
             PEGASUS_CLASSNAME_OBJECTMANAGERCOMMUNICATIONMECHANISM);          instances = commMechInstances;
         instances = client.enumerateInstances (PEGASUS_NAMESPACENAME_INTEROP,  
             PEGASUS_CLASSNAME_OBJECTMANAGERCOMMUNICATIONMECHANISM,  
             deepInheritance,localOnly,includeQualifiers,includeClassOrigin);  
  
         pos = saveInstance.findProperty (PROP_COMMUNICATIONMECHANISM);         pos = saveInstance.findProperty (PROP_COMMUNICATIONMECHANISM);
         PEGASUS_ASSERT (pos != PEG_NOT_FOUND);         PEGASUS_ASSERT (pos != PEG_NOT_FOUND);
Line 329 
Line 287 
         len = authenticationMechanismDescriptions.size();         len = authenticationMechanismDescriptions.size();
         if (len > 0)         if (len > 0)
             authenticationMechanismDescriptions.remove( len-1,1);             authenticationMechanismDescriptions.remove( len-1,1);
         instances = client.enumerateInstances (PEGASUS_NAMESPACENAME_INTEROP,  
             CIM_CLASSNAME_REGISTEREDPROFILE,          instances = regProfileInstances;
             deepInheritance,localOnly,includeQualifiers,includeClassOrigin);  
  
         for (Uint32 n=instances.size(),i=0 ; i<n; i++)         for (Uint32 n=instances.size(),i=0 ; i<n; i++)
         {         {
Line 376 
Line 333 
             "CIM Server registration with External SLP failed. Exception: $0.",             "CIM Server registration with External SLP failed. Exception: $0.",
             e.getMessage());             e.getMessage());
     }     }
   
     catch(...)     catch(...)
     {     {
         Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,         Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,
Line 384 
Line 340 
            "CIM Server registration with Internal SLP failed.");            "CIM Server registration with Internal SLP failed.");
     }     }
  
     client.disconnect();      return protocol;
     return true;  
 } }
  
 // Map Values to ValueMap // Map Values to ValueMap
Line 452 
Line 407 
         return retValue;         return retValue;
 } }
  
   void SLPAttrib::getAllRegs(Array<SLPAttrib> &httpAttribs,
       Array<SLPAttrib> &httpsAttribs)
   {
       Boolean localOnly=true;
       Boolean includeQualifiers=true;
       Boolean includeClassOrigin=false;
       Boolean deepInheritance=true;
   
       try
       {
           CIMClient client;
           client.connectLocal();
   
           Array<CIMInstance> commInstances = client.enumerateInstances (
               PEGASUS_NAMESPACENAME_INTEROP,
               PEGASUS_CLASSNAME_PG_CIMXMLCOMMUNICATIONMECHANISM,
               deepInheritance,
               localOnly,
               includeQualifiers,
               includeClassOrigin);
   
           Array<CIMInstance> objInstances = client.enumerateInstances (
               PEGASUS_NAMESPACENAME_INTEROP,
               PEGASUS_CLASSNAME_OBJECTMANAGER,
               deepInheritance,
               localOnly,
               includeQualifiers,
               includeClassOrigin);
   
           Array<CIMInstance> nameSpaceInstances = client.enumerateInstances (
               PEGASUS_NAMESPACENAME_INTEROP,
               PEGASUS_CLASSNAME_CIMNAMESPACE,
               deepInheritance,
               localOnly,
               includeQualifiers,
               includeClassOrigin);
   
           Array<CIMInstance> commMechInstances = client.enumerateInstances (
               PEGASUS_NAMESPACENAME_INTEROP,
               PEGASUS_CLASSNAME_OBJECTMANAGERCOMMUNICATIONMECHANISM,
               deepInheritance,
               localOnly,
               includeQualifiers,
               includeClassOrigin);
   
           Array<CIMInstance> regProfileInstances  = client.enumerateInstances (
               PEGASUS_NAMESPACENAME_INTEROP,
               CIM_CLASSNAME_REGISTEREDPROFILE,
               deepInheritance,
               localOnly,
               includeQualifiers,
               includeClassOrigin);
   
           CIMClass nameSpaceClass = client.getClass(
               PEGASUS_NAMESPACENAME_INTEROP,
               PEGASUS_CLASSNAME_CIMNAMESPACE);
   
           CIMClass commMechClass = client.getClass(
               PEGASUS_NAMESPACENAME_INTEROP,
               PEGASUS_CLASSNAME_OBJECTMANAGERCOMMUNICATIONMECHANISM);
   
           String protocol;
   
           for (Uint32 i = 0, n = commInstances.size(); i < n ; ++i)
           {
               SLPAttrib attr;
               protocol = attr.fillData(commInstances[i],
                                        objInstances,
                                        nameSpaceInstances,
                                        commMechInstances,
                                        regProfileInstances,
                                        nameSpaceClass,
                                        commMechClass);
   
               if (protocol == "http")
               {
                   httpAttribs.append(attr);
               }
               else if (protocol == "https")
               {
                   httpsAttribs.append(attr);
               }
               else
               {
                   PEGASUS_ASSERT(0);
               }
           }
       }
       catch(Exception& e)
       {
           Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,
               "Pegasus.Server.SLP.EXTERNAL_SLP_REGISTRATION_FAILED_EXCEPTION",
               "CIM Server registration with External SLP failed. Exception: $0.",
               e.getMessage());
       }
       catch(...)
       {
           Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,
              "Pegasus.Server.SLP.INTERNAL_SLP_REGISTRATION_FAILED_ERROR",
              "CIM Server registration with Internal SLP failed.");
       }
   }
   
 // Form the attributes String. // Form the attributes String.
 void SLPAttrib::formAttributes() void SLPAttrib::formAttributes()
 { {
Line 492 
Line 550 
     }     }
     return;     return;
 } }
   
   #define PEGASUS_ARRAY_T SLPAttrib
   #include <Pegasus/Common/ArrayImpl.h>
   #undef PEGASUS_ARRAY_T
   
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END


Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2