(file) Return to Message.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

Diff for /pegasus/src/Pegasus/Common/Message.h between version 1.5.2.11 and 1.16

version 1.5.2.11, 2001/12/06 22:33:25 version 1.16, 2002/02/02 01:03:31
Line 26 
Line 26 
 // Modified By: Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com) // Modified By: Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
 // Modified By: Carol Ann Krug Graves, Hewlett-Packard Company // Modified By: Carol Ann Krug Graves, Hewlett-Packard Company
 //              (carolann_graves@hp.com) //              (carolann_graves@hp.com)
   // Modified By: Mike Day (mdday@us.ibm.com)
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
 #ifndef Pegasus_Message_h #ifndef Pegasus_Message_h
 #define Pegasus_Message_h #define Pegasus_Message_h
  
   #include <Pegasus/Common/Config.h>
 #include <iostream> #include <iostream>
 #include <cstring> #include <cstring>
 #include <Pegasus/Common/Config.h>  
 #include <Pegasus/Common/Exception.h> #include <Pegasus/Common/Exception.h>
 #include <Pegasus/Common/IPC.h> #include <Pegasus/Common/IPC.h>
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
 class PEGASUS_EXPORT message_mask  // REVIEW: could class be renamed to MessageMask (coding standard)?
   
   class PEGASUS_COMMON_LINKAGE message_mask
 { {
    public:    public:
   
       static Uint32 type_legacy;       static Uint32 type_legacy;
       static Uint32 type_CIMClass;        static Uint32 type_CIMOperation;
       static Uint32 type_CIMInstance;        static Uint32 type_CIMAsyncOperation;
       static Uint32 type_CIMIndication;        static Uint32 type_export;
       static Uint32 type_CIMQualifier;        static Uint32 type_lifetime;
       static Uint32 type_CIMSubscription;  
       static Uint32 type_socket;       static Uint32 type_socket;
       static Uint32 type_connection;       static Uint32 type_connection;
       static Uint32 type_http;       static Uint32 type_http;
       static Uint32 type_cimom;       static Uint32 type_cimom;
   
       static Uint32 type_request;  
       static Uint32 type_reply;  
       static Uint32 type_control;       static Uint32 type_control;
         static Uint32 type_service;
         static Uint32 type_broadcast;
   
         static Uint32 ha_no_delete;
         static Uint32 ha_request;
         static Uint32 ha_reply;
         static Uint32 ha_synchronous;
         static Uint32 ha_async;
   
         // more for documentation than for use
   
         inline Uint32 get_type(Uint32 flags)
         {
            return (flags & 0x000fffff);
         }
   
         inline Uint32 get_handling(Uint32 flags)
         {
            return( flags & 0xfff00000);
         }
 }; };
  
 class MessageQueue; class MessageQueue;
