Voyant API 0.2.1
Loading...
Searching...
No Matches
Public Member Functions | Friends | List of all members
CapnpWrapper< T > Class Template Referenceabstract

Base template class for Cap'n Proto wrappers. More...

#include <capnp_wrapper.h>

Public Member Functions

virtual ~CapnpWrapper ()=default
 Virtual destructor for proper cleanup in derived classes.
 
virtual void fromProto (typename T::Reader reader)=0
 Update wrapper fields from a Cap'n Proto reader.
 
virtual void toProto (typename T::Builder &builder) const =0
 Write wrapper fields to a Cap'n Proto builder.
 
virtual void debugString (std::ostream &os) const =0
 Generate a debug string representation.
 
void fromBuffer (const uint8_t *buffer, size_t size)
 Update wrapper fields from a serialized message buffer.
 
size_t toBuffer (uint8_t *buffer, size_t buffer_size) const
 Serialize this wrapper to a buffer using Cap'n Proto format.
 

Friends

std::ostream & operator<< (std::ostream &os, const CapnpWrapper< T > &wrapper)
 Output operator for streaming any derived wrapper class.
 

Detailed Description

template<typename T>
class CapnpWrapper< T >

Base template class for Cap'n Proto wrappers.

This class provides a consistent interface for wrapping Cap'n Proto generated types with C++ classes that are easier to use and integrate with other code.

Template Parameters
TThe Cap'n Proto generated type to wrap

Constructor & Destructor Documentation

◆ ~CapnpWrapper()

template<typename T >
virtual CapnpWrapper< T >::~CapnpWrapper ( )
virtualdefault

Virtual destructor for proper cleanup in derived classes.

Member Function Documentation

◆ debugString()

template<typename T >
virtual void CapnpWrapper< T >::debugString ( std::ostream &  os) const
pure virtual

Generate a debug string representation.

Parameters
osThe output stream to write to

Implemented in DataBlockWrapper, PointGroupHeaderWrapper, PointGroupWrapper, VoyantFrameWrapper, VoyantHeaderWrapper, PointDataWrapper, VoyantSdlConfigWrapper, and VoyantVersionWrapper.

◆ fromBuffer()

template<typename T >
void CapnpWrapper< T >::fromBuffer ( const uint8_t *  buffer,
size_t  size 
)
inline

Update wrapper fields from a serialized message buffer.

Parameters
bufferPointer to the buffer containing serialized Cap'n Proto data
sizeSize of the buffer in bytes

◆ fromProto()

template<typename T >
virtual void CapnpWrapper< T >::fromProto ( typename T::Reader  reader)
pure virtual

Update wrapper fields from a Cap'n Proto reader.

Parameters
readerThe Cap'n Proto reader to extract data from

◆ toBuffer()

template<typename T >
size_t CapnpWrapper< T >::toBuffer ( uint8_t *  buffer,
size_t  buffer_size 
) const
inline

Serialize this wrapper to a buffer using Cap'n Proto format.

Parameters
bufferPointer to the buffer to write serialized data to
buffer_sizeSize of the buffer in bytes
Returns
The number of bytes written to the buffer
Exceptions
std::runtime_errorif the buffer is too small

◆ toProto()

template<typename T >
virtual void CapnpWrapper< T >::toProto ( typename T::Builder &  builder) const
pure virtual

Write wrapper fields to a Cap'n Proto builder.

Parameters
builderThe Cap'n Proto builder to write data to

Friends And Related Symbol Documentation

◆ operator<<

template<typename T >
std::ostream & operator<< ( std::ostream &  os,
const CapnpWrapper< T > &  wrapper 
)
friend

Output operator for streaming any derived wrapper class.

Parameters
osThe output stream to write to
wrapperThe wrapper object to output
Returns
Reference to the output stream

The documentation for this class was generated from the following file: