1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-25 03:31:36 +01:00

Added small_uint class.

This commit is contained in:
Matias Fontanini
2012-09-02 18:24:59 -03:00
parent fbd6ef397b
commit 958edcc74a
28 changed files with 326 additions and 361 deletions

View File

@@ -20,30 +20,27 @@
*/
#include <cassert>
#include <cstring>
#include <algorithm>
#include "rawpdu.h"
Tins::RawPDU::RawPDU(const uint8_t *pload, uint32_t size) : PDU(255), _payload_size(size), _owns_payload(true) {
_payload = new uint8_t[size];
std::memcpy(_payload, pload, size);
}
Tins::RawPDU::RawPDU(uint8_t *pload, uint32_t size) : PDU(255), _payload(pload), _payload_size(size), _owns_payload(false) {
namespace Tins {
RawPDU::RawPDU(const uint8_t *pload, uint32_t size)
: PDU(255), _payload(pload, pload + size)
{
}
Tins::RawPDU::~RawPDU() {
if(_owns_payload)
delete[] _payload;
uint32_t RawPDU::header_size() const {
return _payload.size();
}
uint32_t Tins::RawPDU::header_size() const {
return _payload_size;
void RawPDU::write_serialization(uint8_t *buffer, uint32_t total_sz, const PDU *) {
assert(total_sz >= _payload.size());
std::copy(_payload.begin(), _payload.end(), buffer);
}
void Tins::RawPDU::write_serialization(uint8_t *buffer, uint32_t total_sz, const PDU *) {
assert(total_sz >= _payload_size);
std::memcpy(buffer, _payload, _payload_size);
void RawPDU::payload(const payload_type &pload) {
_payload = pload;
}
}