60 lines
1.6 KiB
C++
60 lines
1.6 KiB
C++
/*
|
|
* File: MessagReferenceCircularBuffer.h
|
|
* Author: jgaebler
|
|
*
|
|
* Created on October 29, 2012, 9:05 AM
|
|
*/
|
|
#pragma once
|
|
|
|
#ifndef MESSAGREFERENCECIRCULARBUFFER_H
|
|
#define MESSAGREFERENCECIRCULARBUFFER_H
|
|
|
|
#include "common/Defines.h"
|
|
#include "common/transport/MessageReference.h"
|
|
#include "common/container/CircularBuffer.h"
|
|
|
|
namespace ubeeme {
|
|
namespace moversight {
|
|
|
|
class MessageReferenceCircularBuffer : public CircularBuffer<MessageReference> {
|
|
|
|
public:
|
|
|
|
/**
|
|
* @brief Constructor. Creates an circular buffer, witch stores at most 50 elements.
|
|
*/
|
|
MessageReferenceCircularBuffer() : CircularBuffer<MessageReference>(50) {
|
|
}
|
|
|
|
/**
|
|
* @brief Constructor
|
|
* @param size The size of the circular buffer
|
|
*/
|
|
MessageReferenceCircularBuffer(size_t size) : CircularBuffer<MessageReference>(size) {
|
|
}
|
|
|
|
/**
|
|
* @brief Determines, if the given message reference stored in the buffer.
|
|
* @param mRef The message reference to check.
|
|
* @return True, if the given message reference already stored in the buffer, false otherwise.
|
|
*/
|
|
bool contains(MessageReference const & mRef) const {
|
|
|
|
for (size_t i = 0; i < size(); i++) {
|
|
MessageReference local = get(i);
|
|
if(local == mRef){
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
};
|
|
}
|
|
}
|
|
|
|
|
|
#endif /* MESSAGREFERENCECIRCULARBUFFER_H */
|
|
|