F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 
30  getBuffCapacity(void) const
31  {
32  return capacity;
33  }
34 
36  getBuffAddr(void)
37  {
38  return data;
39  }
40 
42  getBuffAddr(void) const
43  {
44  return data;
45  }
46 
48  fill(void)
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:67
Fw::SerialBuffer::getBuffAddr
U8 * getBuffAddr(void)
gets buffer address for data filling
Definition: SerialBuffer.cpp:36
U8
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.hpp:76
Fw::SerialBuffer::getBuffCapacity
NATIVE_UINT_TYPE getBuffCapacity(void) const
returns capacity, not current size, of buffer
Definition: SerialBuffer.cpp:30
Assert.hpp
Fw::FW_SERIALIZE_OK
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.
Definition: Serializable.hpp:15
Fw::SerialBuffer::SerialBuffer
SerialBuffer(U8 *const data, const U32 capacity)
Definition: SerialBuffer.cpp:19
SerialBuffer.hpp
Fw::SerializeBufferBase::setBuffLen
SerializeStatus setBuffLen(NATIVE_UINT_TYPE length)
sets buffer length manually after filling with data
Definition: Serializable.cpp:609
NATIVE_UINT_TYPE
unsigned int NATIVE_UINT_TYPE
native unsigned integer type declaration
Definition: BasicTypes.hpp:30
FW_ASSERT
#define FW_ASSERT(...)
Definition: Assert.hpp:9
Fw::SerialBuffer::popBytes
SerializeStatus popBytes(U8 *const addr, NATIVE_UINT_TYPE n)
Pop n bytes off the buffer.
Definition: SerialBuffer.cpp:62
Fw::SerializeBufferBase::deserialize
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
Definition: Serializable.cpp:292
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::SerialBuffer::fill
void fill(void)
Fill the buffer to capacity with preexisting data.
Definition: SerialBuffer.cpp:48
Fw
Definition: BufferGetPortAc.cpp:6