ldas-tools-framecpp  2.6.2
Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
FrameCPP::Common::OFrameStream Class Reference

#include <FrameStream.hh>

Inheritance diagram for FrameCPP::Common::OFrameStream:
FrameCPP::Common::FrameStream FrameCPP::Common::OStream FrameCPP::Common::StreamBase FrameCPP::Common::StreamBase

Public Types

typedef OStream::buffer_type buffer_type
 
typedef INT_4U chkSum_type
 
typedef FrHeader::frame_library_type frame_library_type
 
typedef FrHeader::library_revision_type library_revision_type
 
typedef FrameSpec::version_type version_type
 
typedef const StreamRefInterfacestreamref_interface_type
 
typedef INT_4U fr_event_offset_type
 
typedef INT_4U fr_sim_event_offset_type
 
typedef boost::shared_ptr< FrameSpec::Objectobject_type
 

Public Member Functions

 OFrameStream (buffer_type *Buffer, INT_2U Version=FRAME_SPEC_CURRENT)
 
 OFrameStream (bool AutoDelete, buffer_type *Buffer, INT_2U Version=FRAME_SPEC_CURRENT)
 
 ~OFrameStream ()
 
void Close ()
 
void DisableTOC ()
 
virtual INT_4U GetNumberOfFrames () const
 
virtual INT_8U GetTOCOffset () const
 
void SetAutoDeleteBuffer (const bool AutoDelete)
 Establish if the buffer is to be released with the Stream. More...
 
void SetMD5Sum (bool Value)
 
void Write (object_type Obj)
 
void WriteFrame (object_type FrameObject, chkSum_type FrameChecksumType=Common::CheckSum::NONE)
 Write Frame data to the stream. More...
 
void WriteFrame (object_type FrameObject, INT_2U CompressionScheme, INT_2U CompressionLevel, chkSum_type FrameChecksumType=CheckSum::NONE)
 Write Frame data to the stream. More...
 
void WriteFrStatData (object_type FrameObject)
 
frame_library_type FrameLibrary () const
 
library_revision_type LibraryRevision () const
 
version_type Version () const
 
const std::string & GetLastError () const
 
const MD5SumGetMD5Sum () const
 

Protected Types

typedef const Dictionary::streamref_type::element_type * const_stream_ref_ptr_type
 
typedef Dictionary::streamref_type streamref_type
 
typedef std::unique_ptr< CheckSumFilterchecksum_filter_type
 
typedef std::unique_ptr< MD5SumFiltermd5sum_filter_type
 
typedef LDASTools::AL::unordered_map< INT_2U, INT_2U > streamid_to_fsiid_type
 
typedef boost::shared_ptr< PTR_STRUCT_BASEptr_struct_base_type
 
typedef std::ostream ostream_type
 
typedef ostream_type::char_type char_type
 
typedef FrameSpec::ObjectInterface::unique_object_type unique_object_type
 

Protected Member Functions

virtual void frameSpecInfo (const FrameSpec::Info *Spec)
 
const FrameSpec::InfoframeSpecInfo () const
 
void setLastError (const std::string &Message)
 
void setTOC ()
 
const StreamRefInterfacestreamRef () const
 
void version_stream (version_type Version)
 
void frameLibrary (frame_library_type FrameLibrary)
 
void libraryRevision (library_revision_type LibraryRevision)
 
version_type memoryVersion () const
 
version_type streamVersion () const
 
virtual void reset ()
 
virtual void Cleanup ()
 
INT_2U GetClassId (const std::string &ClassName) const
 
INT_2U GetFSIId (INT_2U StreamId) const
 
cmn_streamsize_type PtrStructBytes () const
 
const_stream_ref_ptr_type ReferenceStreamRef () const
 
const DictionaryGetDictionary () const
 
DictionaryGetDictionary ()
 
void Compression (INT_2U &CompressionScheme, INT_2U &CompressionLevel)
 
INT_2U CompressionScheme () const
 
INT_2U CompressionLevel () const
 
template<typename Header >
const Header * GetFrHeader () const
 
void Next (object_type Obj, object_type NextObj)
 
object_type Next (object_type Obj) const
 
const PTR_STRUCT_BASEReference (object_type Obj) const
 
OStreamwrite (const char_type *S, std::streamsize N)
 
object_type Pop ()
 Get an object from the output queue. More...
 
void PushSingle (object_type Obj)
 Append an object to the output queue. More...
 
