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

Diff for /pegasus/src/Pegasus/Common/MessageQueue.cpp between version 1.4 and 1.5

version 1.4, 2001/07/10 22:31:14 version 1.5, 2001/07/12 02:34:34
Line 26 
Line 26 
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
   #include <Pegasus/Common/HashTable.h>
 #include "MessageQueue.h" #include "MessageQueue.h"
  
 PEGASUS_USING_STD; PEGASUS_USING_STD;
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
   typedef HashTable<Uint32, MessageQueue*, EqualFunc<Uint32>, HashFunc<Uint32> >
       QueueTable;
   
   static QueueTable _queueTable(128);
   
   static Uint32 _GetNextQueueId()
   {
       static Uint32 _queueId = 1;
   
       // Handle wrap-around!
   
       if (_queueId == 0)
           _queueId++;
   
       return _queueId++;
   }
   
   MessageQueue::MessageQueue() : _count(0), _front(0), _back(0)
   {
       // ATTN-A: thread safety!
   
       while (!_queueTable.insert(_queueId = _GetNextQueueId(), this))
           ;
   }
   
   MessageQueue::~MessageQueue()
   {
       // ATTN-A: thread safety!
   
       _queueTable.remove(_queueId);
   }
   
 void MessageQueue::enqueue(Message* message) void MessageQueue::enqueue(Message* message)
 { {
     if (!message)     if (!message)
Line 139 
Line 172 
     return 0;     return 0;
 } }
  
   void MessageQueue::lock()
   {
   
   }
   
   void MessageQueue::unlock()
   {
   
   }
   
   MessageQueue* MessageQueue::lookup(Uint32 queueId)
   {
       MessageQueue* queue = 0;
   
       if (_queueTable.lookup(queueId, queue))
           return queue;
   
       // Not found!
       return 0;
   }
   
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END


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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2