(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.48.4.1 and 1.60.2.1

version 1.48.4.1, 2004/04/15 21:24:28 version 1.60.2.1, 2005/01/26 16:18:38
Line 1 
Line 1 
 //%2003////////////////////////////////////////////////////////////////////////  //%2004////////////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002  BMC Software, Hewlett-Packard Development  // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
 // Company, L. P., IBM Corp., The Open Group, Tivoli Systems.  // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.; // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.;
 // IBM Corp.; EMC Corporation, The Open Group. // IBM Corp.; EMC Corporation, The Open Group.
   // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
   // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
 // //
 // 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
 // of this software and associated documentation files (the "Software"), to // of this software and associated documentation files (the "Software"), to
Line 31 
Line 33 
 //              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) //              Arthur Pichlkostner (via Markus: sedgewick_de@yahoo.de)
   //                              Willis White (whiwill@us.ibm.com) PEP 127 and 128
   //         Brian G. Campbell, EMC (campbell_brian@emc.com) - PEP140/phase1
   //              Amit K Arora, IBM (amita@in.ibm.com) for Bug#1090
   //
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
Line 44 
Line 50 
 #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> #include <Pegasus/Common/Linkage.h>
   #include <Pegasus/Common/CIMDateTime.h>
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
Line 132 
Line 139 
          _next(0),          _next(0),
          _prev(0),          _prev(0),
          _async(0),          _async(0),
          dest(destination)           dest(destination),
            _isComplete(true),
            _index(0)
       {       {
  
       }       }
Line 149 
Line 158 
             _next = _prev = _async = 0;             _next = _prev = _async = 0;
             dest = msg.dest;             dest = msg.dest;
             _httpMethod = msg._httpMethod;             _httpMethod = msg._httpMethod;
                           _index = msg._index;
                           _isComplete = msg._isComplete;
  
          }          }
          return *this;          return *this;
Line 176 
Line 187 
  
       void setHttpMethod(HttpMethod httpMethod) {_httpMethod = httpMethod;}       void setHttpMethod(HttpMethod httpMethod) {_httpMethod = httpMethod;}
  
 #ifdef PEGASUS_HAS_PERFINST  #ifndef PEGASUS_DISABLE_PERFINST
 // //
 // Needed for performance measurement // Needed for performance measurement
 // //
Line 189 
Line 200 
  
       void endProvider();       void endProvider();
  
       timeval getStartServerTime() const { return _timeServerStart; }        CIMDateTime getStartServerTime() const { return _timeServerStart; }
  
       void setStartServerTime(timeval timeServerStart)        void setStartServerTime(CIMDateTime timeServerStart)
       {       {
            _timeServerStart = timeServerStart;            _timeServerStart = timeServerStart;
       }       }
  
       timeval getStartProviderTime() const { return _timeProviderStart; }        CIMDateTime getStartProviderTime() const { return _timeProviderStart; }
  
       void setStartProviderTime(timeval timeProviderStart)        void setStartProviderTime(CIMDateTime timeProviderStart)
       {       {
           _timeProviderStart = timeProviderStart;           _timeProviderStart = timeProviderStart;
       }       }
  
       timeval getEndServerTime() const { return _timeServerEnd; }        CIMDateTime getEndServerTime() const { return _timeServerEnd; }
  
       void setEndServerTime (timeval timeServerEnd)        void setEndServerTime (CIMDateTime timeServerEnd)
       {       {
           _timeServerEnd = timeServerEnd;           _timeServerEnd = timeServerEnd;
       }       }
  
       timeval getEndProviderTime() const { return _timeProviderEnd; }        CIMDateTime getEndProviderTime() const { return _timeProviderEnd; }
  
       void setEndProviderTime(timeval timeProviderEnd)        void setEndProviderTime(CIMDateTime timeProviderEnd)
       {       {
           _timeProviderEnd = timeProviderEnd;           _timeProviderEnd = timeProviderEnd;
       }       }
  
       Uint32 getTotalTime() { return _totalTime; }            CIMDateTime getProviderTime() { return _providerTime;}
   
         CIMDateTime getTotalTime() { return _totalTime; }
   
             CIMDateTime getServerTime() { return _serverTime; }
 // //
 #endif #endif
  
Line 231 
Line 246 
  
       static Uint32 getNextKey()       static Uint32 getNextKey()
       {       {
             AutoMutex autoMut(_mut);
          _mut.lock( pegasus_thread_self() ) ;  
          Uint32 ret = _nextKey++;          Uint32 ret = _nextKey++;
          _mut.unlock();  
          return ret;          return ret;
       }       }
  
Line 285 
Line 298 
          _routing_code = req->_routing_code;          _routing_code = req->_routing_code;
       }       }
  
                           // set the message index indicating what piece (or sequence) this is
                           // message indexes start at zero
                           void setIndex(Uint32 index) { _index = index; }
   
                           // increment the message index
                           void incrementIndex() { _index++; }
   
                           // set the complete flag indicating if this message piece is the
                           // last or not
                           void setComplete(Boolean isComplete)
                                   { _isComplete = isComplete ? true:false; }
   
                           // get the message index (or sequence number)
                           Uint32 getIndex() const { return _index; }
   
                           // is this the first piece of the message ?
                           Boolean isFirst() const { return _index == 0 ? true : false; }
   
                           // is this message complete? (i.e the last in a one or more sequence)
                           Boolean isComplete() const { return _isComplete; }
  
    private:    private:
       Uint32 _type;       Uint32 _type;