template<typename Iter >
void PushMulti (Iter Start, Iter End, size_t Size)
 Append multiple objects to the output queue. More...
 
const Common::PTR_STRUCT_BASENextPtrStruct (object_type Cur) const
 Create a PTR_STRUCT for next object. More...
 
const Common::PTR_STRUCT_BASENextPtrStruct (const object_type::element_type *Cur) const
 Create a PTR_STRUCT for next object. More...
 
OStreamoperator<< (object_type Data)
 
OStreamoperator<< (Pointer Data)
 
template<typename T , const std::string &(T::*)() const F>
OStreamoperator<< (const SearchContainer< T, F > &SC)
 
template<typename T >
OStreamoperator<< (const Container< T > &C)
 
template<typename L >
OStreamoperator<< (const STRING< L > &String)
 
template<typename L >
OStreamoperator<< (const STRING_SHADOW< L > &String)
 
template<typename L >
OStreamoperator<< (const std::vector< STRING< L > > &Strings)
 
template<typename DT >
OStreamoperator<< (const std::vector< DT > &N)
 
template<typename DT >
OStreamoperator<< (const DT &N)
 
template<>
OStreamoperator<< (const LDASTools::AL::GPSTime &Data)
 
buffer_typerdbuf () const
 
CheckSumFilterGetCheckSumFile () const
 
void SetCheckSumFile (const CheckSum::kind_type Type)
 
CheckSumFilterGetCheckSumFrame () const
 
void SetCheckSumFrame (const CheckSum::kind_type Type)
 
CheckSumFilterGetCheckSumObject () const
 
void SetCheckSumObject (const CheckSum::kind_type Type)
 
void setFrHeader (unique_object_type &Obj)
 
void setAutoDeleteBuffer (const bool Value)
 Establish if the buffer is to be released with the Stream. More...
 

Protected Attributes

bool m_closed_state
 
std::unique_ptr< MD5SumFilterm_md5sumFilter
 
Dictionary m_dictionary
 
object_type m_null_stream_ref
 
ptr_struct_base_type m_ptr_struct_object
 
streamid_to_fsiid_type m_stream_id_to_fsi_id
 
checksum_filter_type m_file_checksum
 Checksum for file. More...
 
checksum_filter_type m_frame_checksum
 Checksum for frame. More...
 
checksum_filter_type m_obj_checksum
 Checksum for object. More...
 
md5sum_filter_type m_file_md5sum
 MD5Sum value for the files. More...
 

Member Typedef Documentation

◆ buffer_type

◆ char_type

◆ checksum_filter_type

typedef std::unique_ptr<CheckSumFilter> FrameCPP::Common::StreamBase::checksum_filter_type
protectedinherited

◆ chkSum_type

◆ const_stream_ref_ptr_type

typedef const Dictionary::streamref_type::element_type* FrameCPP::Common::StreamBase::const_stream_ref_ptr_type
inherited

◆ fr_event_offset_type

◆ fr_sim_event_offset_type

◆ frame_library_type

typedef FrHeader::frame_library_type FrameCPP::Common::FrameStream::frame_library_type
inherited

◆ library_revision_type

typedef FrHeader::library_revision_type FrameCPP::Common::FrameStream::library_revision_type
inherited

◆ md5sum_filter_type

typedef std::unique_ptr< MD5SumFilter > FrameCPP::Common::StreamBase::md5sum_filter_type
protectedinherited

◆ object_type

typedef boost::shared_ptr< FrameSpec::Object > FrameCPP::Common::StreamBase::object_type
inherited

◆ ostream_type

typedef std::ostream FrameCPP::Common::OStream::ostream_type
inherited

◆ ptr_struct_base_type

typedef boost::shared_ptr< PTR_STRUCT_BASE > FrameCPP::Common::StreamBase::ptr_struct_base_type
protectedinherited

◆ streamid_to_fsiid_type

typedef LDASTools::AL::unordered_map< INT_2U, INT_2U > FrameCPP::Common::StreamBase::streamid_to_fsiid_type
protectedinherited

◆ streamref_interface_type

◆ streamref_type

◆ unique_object_type

◆ version_type

Constructor & Destructor Documentation

◆ OFrameStream() [1/2]

FrameCPP::Common::OFrameStream::OFrameStream ( buffer_type Buffer,
INT_2U  Version = FRAME_SPEC_CURRENT 
)

