Yate
RadioDataFile Class Reference

Radio data file helper This class implements utilities used to read or write radio data to/from file The String contains object name used for debug. More...

#include <yateradio.h>

Inheritance diagram for RadioDataFile:
String GenObject

Public Member Functions

 RadioDataFile (const char *name, bool dropOnError=true)
 
virtual ~RadioDataFile ()
 
const RadioDataDescdesc () const
 
bool valid () const
 
bool sameEndian () const
 
bool open (const char *fileName, const RadioDataDesc *data, DebugEnabler *dbg=0, int *error=0)
 
bool write (uint64_t ts, const void *buf, uint32_t len, DebugEnabler *dbg=0, int *error=0)
 
bool read (uint64_t &ts, DataBlock &buffer, DebugEnabler *dbg=0, int *error=0)
 
void terminate (DebugEnabler *dbg=0)
 
- Public Member Functions inherited from String
 String ()
 
 String (const char *value, int len=-1)
 
 String (char value, unsigned int repeat=1)
 
 String (int32_t value)
 
 String (uint32_t value)
 
 String (int64_t value)
 
 String (uint64_t value)
 
 String (bool value)
 
 String (double value)
 
 String (const String &value)
 
 String (const String *value)
 
virtual ~String ()
 
virtual void * getObject (const String &name) const
 
const char * c_str () const
 
const char * safe () const
 
const char * safe (const char *defStr) const
 
unsigned int length () const
 
bool null () const
 
int lenUtf8 (uint32_t maxChar=0x10ffff, bool overlong=false) const
 
int fixUtf8 (const char *replace=0, uint32_t maxChar=0x10ffff, bool overlong=false)
 
unsigned int encodeFlags (const TokenDict *tokens) const
 
uint64_t encodeFlags (const TokenDict64 *tokens) const
 
const StringdecodeFlags (unsigned int flags, const TokenDict *tokens, bool unknownflag=true)
 
const StringdecodeFlags (uint64_t flags, const TokenDict64 *tokens, bool unknownflag=true)
 
bool checkBOM () const
 
bool stripBOM ()
 
unsigned int hash () const
 
void clear ()
 
char at (int index) const
 
String substr (int offs, int len=-1) const
 
StringtrimBlanks ()
 
StringtrimSpaces ()
 
virtual const StringtoString () const
 
int toInteger (int defvalue=0, int base=0, int minvalue=INT_MIN, int maxvalue=INT_MAX, bool clamp=true) const
 
int toInteger (const TokenDict *tokens, int defvalue=0, int base=0) const
 
long int toLong (long int defvalue=0, int base=0, long int minvalue=LONG_MIN, long int maxvalue=LONG_MAX, bool clamp=true) const
 
int64_t toInt64 (int64_t defvalue=0, int base=0, int64_t minvalue=LLONG_MIN, int64_t maxvalue=LLONG_MAX, bool clamp=true) const
 
uint64_t toUInt64 (uint64_t defvalue=0, int base=0, uint64_t minvalue=0, uint64_t maxvalue=ULLONG_MAX, bool clamp=true) const
 
double toDouble (double defvalue=0.0) const
 
bool toBoolean (bool defvalue=false) const
 
bool isBoolean () const
 
StringtoUpper ()
 
StringtoLower ()
 
char operator[] (signed int index) const
 
char operator[] (unsigned int index) const
 
 operator const char * () const
 
Stringassign (const char *value, int len=-1)
 
Stringassign (char value, unsigned int repeat=1)
 
Stringhexify (void *data, unsigned int len, char sep=0, bool upCase=false)
 
Stringoperator= (const String &value)
 
Stringoperator= (const String *value)
 
Stringoperator= (const char *value)
 
Stringoperator= (char value)
 
Stringoperator= (int32_t value)
 
Stringoperator= (uint32_t value)
 
Stringoperator= (int64_t value)
 
Stringoperator= (uint64_t value)
 
Stringoperator= (bool value)
 
Stringoperator= (double value)
 
Stringoperator+= (const char *value)
 