Line 293 
Line 326 
       Uint32 _mask;       Uint32 _mask;
       HttpMethod _httpMethod;       HttpMethod _httpMethod;
 // Needed for performance measurement // Needed for performance measurement
       timeval _timeServerStart;        CIMDateTime _timeServerStart;
       timeval _timeServerEnd;        CIMDateTime _timeServerEnd;
       timeval _timeProviderStart;        CIMDateTime _timeProviderStart;
       timeval _timeProviderEnd;        CIMDateTime _timeProviderEnd;
       Uint64 _totalTime;            CIMDateTime _providerTime;
             CIMDateTime _serverTime;
         CIMDateTime _totalTime;
 // //
  
       // << Tue Jul  1 11:02:35 2003 mdd >> pep_88 and helper for i18n and l10n       // << Tue Jul  1 11:02:35 2003 mdd >> pep_88 and helper for i18n and l10n
Line 311 
Line 346 
    public:    public:
       Message *_async;       Message *_async;
       Uint32 dest;       Uint32 dest;
             //needed for PEP 128 - transmitting Server Response Time to Client
         Uint64 totServerTime;
   
    private:    private:
       MessageQueue* _owner;       MessageQueue* _owner;
         Boolean _isComplete;
         Uint32 _index;
       static Uint32 _nextKey;       static Uint32 _nextKey;
       static Mutex _mut;       static Mutex _mut;
  
Line 468 
Line 508 
  
     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,     CIM_NOTIFY_PROVIDER_ENABLE_REQUEST_MESSAGE,
     CIM_NOTIFY_PROVIDER_ENABLE_RESPONSE_MESSAGE,     CIM_NOTIFY_PROVIDER_ENABLE_RESPONSE_MESSAGE,
  
       CIM_INITIALIZE_PROVIDER_REQUEST_MESSAGE,
       CIM_INITIALIZE_PROVIDER_RESPONSE_MESSAGE,
   
       CIM_INITIALIZE_PROVIDER_AGENT_REQUEST_MESSAGE,
       CIM_INITIALIZE_PROVIDER_AGENT_RESPONSE_MESSAGE,
   
       CIM_NOTIFY_CONFIG_CHANGE_REQUEST_MESSAGE,
       CIM_NOTIFY_CONFIG_CHANGE_RESPONSE_MESSAGE,
   
     NUMBER_OF_MESSAGES     NUMBER_OF_MESSAGES
 }; };
  
Line 485 
Line 530 
     stack of queue-ids of queues which they must be returned to. This provides     stack of queue-ids of queues which they must be returned to. This provides
     a light efficient stack for this purpose.     a light efficient stack for this purpose.
 */ */
 class QueueIdStack  class PEGASUS_COMMON_LINKAGE QueueIdStack
 { {
 public: public:
  
Line 493 
Line 538 
     {     {
     }     }
  
     QueueIdStack(const QueueIdStack& x) : _size(x._size)      QueueIdStack(const QueueIdStack& x);
     {  
         memcpy(_items, x._items, sizeof(_items));  
     }  
  
     PEGASUS_EXPLICIT QueueIdStack(Uint32 x) : _size(0)      PEGASUS_EXPLICIT QueueIdStack(Uint32 x);
     {  
         push(x);  
     }  
  
     PEGASUS_EXPLICIT QueueIdStack(Uint32 x1, Uint32 x2) : _size(0)      PEGASUS_EXPLICIT QueueIdStack(Uint32 x1, Uint32 x2);
     {  
         push(x1);  
         push(x2);  
     }  
  
     ~QueueIdStack()     ~QueueIdStack()
     {     {
     }     }
  
     QueueIdStack& operator=(const QueueIdStack& x)      QueueIdStack& operator=(const QueueIdStack& x);
     {  
         if (this != &x)  
         {  
             memcpy(_items, x._items, sizeof(_items));  
             _size = x._size;  
         }  
         return *this;  
     }  
  
     Uint32 size() const     Uint32 size() const
     {     {
Line 535 
Line 562 
  
     void push(Uint32 x)     void push(Uint32 x)
     {     {
   #ifdef PEGASUS_DEBUG
         if (_size == MAX_SIZE)         if (_size == MAX_SIZE)
             throw StackOverflow();             throw StackOverflow();
   #endif
         _items[_size++] = x;         _items[_size++] = x;
     }     }
  
     Uint32& top()     Uint32& top()
     {     {
   #ifdef PEGASUS_DEBUG
         if (_size == 0)         if (_size == 0)
             throw StackUnderflow();             throw StackUnderflow();
   #endif
         return _items[_size-1];         return _items[_size-1];
     }     }
  
Line 556 
Line 585 
  
     void pop()     void pop()
     {     {
   #ifdef PEGASUS_DEBUG
         if (_size == 0)         if (_size == 0)
             throw StackUnderflow();             throw StackUnderflow();
   #endif
         _size--;         _size--;
     }     }
  
     /** Make a copy of this stack and then pop the top element. */     /** Make a copy of this stack and then pop the top element. */
     QueueIdStack copyAndPop() const      QueueIdStack copyAndPop() const;
     {  
         return QueueIdStack(*this, 0);  
     }  
  
 private: private:
  
     // Copy the given stack but then pop the top element:     // Copy the given stack but then pop the top element:
     QueueIdStack(const QueueIdStack& x, int) : _size(x._size)      QueueIdStack(const QueueIdStack& x, int);
     {  
         memcpy(_items, x._items, sizeof(_items));  
         pop();  
     }  
  
     enum { MAX_SIZE = 5 };     enum { MAX_SIZE = 5 };
     Uint32 _items[MAX_SIZE];     Uint32 _items[MAX_SIZE];


Legend:
Removed from v.1.48.4.1  
changed lines
  Added in v.1.60.2.1

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2