Line 76 
Line 96 
 { {
 public: public:
  
     Message(Uint32 type, Uint32 key = getNextKey(), Uint32 mask = message_mask::type_legacy)        Message(
         : _type(type), _key(key), _mask(mask), _next(0), _prev(0) { }           Uint32 type,
            Uint32 key = getNextKey(),
            Uint32 routing_code = 0,
            Uint32 mask = message_mask::type_legacy)
            :
            _type(type),
            _key(key),
            _routing_code(routing_code),
            _mask(mask),
            _next(0),
            _prev(0)
         {
  
         }
  
     virtual ~Message();     virtual ~Message();
  
Line 90 
Line 122 
  
     void setKey(Uint32 key) { _key = key; }     void setKey(Uint32 key) { _key = key; }
  
         Uint32 getRouting() const { return _routing_code; }
         void setRouting(Uint32 routing) { _routing_code = routing; }
   
         Uint32 getMask() const { return _mask; }
   
         void setMask(Uint32 mask) { _mask = mask; }
   
     Message* getNext() { return _next; }     Message* getNext() { return _next; }
  
     const Message* getNext() const { return _next; }     const Message* getNext() const { return _next; }
Line 109 
Line 148 
  
     virtual void print(PEGASUS_STD(ostream)& os) const;     virtual void print(PEGASUS_STD(ostream)& os) const;
  
         // << Thu Dec 27 10:46:04 2001 mdd >> for use with DQueue container
         // as used by AsyncOpNode
         Boolean operator == (void *msg )
         {
            if (reinterpret_cast<void *>(this) == msg )
               return true;
            return false;
         }
   
   
 private: private:
       Uint32 _type;       Uint32 _type;
       Uint32 _key;       Uint32 _key;
         Uint32 _routing_code;
       Uint32 _mask;       Uint32 _mask;
       Message* _next;       Message* _next;
       Message* _prev;       Message* _prev;
Line 122 
Line 172 
 }; };
  
  
 // each component needs to support a set of these messgaes and pass that array  
 // to the dispatcher so the dispatcher can route messages at the first level  
 // i.e., client will not accept request messages.  
 // every message should have a response  
   
 // dispatcher supports full cim api set (as below)  
 // repository needs to be a peer to the provider manager  
 //  
   
 // mkdir _dispatcher  
 // mkdir _providermanager  
 // mkdir _server (http incoming, front end)  
 // mkdir _repositorymanager  
 //       _subscriptionprocessor  
 //       _indicationprocessor  
 //       _configurationmanager  
 //       _cimom (loads and links everyone, hooks up queues)  
   
 // fundamental messages:  
   
 // start, stop, pause, resume  
 // handshaking: interrogate (as in windows service api)  
 //              message class support  
 //              message namespace support ???  
   
 enum MessageType enum MessageType
 { {
     DUMMY_MESSAGE,     DUMMY_MESSAGE,
Line 181 
Line 206 
     CIM_ENABLE_INDICATION_SUBSCRIPTION_REQUEST_MESSAGE,     CIM_ENABLE_INDICATION_SUBSCRIPTION_REQUEST_MESSAGE,
     CIM_MODIFY_INDICATION_SUBSCRIPTION_REQUEST_MESSAGE,     CIM_MODIFY_INDICATION_SUBSCRIPTION_REQUEST_MESSAGE,
     CIM_DISABLE_INDICATION_SUBSCRIPTION_REQUEST_MESSAGE,     CIM_DISABLE_INDICATION_SUBSCRIPTION_REQUEST_MESSAGE,
       CIM_PROCESS_INDICATION_REQUEST_MESSAGE,
       CIM_NOTIFY_PROVIDER_REGISTRATION_REQUEST_MESSAGE,
       CIM_NOTIFY_PROVIDER_TERMINATION_REQUEST_MESSAGE,
     CIM_GET_CLASS_RESPONSE_MESSAGE,     CIM_GET_CLASS_RESPONSE_MESSAGE,
     CIM_GET_INSTANCE_RESPONSE_MESSAGE,     CIM_GET_INSTANCE_RESPONSE_MESSAGE,
     CIM_EXPORT_INDICATION_RESPONSE_MESSAGE,     CIM_EXPORT_INDICATION_RESPONSE_MESSAGE,
Line 209 
Line 237 
     CIM_ENABLE_INDICATION_SUBSCRIPTION_RESPONSE_MESSAGE,     CIM_ENABLE_INDICATION_SUBSCRIPTION_RESPONSE_MESSAGE,
     CIM_MODIFY_INDICATION_SUBSCRIPTION_RESPONSE_MESSAGE,     CIM_MODIFY_INDICATION_SUBSCRIPTION_RESPONSE_MESSAGE,
     CIM_DISABLE_INDICATION_SUBSCRIPTION_RESPONSE_MESSAGE,     CIM_DISABLE_INDICATION_SUBSCRIPTION_RESPONSE_MESSAGE,
       CIM_PROCESS_INDICATION_RESPONSE_MESSAGE,
       CIM_NOTIFY_PROVIDER_REGISTRATION_RESPONSE_MESSAGE,
       CIM_NOTIFY_PROVIDER_TERMINATION_RESPONSE_MESSAGE,
  
     // Monitor-related messages:     // Monitor-related messages:
  


Legend:
Removed from v.1.5.2.11  
changed lines
  Added in v.1.16

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2