Stringoperator+= (char value)
 
Stringoperator+= (int32_t value)
 
Stringoperator+= (uint32_t value)
 
Stringoperator+= (int64_t value)
 
Stringoperator+= (uint64_t value)
 
Stringoperator+= (bool value)
 
Stringoperator+= (double value)
 
bool operator== (const char *value) const
 
bool operator!= (const char *value) const
 
bool operator== (const String &value) const
 
bool operator!= (const String &value) const
 
bool operator&= (const char *value) const
 
bool operator|= (const char *value) const
 
Stringoperator<< (const char *value)
 
Stringoperator<< (char value)
 
Stringoperator<< (int32_t value)
 
Stringoperator<< (uint32_t value)
 
Stringoperator<< (int64_t value)
 
Stringoperator<< (uint64_t value)
 
Stringoperator<< (bool value)
 
Stringoperator<< (double value)
 
Stringoperator>> (const char *skip)
 
Stringoperator>> (char &store)
 
Stringoperator>> (UChar &store)
 
Stringoperator>> (int &store)
 
Stringoperator>> (unsigned int &store)
 
Stringoperator>> (bool &store)
 
Stringappend (const char *value, int len)
 
Stringappend (const char *value, const char *separator=0, bool force=false)
 
Stringappend (const ObjList *list, const char *separator=0, bool force=false)
 
Stringappend (const ObjList &list, const char *separator=0, bool force=false)
 
Stringappend (double value, unsigned int decimals=3)
 
Stringprintf (const char *format,...)
 
Stringprintf (unsigned int length, const char *format,...)
 
StringappendFixed (unsigned int fixedLength, const char *str, unsigned int len=-1, char fill=' ', int align=Left)
 
StringappendFixed (unsigned int fixedLength, const String &str, char fill=' ', int align=Left)
 
int find (char what, unsigned int offs=0) const
 
int find (const char *what, unsigned int offs=0) const
 
int rfind (char what) const
 
int rfind (const char *what) const
 
bool startsWith (const char *what, bool wordBreak=false, bool caseInsensitive=false) const
 
bool endsWith (const char *what, bool wordBreak=false, bool caseInsensitive=false) const
 
bool startSkip (const char *what, bool wordBreak=true, bool caseInsensitive=false)
 
StringextractTo (const char *sep, String &store)
 
StringextractTo (const char *sep, bool &store)
 
StringextractTo (const char *sep, int &store, int base=0)
 
StringextractTo (const char *sep, int &store, const TokenDict *tokens, int base=0)
 
StringextractTo (const char *sep, double &store)
 
virtual bool matches (const String &value) const
 
bool matches (const Regexp &rexp)
 
int matchOffset (int index=0) const
 
int matchLength (int index=0) const
 
String matchString (int index=0) const
 
String replaceMatches (const String &templ) const
 
int matchCount () const
 
ObjListsplit (char separator, bool emptyOK=true) const
 
ObjListsplit (const Regexp &reg, bool emptyOK=true) const
 
String msgEscape (char extraEsc=0) const
 
String msgUnescape (int *errptr=0, char extraEsc=0) const
 
String sqlEscape (char extraEsc=0) const
 
String uriEscape (char extraEsc=0, const char *noEsc=0) const
 
String uriUnescape (int *errptr=0) const
 
- Public Member Functions inherited from GenObject
 GenObject ()
 
virtual ~GenObject ()
 
virtual bool alive () const
 
virtual void destruct ()
 
virtual const StringtraceId () const
 
NamedCountergetObjCounter () const
 
NamedCountersetObjCounter (NamedCounter *counter)
 

Static Public Member Functions

static bool fixEndian (DataBlock &buf, unsigned int bytes)
 
- Static Public Member Functions inherited from String
static const Stringempty ()
 
static const char * boolText (bool value)
 
static int lenUtf8 (const char *value, uint32_t maxChar=0x10ffff, bool overlong=false)
 
static bool checkBOM (const char *str)
 
static bool stripBOM (const char *&str)
 
static bool stripBOM (char *&str)
 
