(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.33 and 1.47

version 1.33, 2002/05/01 21:32:53 version 1.47, 2003/10/16 21:05:54
Line 1 
Line 1 
 //%///-*-c++-*-/////////////////////////////////////////////////////////////////  //%///////////////////-*-c++-*-/////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001 BMC Software, Hewlett-Packard Company, IBM,  // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,
 // The Open Group, Tivoli Systems // The Open Group, Tivoli Systems
 // //
 // Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
Line 38 
Line 38 
 #include <Pegasus/Common/Config.h> #include <Pegasus/Common/Config.h>
 #include <iostream> #include <iostream>
 #include <cstring> #include <cstring>
 #include <Pegasus/Common/Exception.h>  #include <Pegasus/Common/InternalException.h>
 #include <Pegasus/Common/IPC.h> #include <Pegasus/Common/IPC.h>
 #include <Pegasus/Common/StatisticalData.h> #include <Pegasus/Common/StatisticalData.h>
   #include <Pegasus/Common/Linkage.h>
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
Line 92 
Line 93 
 class AsyncLegacyOperationStart; class AsyncLegacyOperationStart;
 class AsyncLegacyOperationResult; class AsyncLegacyOperationResult;
  
   enum HttpMethod
   {
       HTTP_METHOD__POST,
       HTTP_METHOD_M_POST
   };
   
 /** The Message class and derived classes are used to pass messages between /** The Message class and derived classes are used to pass messages between
     modules. Messages are passed between modules using the message queues     modules. Messages are passed between modules using the message queues
     (see MessageQueue class). Derived classes may add their own fields.     (see MessageQueue class). Derived classes may add their own fields.
Line 118 
Line 125 
          _key(key),          _key(key),
          _routing_code(routing_code),          _routing_code(routing_code),
          _mask(mask),          _mask(mask),
            _httpMethod (HTTP_METHOD__POST),
           _last_thread_id(pegasus_thread_self()),
          _next(0),          _next(0),
          _prev(0),          _prev(0),
          _async(0),          _async(0),
Line 126 
Line 135 
  
       }       }
  
       Message(const Message & msg)  
       {  
          if( this != &msg)  
          {  
             _type = msg._type;  
             _key = msg._key;  
             _routing_code = msg._routing_code;  
             _mask = msg._mask;  
             _next = _prev = _async = 0;  
             dest = msg.dest;  
          }  
       }  
   
       Message & operator = ( const Message & msg)       Message & operator = ( const Message & msg)
       {       {
          if (this != &msg)          if (this != &msg)
Line 147 
Line 143 
             _key = msg._key;             _key = msg._key;
             _routing_code = msg._routing_code;             _routing_code = msg._routing_code;
             _mask = msg._mask;             _mask = msg._mask;
               _last_thread_id = msg._last_thread_id;
             _next = _prev = _async = 0;             _next = _prev = _async = 0;
             dest = msg.dest;             dest = msg.dest;
               _httpMethod = msg._httpMethod;
   
          }          }
          return *this;          return *this;
       }       }
Line 171 
Line 170 
  
       void setMask(Uint32 mask) { _mask = mask; }       void setMask(Uint32 mask) { _mask = mask; }
  
         HttpMethod getHttpMethod() const { return _httpMethod; }
   
         void setHttpMethod(HttpMethod httpMethod) {_httpMethod = httpMethod;}
   
 #ifdef PEGASUS_HAS_PERFINST #ifdef PEGASUS_HAS_PERFINST
 // //
 // Needed for performance measurement // Needed for performance measurement
Line 233 
Line 236 
          return ret;          return ret;
       }       }
  
       virtual void print(PEGASUS_STD(ostream)& os) const;        virtual void print(
             PEGASUS_STD(ostream)& os,
             Boolean printHeader = true) const;
  
       // << Thu Dec 27 10:46:04 2001 mdd >> for use with DQueue container       // << Thu Dec 27 10:46:04 2001 mdd >> for use with DQueue container
       // as used by AsyncOpNode       // as used by AsyncOpNode
Line 257 
Line 262 
          _async = msg;          _async = msg;
       }       }
  
         // << Tue Jul  1 11:02:49 2003 mdd >> pep_88 and helper for i18n and l10n
         Boolean thread_changed(void)
         {
            if(_last_thread_id != pegasus_thread_self())
            {
               _last_thread_id = pegasus_thread_self();
               return true;
            }
   
            return false;
         }
   
         // << Tue Jul  1 13:41:02 2003 mdd >> pep_88 -
         // assist in synchronizing responses with requests
   
         void synch_response(Message *req)
         {
            _key = req->_key;
            _routing_code = req->_routing_code;
         }
   
  
    private:    private:
       Uint32 _type;       Uint32 _type;
       Uint32 _key;       Uint32 _key;
       Uint32 _routing_code;       Uint32 _routing_code;
       Uint32 _mask;       Uint32 _mask;
         HttpMethod _httpMethod;
 // Needed for performance measurement // Needed for performance measurement
       timeval _timeServerStart;       timeval _timeServerStart;
       timeval _timeServerEnd;       timeval _timeServerEnd;
Line 270 
Line 297 
       timeval _timeProviderEnd;       timeval _timeProviderEnd;
       Uint64 _totalTime;       Uint64 _totalTime;
 // //
   
         // << Tue Jul  1 11:02:35 2003 mdd >> pep_88 and helper for i18n and l10n
         PEGASUS_THREAD_TYPE _last_thread_id;
   
       Message* _next;       Message* _next;
       Message* _prev;       Message* _prev;
  
Line 282 
Line 313 
       MessageQueue* _owner;       MessageQueue* _owner;
       static Uint32 _nextKey;       static Uint32 _nextKey;
       static Mutex _mut;       static Mutex _mut;
   
   
   
       friend class cimom;       friend class cimom;
       friend class MessageQueue;       friend class MessageQueue;
       friend class MessageQueueService;       friend class MessageQueueService;
Line 341 
Line 375 
     CIM_DISABLE_MODULE_REQUEST_MESSAGE,     CIM_DISABLE_MODULE_REQUEST_MESSAGE,
     CIM_ENABLE_MODULE_REQUEST_MESSAGE,     CIM_ENABLE_MODULE_REQUEST_MESSAGE,
  
     CIM_GET_CLASS_RESPONSE_MESSAGE, // 40      CIM_STOP_ALL_PROVIDERS_REQUEST_MESSAGE,  // 40
   
       CIM_GET_CLASS_RESPONSE_MESSAGE,
     CIM_GET_INSTANCE_RESPONSE_MESSAGE,     CIM_GET_INSTANCE_RESPONSE_MESSAGE,
     CIM_EXPORT_INDICATION_RESPONSE_MESSAGE, // 42      CIM_EXPORT_INDICATION_RESPONSE_MESSAGE,
     CIM_DELETE_CLASS_RESPONSE_MESSAGE,     CIM_DELETE_CLASS_RESPONSE_MESSAGE,
     CIM_DELETE_INSTANCE_RESPONSE_MESSAGE,     CIM_DELETE_INSTANCE_RESPONSE_MESSAGE,
     CIM_CREATE_CLASS_RESPONSE_MESSAGE,     CIM_CREATE_CLASS_RESPONSE_MESSAGE,
     CIM_CREATE_INSTANCE_RESPONSE_MESSAGE,     CIM_CREATE_INSTANCE_RESPONSE_MESSAGE,
     CIM_MODIFY_CLASS_RESPONSE_MESSAGE,     CIM_MODIFY_CLASS_RESPONSE_MESSAGE,
     CIM_MODIFY_INSTANCE_RESPONSE_MESSAGE,     CIM_MODIFY_INSTANCE_RESPONSE_MESSAGE,
     CIM_ENUMERATE_CLASSES_RESPONSE_MESSAGE,      CIM_ENUMERATE_CLASSES_RESPONSE_MESSAGE,  // 50
     CIM_ENUMERATE_CLASS_NAMES_RESPONSE_MESSAGE,     CIM_ENUMERATE_CLASS_NAMES_RESPONSE_MESSAGE,
     CIM_ENUMERATE_INSTANCES_RESPONSE_MESSAGE,     CIM_ENUMERATE_INSTANCES_RESPONSE_MESSAGE,
     CIM_ENUMERATE_INSTANCE_NAMES_RESPONSE_MESSAGE,     CIM_ENUMERATE_INSTANCE_NAMES_RESPONSE_MESSAGE,
Line 360 
Line 396 
     CIM_REFERENCES_RESPONSE_MESSAGE,     CIM_REFERENCES_RESPONSE_MESSAGE,
     CIM_REFERENCE_NAMES_RESPONSE_MESSAGE,     CIM_REFERENCE_NAMES_RESPONSE_MESSAGE,
     CIM_GET_PROPERTY_RESPONSE_MESSAGE,     CIM_GET_PROPERTY_RESPONSE_MESSAGE,
     CIM_SET_PROPERTY_RESPONSE_MESSAGE,      CIM_SET_PROPERTY_RESPONSE_MESSAGE,  // 60
     CIM_GET_QUALIFIER_RESPONSE_MESSAGE,     CIM_GET_QUALIFIER_RESPONSE_MESSAGE,
     CIM_SET_QUALIFIER_RESPONSE_MESSAGE,     CIM_SET_QUALIFIER_RESPONSE_MESSAGE,
     CIM_DELETE_QUALIFIER_RESPONSE_MESSAGE,     CIM_DELETE_QUALIFIER_RESPONSE_MESSAGE,
Line 370 
Line 406 
     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_PROCESS_INDICATION_RESPONSE_MESSAGE,
     CIM_NOTIFY_PROVIDER_REGISTRATION_RESPONSE_MESSAGE,      CIM_NOTIFY_PROVIDER_REGISTRATION_RESPONSE_MESSAGE,  // 70
     CIM_NOTIFY_PROVIDER_TERMINATION_RESPONSE_MESSAGE,     CIM_NOTIFY_PROVIDER_TERMINATION_RESPONSE_MESSAGE,
     CIM_HANDLE_INDICATION_RESPONSE_MESSAGE,     CIM_HANDLE_INDICATION_RESPONSE_MESSAGE,
  
Line 385 
Line 421 
     CIM_DISABLE_MODULE_RESPONSE_MESSAGE,     CIM_DISABLE_MODULE_RESPONSE_MESSAGE,
     CIM_ENABLE_MODULE_RESPONSE_MESSAGE,     CIM_ENABLE_MODULE_RESPONSE_MESSAGE,
  
       CIM_STOP_ALL_PROVIDERS_RESPONSE_MESSAGE,  // 80
   
     // Monitor-related messages:     // Monitor-related messages:
  
     SOCKET_MESSAGE,     SOCKET_MESSAGE,
Line 406 
Line 444 
     ASYNC_DEREGISTER_CIM_SERVICE,     ASYNC_DEREGISTER_CIM_SERVICE,
     ASYNC_UPDATE_CIM_SERVICE,     ASYNC_UPDATE_CIM_SERVICE,
     ASYNC_IOCTL,     ASYNC_IOCTL,
     ASYNC_CIMSERVICE_START,      ASYNC_CIMSERVICE_START,  // 90
     ASYNC_CIMSERVICE_STOP,     ASYNC_CIMSERVICE_STOP,
     ASYNC_CIMSERVICE_PAUSE,     ASYNC_CIMSERVICE_PAUSE,
     ASYNC_CIMSERVICE_RESUME,     ASYNC_CIMSERVICE_RESUME,
Line 418 
Line 456 
  
     ASYNC_FIND_SERVICE_Q,     ASYNC_FIND_SERVICE_Q,
     ASYNC_FIND_SERVICE_Q_RESULT,     ASYNC_FIND_SERVICE_Q_RESULT,
     ASYNC_ENUMERATE_SERVICE,      ASYNC_ENUMERATE_SERVICE,  // 100
     ASYNC_ENUMERATE_SERVICE_RESULT,     ASYNC_ENUMERATE_SERVICE_RESULT,
  
     ASYNC_REGISTERED_MODULE,     ASYNC_REGISTERED_MODULE,
Line 428 
Line 466 
  
     ASYNC_ASYNC_MODULE_OP_START,     ASYNC_ASYNC_MODULE_OP_START,
     ASYNC_ASYNC_MODULE_OP_RESULT,     ASYNC_ASYNC_MODULE_OP_RESULT,
       // for indication consumers
   
       CIM_CONSUME_INDICATION_REQUEST_MESSAGE,
       CIM_CONSUME_INDICATION_RESPONSE_MESSAGE,
   
       CIM_NOTIFY_PROVIDER_ENABLE_REQUEST_MESSAGE,
  
     NUMBER_OF_MESSAGES     NUMBER_OF_MESSAGES
 }; };


Legend:
Removed from v.1.33  
changed lines
  Added in v.1.47

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2