Program Listing for File PacketBuffer.h
↰ Return to documentation for file (/tmp/ws/src/sick_safetyscanners_base/include/sick_safetyscanners_base/datastructure/PacketBuffer.h
)
// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*-
// -- BEGIN LICENSE BLOCK ----------------------------------------------
// -- END LICENSE BLOCK ------------------------------------------------
//----------------------------------------------------------------------
//----------------------------------------------------------------------
#ifndef SICK_SAFETYSCANNERS_BASE_DATASTRUCTURE_PACKETBUFFER_H
#define SICK_SAFETYSCANNERS_BASE_DATASTRUCTURE_PACKETBUFFER_H
#include <iostream>
#include <stdint.h>
#include <string>
#include <vector>
#include <boost/array.hpp>
#include <boost/asio.hpp>
#include "sick_safetyscanners_base/datastructure/DatagramHeader.h"
#include "sick_safetyscanners_base/datastructure/PacketBuffer.h"
namespace sick {
namespace datastructure {
const uint32_t MAXSIZE = 10000;
class PacketBuffer
{
public:
typedef boost::array<uint8_t, MAXSIZE> ArrayBuffer;
PacketBuffer();
PacketBuffer(const std::vector<uint8_t>& buffer);
PacketBuffer(const ArrayBuffer& buffer, const size_t& length);
static uint32_t getMaxSize() { return MAXSIZE; }
std::shared_ptr<std::vector<uint8_t> const> getBuffer() const;
void setBuffer(const std::vector<uint8_t>& buffer);
void setBuffer(const ArrayBuffer& buffer, const size_t& length);
size_t getLength() const;
private:
std::shared_ptr<std::vector<uint8_t> const> m_buffer;
};
} // namespace datastructure
} // namespace sick
#endif // SICK_SAFETYSCANNERS_BASE_DATASTRUCTURE_PACKETBUFFER_H