static unsigned int hash (const char *value, unsigned int h=0)
 
static String msgEscape (const char *str, char extraEsc=0)
 
static String msgUnescape (const char *str, int *errptr=0, char extraEsc=0)
 
static String sqlEscape (const char *str, char extraEsc=0)
 
static String uriEscape (const char *str, char extraEsc=0, const char *noEsc=0)
 
static String uriEscape (const char *str, const char *extraEsc, const char *noEsc=0)
 
static String uriUnescape (const char *str, int *errptr=0)
 
static const Stringatom (const String *&str, const char *val)
 
- Static Public Member Functions inherited from GenObject
static void * getObject (const String &name, const GenObject *obj)
 
static bool getObjCounting ()
 
static void setObjCounting (bool enable)
 
static NamedCountergetObjCounter (const String &name, bool create=true)
 
static ObjListgetObjCounters ()
 

Protected Member Functions

bool ioError (bool send, DebugEnabler *dbg, int *error, const char *extra)
 
- Protected Member Functions inherited from String
virtual void changed ()
 

Protected Attributes

bool m_littleEndian
 
bool m_dropOnError
 
uint32_t m_chunkSize
 
RadioDataDesc m_header
 
File m_file
 
DataBlock m_writeBuf
 

Additional Inherited Members

- Public Types inherited from String
enum  Align { Left = 0 , Center , Right }
 

Detailed Description

Radio data file helper This class implements utilities used to read or write radio data to/from file The String contains object name used for debug.

Constructor & Destructor Documentation

◆ RadioDataFile()

RadioDataFile ( const char * name,
bool dropOnError = true )

Constructor

Parameters
nameName used for debug
dropOnErrorTerminate on file/data error

◆ ~RadioDataFile()

virtual ~RadioDataFile ( )
virtual

Destructor

Member Function Documentation

◆ desc()

const RadioDataDesc & desc ( ) const
inline

Retrieve data description

Returns
Data description object

◆ fixEndian()

static bool fixEndian ( DataBlock & buf,
unsigned int bytes )
static

Convert endiannes

Parameters
bufThe buffer to convert
bytesElement length in bytes
Returns
True on success, false if not supported

◆ open()

bool open ( const char * fileName,
const RadioDataDesc * data,
DebugEnabler * dbg = 0,
int * error = 0 )

Open a file for read/write. Terminate current data dump if any. Write or read the file header

Parameters
fileNameFile to open
dataData description. Pass a NULL pointer for read or valid data for write
dbgOptional DebugEnabler pointer (show debug on failure)
errorOptional destination for file operation error code
Returns
True on success, false on failure (read: error set to 0 means invalid file size, write: error set to 0 means invalid header)

◆ read()

bool read ( uint64_t & ts,
DataBlock & buffer,
DebugEnabler * dbg = 0,
int * error = 0 )

Read a record from file The method don't check the record length, this must be done by the upper layer

Parameters
tsRecord timestamp
bufferDestination buffer. It will be resized to read data length
dbgOptional DebugEnabler pointer (show debug on failure)
errorOptional destination for file operation error code
Returns
True on success (empty buffer means file EOF), false on failure (error set to 0 means invalid record size)

◆ sameEndian()

bool sameEndian ( ) const
inline

Check if machine endiannes is the same as file endiannes

Returns
True if they are the same

◆ terminate()

void terminate ( DebugEnabler * dbg = 0)

Terminate data dump, close file

Parameters
dbgOptional DebugEnabler pointer (show terminate message)

◆ valid()

bool valid ( ) const
inline

Check if enabled

Returns
True if enabled, false otherwise

◆ write()

bool write ( uint64_t ts,
const void * buf,
uint32_t len,
DebugEnabler * dbg = 0,
int * error = 0 )

Write a record to file

Parameters
tsRecord timestamp
bufBuffer to write
lenBuffer length in bytes
dbgOptional DebugEnabler pointer (show debug on failure)
errorOptional destination for file operation error code
Returns
True on success, false on failure (error set to 0 means invalid length)

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