(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.27 and 1.46

version 1.27, 2002/04/11 21:51:38 version 1.46, 2003/09/26 18:24:00
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 28 
Line 28 
 //                  (carolann_graves@hp.com) //                  (carolann_graves@hp.com)
 //              Mike Day (mdday@us.ibm.com) //              Mike Day (mdday@us.ibm.com)
 //              Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com) //              Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
   //              Arthur Pichlkostner (via Markus: sedgewick_de@yahoo.de)
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
Line 37 
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/Linkage.h>
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
Line 61 
Line 64 
       static Uint32 type_control;       static Uint32 type_control;
       static Uint32 type_service;       static Uint32 type_service;
       static Uint32 type_broadcast;       static Uint32 type_broadcast;
         static Uint32 type_client_exception;
  
       static Uint32 ha_no_delete;       static Uint32 ha_no_delete;
       static Uint32 ha_request;       static Uint32 ha_request;
Line 89 
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 115 
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 123 
Line 135 
  
       }       }
  
       Message(Message & msg)        Message & operator = ( const Message & msg)
       {       {
          if( this != &msg)          if( this != &msg)
          {          {
Line 131 
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;
       }       }
  
  
Line 154 
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
   //
   // Needed for performance measurement
   //
   
         void startServer();
   
         void endServer();
   
         void startProvider();
   
         void endProvider();
   
         timeval getStartServerTime() const { return _timeServerStart; }
   
         void setStartServerTime(timeval timeServerStart)
         {
              _timeServerStart = timeServerStart;
         }
   
         timeval getStartProviderTime() const { return _timeProviderStart; }
   
         void setStartProviderTime(timeval timeProviderStart)
         {
             _timeProviderStart = timeProviderStart;
         }
   
         timeval getEndServerTime() const { return _timeServerEnd; }
   
         void setEndServerTime (timeval timeServerEnd)
         {
             _timeServerEnd = timeServerEnd;
         }
   
         timeval getEndProviderTime() const { return _timeProviderEnd; }
   
         void setEndProviderTime(timeval timeProviderEnd)
         {
             _timeProviderEnd = timeProviderEnd;
         }
   
         Uint32 getTotalTime() { return _totalTime; }
   //
   #endif
   
       Message* getNext() { return _next; }       Message* getNext() { return _next; }
  
       const Message* getNext() const { return _next; }       const Message* getNext() const { return _next; }
Line 171 
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 195 
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
         timeval _timeServerStart;
         timeval _timeServerEnd;
         timeval _timeProviderStart;
         timeval _timeProviderEnd;
         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;
   
    protected:    protected:
       Message *_async;  
    public:    public:
         Message *_async;
       Uint32 dest;       Uint32 dest;
   
    private:    private:
       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 236 
Line 340 
     CIM_CREATE_INSTANCE_REQUEST_MESSAGE,     CIM_CREATE_INSTANCE_REQUEST_MESSAGE,
     CIM_MODIFY_CLASS_REQUEST_MESSAGE,     CIM_MODIFY_CLASS_REQUEST_MESSAGE,
     CIM_MODIFY_INSTANCE_REQUEST_MESSAGE,     CIM_MODIFY_INSTANCE_REQUEST_MESSAGE,
     CIM_ENUMERATE_CLASSES_REQUEST_MESSAGE,      CIM_ENUMERATE_CLASSES_REQUEST_MESSAGE, //10
     CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE,     CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE,
     CIM_ENUMERATE_INSTANCES_REQUEST_MESSAGE,     CIM_ENUMERATE_INSTANCES_REQUEST_MESSAGE,
     CIM_ENUMERATE_INSTANCE_NAMES_REQUEST_MESSAGE,     CIM_ENUMERATE_INSTANCE_NAMES_REQUEST_MESSAGE,
Line 246 
Line 350 
     CIM_REFERENCES_REQUEST_MESSAGE,     CIM_REFERENCES_REQUEST_MESSAGE,
     CIM_REFERENCE_NAMES_REQUEST_MESSAGE,     CIM_REFERENCE_NAMES_REQUEST_MESSAGE,
     CIM_GET_PROPERTY_REQUEST_MESSAGE,     CIM_GET_PROPERTY_REQUEST_MESSAGE,
     CIM_SET_PROPERTY_REQUEST_MESSAGE,      CIM_SET_PROPERTY_REQUEST_MESSAGE, //20
     CIM_GET_QUALIFIER_REQUEST_MESSAGE,     CIM_GET_QUALIFIER_REQUEST_MESSAGE,
     CIM_SET_QUALIFIER_REQUEST_MESSAGE,     CIM_SET_QUALIFIER_REQUEST_MESSAGE,
     CIM_DELETE_QUALIFIER_REQUEST_MESSAGE,     CIM_DELETE_QUALIFIER_REQUEST_MESSAGE,
Line 256 
Line 360 
     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_PROCESS_INDICATION_REQUEST_MESSAGE,
     CIM_HANDLE_INDICATION_REQUEST_MESSAGE,      CIM_HANDLE_INDICATION_REQUEST_MESSAGE, // 30
     CIM_NOTIFY_PROVIDER_REGISTRATION_REQUEST_MESSAGE,     CIM_NOTIFY_PROVIDER_REGISTRATION_REQUEST_MESSAGE,
     CIM_NOTIFY_PROVIDER_TERMINATION_REQUEST_MESSAGE,     CIM_NOTIFY_PROVIDER_TERMINATION_REQUEST_MESSAGE,
  
Line 267 
Line 371 
     CIM_MODIFY_SUBSCRIPTION_REQUEST_MESSAGE,     CIM_MODIFY_SUBSCRIPTION_REQUEST_MESSAGE,
     CIM_DELETE_SUBSCRIPTION_REQUEST_MESSAGE,     CIM_DELETE_SUBSCRIPTION_REQUEST_MESSAGE,
  
       // new
       CIM_DISABLE_MODULE_REQUEST_MESSAGE,
       CIM_ENABLE_MODULE_REQUEST_MESSAGE,
   
       CIM_STOP_ALL_PROVIDERS_REQUEST_MESSAGE,  // 40
   
     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 276 
Line 386 
     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 286 
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 296 
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 307 
Line 417 
     CIM_MODIFY_SUBSCRIPTION_RESPONSE_MESSAGE,     CIM_MODIFY_SUBSCRIPTION_RESPONSE_MESSAGE,
     CIM_DELETE_SUBSCRIPTION_RESPONSE_MESSAGE,     CIM_DELETE_SUBSCRIPTION_RESPONSE_MESSAGE,
  
       // new
       CIM_DISABLE_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 320 
Line 436 
     HTTP_MESSAGE,     HTTP_MESSAGE,
     HTTP_ERROR_MESSAGE,     HTTP_ERROR_MESSAGE,
  
       // Exception messages to be passed to a CIM client application:
   
       CLIENT_EXCEPTION_MESSAGE,
   
       ASYNC_REGISTER_CIM_SERVICE,
       ASYNC_DEREGISTER_CIM_SERVICE,
       ASYNC_UPDATE_CIM_SERVICE,
       ASYNC_IOCTL,
       ASYNC_CIMSERVICE_START,  // 90
       ASYNC_CIMSERVICE_STOP,
       ASYNC_CIMSERVICE_PAUSE,
       ASYNC_CIMSERVICE_RESUME,
   
       ASYNC_ASYNC_OP_START,
       ASYNC_ASYNC_OP_RESULT,
       ASYNC_ASYNC_LEGACY_OP_START,
       ASYNC_ASYNC_LEGACY_OP_RESULT,
   
       ASYNC_FIND_SERVICE_Q,
       ASYNC_FIND_SERVICE_Q_RESULT,
       ASYNC_ENUMERATE_SERVICE,  // 100
       ASYNC_ENUMERATE_SERVICE_RESULT,
   
       ASYNC_REGISTERED_MODULE,
       ASYNC_DEREGISTERED_MODULE,
       ASYNC_FIND_MODULE_IN_SERVICE,
       ASYNC_FIND_MODULE_IN_SERVICE_RESPONSE,
   
       ASYNC_ASYNC_MODULE_OP_START,
       ASYNC_ASYNC_MODULE_OP_RESULT,
       // for indication consumers
   
       CIM_CONSUME_INDICATION_REQUEST_MESSAGE,
       CIM_CONSUME_INDICATION_RESPONSE_MESSAGE,
   
     NUMBER_OF_MESSAGES     NUMBER_OF_MESSAGES
 }; };
  


Legend:
Removed from v.1.27  
changed lines
  Added in v.1.46

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2