◆ OFrameStream() [2/2]

FrameCPP::Common::OFrameStream::OFrameStream ( bool  AutoDelete,
buffer_type Buffer,
INT_2U  Version = FRAME_SPEC_CURRENT 
)

◆ ~OFrameStream()

FrameCPP::Common::OFrameStream::~OFrameStream ( )

Member Function Documentation

◆ Cleanup()

void FrameCPP::Common::StreamBase::Cleanup ( )
virtualinherited

◆ Close()

void FrameCPP::Common::OFrameStream::Close ( )

◆ Compression()

void FrameCPP::Common::OStream::Compression ( INT_2U &  CompressionScheme,
INT_2U &  CompressionLevel 
)
inlineinherited

param[in,out] CompressionScheme param[in,out] CompressionType

◆ CompressionLevel()

INT_2U FrameCPP::Common::OStream::CompressionLevel ( ) const
inlineinherited

◆ CompressionScheme()

INT_2U FrameCPP::Common::OStream::CompressionScheme ( ) const
inlineinherited

◆ DisableTOC()

void FrameCPP::Common::OFrameStream::DisableTOC ( )
inline

◆ FrameLibrary()

FrameStream::frame_library_type FrameCPP::Common::FrameStream::FrameLibrary ( ) const
inlineinherited

◆ frameLibrary()

void FrameCPP::Common::FrameStream::frameLibrary ( frame_library_type  FrameLibrary)
inlineprotectedinherited

◆ frameSpecInfo() [1/2]

void FrameCPP::Common::FrameStream::frameSpecInfo ( const FrameSpec::Info Spec)
protectedvirtualinherited

Reimplemented from FrameCPP::Common::StreamBase.

◆ frameSpecInfo() [2/2]

const FrameSpec::Info & FrameCPP::Common::StreamBase::frameSpecInfo ( ) const
inlineprotectedinherited

◆ GetCheckSumFile()

CheckSumFilter * FrameCPP::Common::OStream::GetCheckSumFile ( ) const
inlineinherited

◆ GetCheckSumFrame()

CheckSumFilter * FrameCPP::Common::OStream::GetCheckSumFrame ( ) const
inlineinherited

◆ GetCheckSumObject()

CheckSumFilter * FrameCPP::Common::OStream::GetCheckSumObject ( ) const
inlineinherited

◆ GetClassId()

INT_2U FrameCPP::Common::StreamBase::GetClassId ( const std::string &  ClassName) const
inherited

◆ GetDictionary() [1/2]

const Dictionary & FrameCPP::Common::StreamBase::GetDictionary ( ) const
inlineinherited

◆ GetDictionary() [2/2]

Dictionary & FrameCPP::Common::StreamBase::GetDictionary ( )
inlineinherited

◆ GetFrHeader()

template<typename Header >
const Header * FrameCPP::Common::OStream::GetFrHeader ( ) const
inlineinherited

◆ GetFSIId()

INT_2U FrameCPP::Common::StreamBase::GetFSIId ( INT_2U  StreamId) const
inlineinherited

◆ GetLastError()

const std::string & FrameCPP::Common::FrameStream::GetLastError ( ) const
inlineinherited

◆ GetMD5Sum()

const MD5Sum & FrameCPP::Common::FrameStream::GetMD5Sum ( ) const
inlineinherited

◆ GetNumberOfFrames()

INT_4U FrameCPP::Common::OFrameStream::GetNumberOfFrames ( ) const
inlinevirtual

Reimplemented from FrameCPP::Common::OStream.

◆ GetTOCOffset()

INT_8U FrameCPP::Common::OFrameStream::GetTOCOffset ( ) const
inlinevirtual

Reimplemented from FrameCPP::Common::OStream.

◆ LibraryRevision()

FrameStream::library_revision_type FrameCPP::Common::FrameStream::LibraryRevision ( ) const
inlineinherited

◆ libraryRevision()

void FrameCPP::Common::FrameStream::libraryRevision ( library_revision_type  LibraryRevision)
inlineprotectedinherited

◆ memoryVersion()

FrameStream::version_type FrameCPP::Common::FrameStream::memoryVersion ( ) const
inlineprotectedinherited

◆ Next() [1/2]

void FrameCPP::Common::OStream::Next ( object_type  Obj,
object_type  NextObj 
)
inherited

◆ Next() [2/2]

