F´ Flight Software - C/C++ Documentation  NASA-v1.6.0
A framework for building embedded system applications to NASA flight quality standards.
SerialBuffer.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title SerialBuffer.cpp
3 // \author bocchino
4 // \brief cpp file for SerialBuffer type
5 //
6 // \copyright
7 // Copyright (C) 2016 California Institute of Technology.
8 // ALL RIGHTS RESERVED. United States Government Sponsorship
9 // acknowledged.
10 //
11 // ======================================================================
12 
14 #include "Fw/Types/Assert.hpp"
15 
16 namespace Fw {
17 
20  U8 *const data,
21  const U32 capacity
22  ) :
23  data(data),
24  capacity(capacity)
25  {
26 
27  }
28 
31  {
32  return capacity;
33  }
34 
37  {
38  return data;
39  }
40 
41  const U8* SerialBuffer ::
42  getBuffAddr() const
43  {
44  return data;
45  }
46 
47  void SerialBuffer ::
49  {
50  const SerializeStatus status = this->setBuffLen(this->capacity);
51  FW_ASSERT(status == FW_SERIALIZE_OK);
52  }
53 
55  pushBytes(const U8 *const addr, const NATIVE_UINT_TYPE n)
56  {
57  // "true" means "just push the bytes"
58  return this->serialize(const_cast<U8*>(addr), n, true);
59  }
60 
62  popBytes(U8 *const addr, NATIVE_UINT_TYPE n)
63  {
64  // "true" means "just pop the bytes"
65  return this->deserialize(addr, n, true);
66  }
67 
68 }
Fw::SerializeStatus
SerializeStatus
forward declaration for string
Definition: Serializable.hpp:14
Fw::SerializeBufferBase::serialize
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
Definition: Serializable.cpp:69
U8
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.hpp:73
NATIVE_UINT_TYPE
unsigned int NATIVE_UINT_TYPE
native unsigned integer type declaration
Definition: BasicTypes.hpp:28
Fw::SerialBuffer::getBuffCapacity
NATIVE_UINT_TYPE getBuffCapacity() const
returns capacity, not current size, of buffer
Definition: SerialBuffer.cpp:30
Fw::SerialBuffer::SerialBuffer
SerialBuffer(U8 *const data, const U32 capacity)
Definition: SerialBuffer.cpp:19
Fw::SerialBuffer::getBuffAddr
U8 * getBuffAddr()
gets buffer address for data filling
Definition: SerialBuffer.cpp:36
SerialBuffer.hpp
Fw::SerialBuffer::fill
void fill()
Fill the buffer to capacity with preexisting data.
Definition: SerialBuffer.cpp:48
Fw::SerializeBufferBase::setBuffLen
SerializeStatus setBuffLen(NATIVE_UINT_TYPE length)
sets buffer length manually after filling with data
Definition: Serializable.cpp:611
Fw::SerialBuffer::popBytes
SerializeStatus popBytes(U8 *const addr, NATIVE_UINT_TYPE n)
Pop n bytes off the buffer.
Definition: SerialBuffer.cpp:62
FW_ASSERT
#define FW_ASSERT(...)
Definition: Assert.hpp:9
Fw::SerializeBufferBase::deserialize
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
Definition: Serializable.cpp:294
Fw::SerialBuffer::pushBytes
SerializeStatus pushBytes(const U8 *const addr, const NATIVE_UINT_TYPE n)
Push n bytes onto the buffer.
Definition: SerialBuffer.cpp:55
Fw::FW_SERIALIZE_OK
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.
Definition: Serializable.hpp:15
Fw
Definition: SerIds.hpp:20