Changeset 4875 for branches/erijo-dev
- Timestamp:
- 03/20/07 05:40:08 (21 months ago)
- Location:
- branches/erijo-dev/licq
- Files:
-
- 3 modified
-
licq/interface/eventqueue.h (modified) (2 diffs)
-
src/eventqueue.cpp (modified) (4 diffs)
-
src/eventqueue.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/erijo-dev/licq/licq/interface/eventqueue.h
r4841 r4875 23 23 #include "licq/interface/event.h" 24 24 #include <boost/noncopyable.hpp> 25 #include <list> 25 26 26 27 namespace Licq … … 48 49 49 50 public: 51 virtual int getFileDescriptor() const = 0; 52 50 53 /** \return True if the queue is empty; otherwise false. */ 51 54 virtual bool empty() const = 0; -
branches/erijo-dev/licq/src/eventqueue.cpp
r4839 r4875 33 33 } 34 34 35 int Licq::TEventQueue::getFileDescriptor() const 36 { 37 return Pipe.getFileDescriptor(); 38 } 39 35 40 bool Licq::TEventQueue::empty() const 36 41 { 37 TMutexLocker locker(&Mutex); 38 locker.lock(); 39 42 TMutexLocker lock(&Mutex); 40 43 return Queue.empty(); 41 44 } … … 43 46 void Licq::TEventQueue::push(IEventPtr& event) 44 47 { 45 TMutexLocker locker(&Mutex);46 locker.lock();47 48 48 // Take ownership of event's contents. After this event.get() == NULL. 49 49 IEventPtr newEvent; … … 53 53 assert(newEvent.unique()); 54 54 55 TMutexLocker lock(&Mutex); 55 56 Queue.push_back(newEvent); 57 58 // Signal that there's a new event in the queue. 59 const char ch = 'E'; 60 Pipe.write(&ch, 1); 56 61 } 57 62 58 63 Licq::IEventPtr Licq::TEventQueue::pop() 59 64 { 60 TMutexLocker locker(&Mutex); 61 locker.lock(); 65 TMutexLocker lock(&Mutex); 62 66 63 67 assert(!Queue.empty()); … … 70 74 { 71 75 assert(list != NULL); 72 TMutexLocker locker(&Mutex); 73 locker.lock(); 76 TMutexLocker lock(&Mutex); 74 77 75 78 std::copy(Queue.begin(), Queue.end(), std::back_inserter(*list)); -
branches/erijo-dev/licq/src/eventqueue.h
r4839 r4875 23 23 #include "licq/interface/eventqueue.h" 24 24 #include "utils/mutex.h" 25 26 #include <list> 25 #include "utils/pipe.h" 27 26 28 27 namespace Licq … … 41 40 TEventList Queue; 42 41 42 TPipe Pipe; 43 43 44 public: 44 45 /// Construct a new event queue. … … 49 50 50 51 // From IEventQueue 52 int getFileDescriptor() const; 51 53 bool empty() const; 52 54 void push(IEventPtr& event);