OStream::object_type FrameCPP::Common::OStream::Next ( object_type  Obj) const
inherited

◆ NextPtrStruct() [1/2]

const PTR_STRUCT_BASE & FrameCPP::Common::OStream::NextPtrStruct ( object_type  Cur) const
inherited

Create a PTR_STRUCT for next object.

◆ NextPtrStruct() [2/2]

const PTR_STRUCT_BASE & FrameCPP::Common::OStream::NextPtrStruct ( const object_type::element_type *  Cur) const
inherited

Create a PTR_STRUCT for next object.

◆ operator<<() [1/10]

OStream & FrameCPP::Common::OStream::operator<< ( object_type  Data)
inlineinherited
Todo:
support MD5Sum

◆ operator<<() [2/10]

OStream & FrameCPP::Common::OStream::operator<< ( Pointer  Data)
inlineinherited

◆ operator<<() [3/10]

template<typename T , const std::string &(T::*)() const F>
OStream& FrameCPP::Common::OStream::operator<< ( const SearchContainer< T, F > &  SC)
inlineinherited

◆ operator<<() [4/10]

template<typename T >
OStream& FrameCPP::Common::OStream::operator<< ( const Container< T > &  C)
inlineinherited

◆ operator<<() [5/10]

template<typename L >
OStream& FrameCPP::Common::OStream::operator<< ( const STRING< L > &  String)
inlineinherited

◆ operator<<() [6/10]

template<typename L >
OStream& FrameCPP::Common::OStream::operator<< ( const STRING_SHADOW< L > &  String)
inlineinherited

◆ operator<<() [7/10]

template<typename L >
OStream& FrameCPP::Common::OStream::operator<< ( const std::vector< STRING< L > > &  Strings)
inlineinherited

◆ operator<<() [8/10]

template<typename DT >
OStream & FrameCPP::Common::OStream::operator<< ( const std::vector< DT > &  N)
inlineinherited

◆ operator<<() [9/10]

template<typename DT >
OStream & FrameCPP::Common::OStream::operator<< ( const DT &  N)
inlineinherited

◆ operator<<() [10/10]

template<>
OStream& FrameCPP::Common::OStream::operator<< ( const LDASTools::AL::GPSTime &  Data)
inlineinherited

◆ Pop()

OStream::object_type FrameCPP::Common::OStream::Pop ( )
inlineinherited

Get an object from the output queue.

Returns
The next object to be written to the stream.

This method retieves the next object to be written along with information indicating if the object should be deallocated once written.

◆ PtrStructBytes()

cmn_streamsize_type FrameCPP::Common::StreamBase::PtrStructBytes ( ) const
inlineinherited

◆ PushMulti()

template<typename Iter >
void FrameCPP::Common::OStream::PushMulti ( Iter  Start,
Iter  End,
size_t  Size 
)
inlineinherited

Append multiple objects to the output queue.

Parameters
[in]StartThe first element to be added to the queue.
[in]EndThe last element to be added to the queue.
[in]SizeThe number of elements to be added to the queue.

◆ PushSingle()

void FrameCPP::Common::OStream::PushSingle ( object_type  Obj)
inlineinherited

Append an object to the output queue.

Parameters
[in]ObjThe object to be written.

This method adds an object to the queue of objects to be written. It preserves the order in which the objects should be written to the stream by keeping a local iterator indicating the point of insertion.

◆ rdbuf()

buffer_type* FrameCPP::Common::OStream::rdbuf ( ) const
inlineinherited

◆ Reference()

const PTR_STRUCT_BASE & FrameCPP::Common::OStream::Reference ( object_type  Obj) const
inherited

◆ ReferenceStreamRef()

StreamBase::const_stream_ref_ptr_type FrameCPP::Common::StreamBase::ReferenceStreamRef ( ) const
inherited

◆ reset()

void FrameCPP::Common::FrameStream::reset ( )
protectedvirtualinherited

Reimplemented in FrameCPP::Common::IFrameStream.

◆ SetAutoDeleteBuffer()

void FrameCPP::Common::OFrameStream::SetAutoDeleteBuffer ( const bool  AutoDelete)
inline

Establish if the buffer is to be released with the Stream.

Parameters
[in]AutoDeleteIf true, then the buffer will be released with the destruction of this instance. If false, then the buffer will exist even after the destruction of this instance.

◆ setAutoDeleteBuffer()

