Changed to our own Queue

This commit is contained in:
Pontus Fransson 2013-11-28 16:20:50 +01:00
parent 1453d81a9d
commit 8dab865cb6
2 changed files with 9 additions and 14 deletions

View File

@ -6,8 +6,8 @@
/////////////////////////////////////
#include "IPostBox.h"
#include <queue>
#include "../../Misc/Thread/OysterMutex.h"
#include "../../Misc/ThreadSafeQueue.h"
namespace Oyster
{
@ -25,8 +25,7 @@ namespace Oyster
virtual bool IsFull();
private:
std::queue<T> messages;
OysterMutex mutex;
Oyster::Queue::ThreadSafeQueue<T> messages;
};
@ -44,27 +43,23 @@ namespace Oyster
template <class T>
void PostBox<T>::PostMessage(T& message)
{
mutex.LockMutex();
messages.push(message);
mutex.UnlockMutex();
messages.Push(message);
}
template <class T>
void PostBox<T>::FetchMessage(T& message)
{
mutex.LockMutex();
if(IsFull())
{
message = messages.front();
messages.pop();
message = messages.Front();
messages.Pop();
}
mutex.UnlockMutex();
}
template <class T>
bool PostBox<T>::IsFull()
{
return !messages.empty();
return !messages.IsEmpty();
}
}
}

View File

@ -41,7 +41,7 @@ int main()
//test queue
//-----------------------------------------
Oyster::Queue::IQueue<int> *test = new Oyster::Queue::ThreadSafeQueue<int>();
/*Oyster::Queue::IQueue<int> *test = new Oyster::Queue::ThreadSafeQueue<int>();
Oyster::Queue::IQueue<int> *test2 = new Oyster::Queue::ThreadSafeQueue<int>();
for(int i = 0; i < 100; i++)
@ -91,8 +91,8 @@ int main()
cout << test->Front() << " " << test2->Front() <<endl;
delete test;
delete test2;
//chat(client);
delete test2;*/
chat(client);
ShutdownWinSock();