X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=support%2Fsdk%2Fcpp%2Fsf%2Fpacketbuffer.cpp;h=635f434e83ac7ca834776fc0707c07e0d6096624;hb=f2ec0361a8796350bde71e0611e16be06ba22be0;hp=639835a4b1908c9a9e3f5ddfc0a0fb20b2cbc375;hpb=ab3fe89b185c317159f4d206b9e51f50d494bec5;p=tinyos-2.x.git diff --git a/support/sdk/cpp/sf/packetbuffer.cpp b/support/sdk/cpp/sf/packetbuffer.cpp index 639835a4..635f434e 100644 --- a/support/sdk/cpp/sf/packetbuffer.cpp +++ b/support/sdk/cpp/sf/packetbuffer.cpp @@ -40,7 +40,6 @@ PacketBuffer::PacketBuffer() pthread_mutex_init(&buffer.lock, NULL); pthread_cond_init(&buffer.notempty, NULL); pthread_cond_init(&buffer.notfull, NULL); - buffer.size = 0; } @@ -57,7 +56,6 @@ void PacketBuffer::clear() { pthread_mutex_lock(&buffer.lock); // clear buffer.container.clear(); - buffer.size = 0; DEBUG("PacketBuffer::clear : cleared buffer and signal ") pthread_cond_signal(&buffer.notfull); pthread_mutex_unlock(&buffer.lock); @@ -71,7 +69,7 @@ SFPacket PacketBuffer::dequeue() pthread_cleanup_push((void(*)(void*)) pthread_mutex_unlock, (void *) &buffer.lock); pthread_mutex_lock(&buffer.lock); // wait until buffer is _not_ empty - while(buffer.size == 0) + while(buffer.container.size() == 0) { DEBUG("PacketBuffer::dequeue : waiting until buffer is ") pthread_cond_wait(&buffer.notempty, &buffer.lock); @@ -79,7 +77,6 @@ SFPacket PacketBuffer::dequeue() // dequeue packet = buffer.container.front(); buffer.container.pop_front(); - --buffer.size; DEBUG("PacketBuffer::dequeue : get from buffer and signal ") pthread_cond_signal(&buffer.notfull); pthread_cleanup_pop(1); @@ -93,13 +90,12 @@ bool PacketBuffer::enqueueFront(SFPacket &pPacket) pthread_cleanup_push((void(*)(void*)) pthread_mutex_unlock, (void *) &buffer.lock); pthread_mutex_lock(&buffer.lock); // wait until buffer is _not_ full - while(buffer.size >= cMaxBufferSize) + while(buffer.container.size() >= cMaxBufferSize) { DEBUG("PacketBuffer::enqueueFront : waiting until buffer is ") pthread_cond_wait(&buffer.notfull, &buffer.lock); } // enqueue - ++buffer.size; buffer.container.push_front(pPacket); DEBUG("PacketBuffer::enqueueFront : put in buffer and signal ") // signal that buffer is now not empty @@ -115,13 +111,12 @@ bool PacketBuffer::enqueueBack(SFPacket &pPacket) pthread_cleanup_push((void(*)(void*)) pthread_mutex_unlock, (void *) &buffer.lock); pthread_mutex_lock(&buffer.lock); // wait until buffer is _not_ full - while(buffer.size >= cMaxBufferSize) + while(buffer.container.size() >= cMaxBufferSize) { DEBUG("PacketBuffer::enqueueBack : waiting until buffer is ") pthread_cond_wait(&buffer.notfull, &buffer.lock); } // enqueue - ++buffer.size; buffer.container.push_back(pPacket); DEBUG("PacketBuffer::enqueueBack : put in buffer and signal ") // signal that buffer is now not empty @@ -135,8 +130,8 @@ bool PacketBuffer::isFull() { bool isFull = true; pthread_testcancel(); pthread_mutex_lock(&buffer.lock); - if (buffer.size < cMaxBufferSize) { - isFull = false; + if (buffer.container.size() < cMaxBufferSize) { + isFull = false; } pthread_mutex_unlock(&buffer.lock); return isFull; @@ -147,8 +142,8 @@ bool PacketBuffer::isEmpty() { bool isEmpty = true; pthread_testcancel(); pthread_mutex_lock(&buffer.lock); - if (buffer.size > 0) { - isEmpty = false; + if (buffer.container.size() > 0) { + isEmpty = false; } pthread_mutex_unlock(&buffer.lock); return isEmpty;