void FrameCPP::Common::OStream::setAutoDeleteBuffer ( const bool  Value)
inlineprotectedinherited

Establish if the buffer is to be released with the Stream.

Parameters
[in]ValueIf true, then the buffer will be released with the destruction of this instance. If false, then the buffer will exist even after the destruction of this instance.

◆ SetCheckSumFile()

void FrameCPP::Common::OStream::SetCheckSumFile ( const CheckSum::kind_type  Type)
inlineinherited

◆ SetCheckSumFrame()

void FrameCPP::Common::OStream::SetCheckSumFrame ( const CheckSum::kind_type  Type)
inlineinherited

◆ SetCheckSumObject()

void FrameCPP::Common::OStream::SetCheckSumObject ( const CheckSum::kind_type  Type)
inlineinherited

◆ setFrHeader()

void FrameCPP::Common::OStream::setFrHeader ( unique_object_type Obj)
inlineprotectedinherited

◆ setLastError()

void FrameCPP::Common::FrameStream::setLastError ( const std::string &  Message)
inlineprotectedinherited

◆ SetMD5Sum()

void FrameCPP::Common::OFrameStream::SetMD5Sum ( bool  Value)
inline

◆ setTOC()

void FrameCPP::Common::FrameStream::setTOC ( )
protectedinherited

◆ streamRef()

const StreamRefInterface & FrameCPP::Common::FrameStream::streamRef ( ) const
inlineprotectedinherited

◆ streamVersion()

FrameStream::version_type FrameCPP::Common::FrameStream::streamVersion ( ) const
inlineprotectedinherited

◆ Version()

FrameStream::version_type FrameCPP::Common::FrameStream::Version ( ) const
inlineinherited

◆ version_stream()

void FrameCPP::Common::FrameStream::version_stream ( version_type  Version)
inlineprotectedinherited

◆ Write()

void FrameCPP::Common::OFrameStream::Write ( object_type  Obj)
Todo:
Check that the compression mode is supported by by the writer
Todo:
Need to ensure that all FrStatData structures have been written to the stream. This is to verify that that an FrDetector structure has been associated with each FrStatData.

◆ write()

OStream & FrameCPP::Common::OStream::write ( const char_type S,
std::streamsize  N 
)
inlineinherited

◆ WriteFrame() [1/2]

void FrameCPP::Common::OFrameStream::WriteFrame ( object_type  FrameObject,
chkSum_type  FrameChecksumType = Common::CheckSum::NONE 
)

Write Frame data to the stream.

◆ WriteFrame() [2/2]

void FrameCPP::Common::OFrameStream::WriteFrame ( object_type  FrameObject,
INT_2U  CompressionScheme,
INT_2U  CompressionLevel,
chkSum_type  FrameChecksumType = CheckSum::NONE 
)

Write Frame data to the stream.

◆ WriteFrStatData()

void FrameCPP::Common::OFrameStream::WriteFrStatData ( object_type  FrameObject)

Member Data Documentation

◆ m_closed_state

bool FrameCPP::Common::FrameStream::m_closed_state
protectedinherited

◆ m_dictionary

Dictionary FrameCPP::Common::StreamBase::m_dictionary
protectedinherited

◆ m_file_checksum

checksum_filter_type FrameCPP::Common::StreamBase::m_file_checksum
protectedinherited

Checksum for file.

◆ m_file_md5sum

md5sum_filter_type FrameCPP::Common::StreamBase::m_file_md5sum
protectedinherited

MD5Sum value for the files.

◆ m_frame_checksum

checksum_filter_type FrameCPP::Common::StreamBase::m_frame_checksum
protectedinherited

Checksum for frame.

◆ m_md5sumFilter

std::unique_ptr< MD5SumFilter > FrameCPP::Common::FrameStream::m_md5sumFilter
protectedinherited

◆ m_null_stream_ref

object_type FrameCPP::Common::StreamBase::m_null_stream_ref
protectedinherited

◆ m_obj_checksum

checksum_filter_type FrameCPP::Common::StreamBase::m_obj_checksum
protectedinherited

Checksum for object.

◆ m_ptr_struct_object

ptr_struct_base_type FrameCPP::Common::StreamBase::m_ptr_struct_object
protectedinherited

◆ m_stream_id_to_fsi_id

streamid_to_fsiid_type FrameCPP::Common::StreamBase::m_stream_id_to_fsi_id
mutableprotectedinherited

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