MityDSP Documentation Index

MityDSP::tcDspParserBase Class Reference

This class provides a base class from which various MityDSP parsers may be derived. More...

#include <core/DspParserBase.h>

Inheritance diagram for MityDSP::tcDspParserBase:
MityDSP::tcDspParseIHex

List of all members.

Public Types

enum  teDspParseStatus {
  eeParseOK = 0, eeParseChecksumErr = -1, eeParseSyncErr = -2, eeParseBustedMsg = -3,
  eeParseTooBigErr = -4, eeBaseLast = -5
}
 

possible return status'

More...
typedef bool(* tfParserCallback )(int, void *, int, unsigned int, void *)
 Prototype for message complete callbacks.

Public Member Functions

 tcDspParserBase (void *apOutBuf=NULL, int anOutBufLen=4096)
 This constructor is used to create an instance of a parser.
virtual ~tcDspParserBase ()
 This destructor is used to close up and free the resources tied to the associated parser.
virtual bool ResetParser (void *apOutBuf=NULL, int anOutBufLen=0)
 This routine is used to reset a parser to an initialized state.
virtual int AddData (void *apData, int anLength)
 This routine is used to add data to the parser.
virtual void RegisterCallback (tfParserCallback afCallback, void *apUser=NULL)
 Registers the specified callback for the parser.

Public Attributes

unsigned int mnBytesRead
 Bytes passed to parser.
unsigned int mnBytesWritten
 Bytes written to buffer.
unsigned int mnGoodMsgs
 Count of valid messages decoded.
unsigned int mnBadMsgs
 Count of bad messages.
unsigned int mnSyncErrs
 Number of synchronization errors.
unsigned int mnChecksumErrs
 Number of checksum errors.

Protected Member Functions

int AssembleLine (void *apInput, int anLength, bool &arLineComplete)
 Utility routine to assemble a line of data (delimited by a <CR> or <LF>) into the local line buffer.
char AsciiHexDigitVal (char anHexdigit)
 This routine converts a hex character (0-9, a-f, or A-F) to it's corresponding numeric value.

Protected Attributes

tfParserCallback mfCallback
 Storage for parser callback.
C_SECT mhMutex
 Semaphore to serialize access.
bool mbStorageCreated
 Indicates whether out buf created.
void * mpOutBuf
 Pointer to output storage.
int mnOutBufLen
 Current bytes written to output.
unsigned int mnChecksum
 Storage to accumulate checksum.
char * maLineBuffer
 Storage to acculate complete lines (or other entities) to parse.
int mnLineBufLen
 Length of line buffer.
int mnLinePos
 Working position in the line buffer.
void * mpUserParameter
 User-provided parameter to callback.

Detailed Description

This class provides a base class from which various MityDSP parsers may be derived.

See also:
tcDspParserBase Page

Member Typedef Documentation

typedef bool(* MityDSP::tcDspParserBase::tfParserCallback)(int, void *, int, unsigned int, void *)

Prototype for message complete callbacks.

Parameters:
[in] anStatus Cast of teDspParseStatus to an integer
[in] apData Pointer to the buffer containing parse results
[in] anLength Length of parse results
[in] anInfo Other buffer info (usually a checksum)
[in] apUser User parameter (provided at registration)
Returns:
True to continue parsing, if possible False to restart parser on next message

Member Enumeration Documentation

possible return status'

Enumerator:
eeParseOK 

success

eeParseChecksumErr 

checksum failure

eeParseSyncErr 

data sync error

eeParseBustedMsg 

broken message (missing data)

eeParseTooBigErr 

result too big for output buffer

eeBaseLast 

errors beyond this are outside base class


Constructor & Destructor Documentation

tcDspParserBase::tcDspParserBase ( void *  apOutBuf = NULL,
int  anOutBufLen = 4096 
)

This constructor is used to create an instance of a parser.

Storage for parser output, and the maximum size of the output, may be optionally provided. If no buffer is provided, the class attempts to create one.

Parameters:
[in] apOutBuf Address of parser output buffer (default: NULL)
[in] anOutBufLen Length of output buffer (default: 4K)
Returns:
None.
See also:
DspParserBase.h
tcDspParserBase::~tcDspParserBase (  )  [virtual]

This destructor is used to close up and free the resources tied to the associated parser.

Returns:
None.
See also:
DspParserBase.h

Member Function Documentation

bool tcDspParserBase::ResetParser ( void *  apOutBuf = NULL,
int  anOutBufLen = 0 
) [virtual]

This routine is used to reset a parser to an initialized state.

A new output buffer may optionally be provided.

Parameters:
[in] apOutBuf Address of new parser output buffer (default: NULL)
[in] anOutBufLen Length of new output buffer (default: 0)
Returns:
True, if successful.
See also:
DspParserBase.h

Reimplemented in MityDSP::tcDspParseIHex.

int tcDspParserBase::AddData ( void *  apData,
int  anLength 
) [virtual]

This routine is used to add data to the parser.

In the base class, this is simply a "passthrough"... the input data is taken as a complete message and is passed to the callback. If the input fits in the output, the status is eeParseOK, otherwise eeParseTooBigErr.

Parameters:
[in] apData Pointer to new data
[in] anLength Length of new data
Returns:
Integer number of messages completed this call.
See also:
DspParserBase.h

Reimplemented in MityDSP::tcDspParseIHex.

void tcDspParserBase::RegisterCallback ( tfParserCallback  afCallback,
void *  apUser = NULL 
) [virtual]

Registers the specified callback for the parser.

Parameters:
[in] afCallback The application callback to associate with the parser (or NULL for none).
[in] apUser An argument to be supplied with the callback.
Returns:
None.
See also:
DspParserBase.h
int tcDspParserBase::AssembleLine ( void *  apInput,
int  anLength,
bool &  arLineComplete 
) [protected]

Utility routine to assemble a line of data (delimited by a <CR> or <LF>) into the local line buffer.

Parameters:
[in] apInput Pointer to the raw input data.
[in] anLength Length of available raw data.
[out] arLineComplete Set to true if a completed line is available.
Returns:
Number of bytes consumed from the input buffer.
See also:
DspParserBase.h
char tcDspParserBase::AsciiHexDigitVal ( char  anHexdigit  )  [protected]

This routine converts a hex character (0-9, a-f, or A-F) to it's corresponding numeric value.

Parameters:
[in] anHexdigit The ASCII character to convert
Returns:
The resulting numeric value
See also:
DspParserBase.h

Member Data Documentation

Bytes passed to parser.

Bytes written to buffer.

Count of valid messages decoded.

Count of bad messages.

Number of synchronization errors.

Number of checksum errors.

Storage for parser callback.

Semaphore to serialize access.

Indicates whether out buf created.

Pointer to output storage.

Current bytes written to output.

unsigned int MityDSP::tcDspParserBase::mnChecksum [protected]

Storage to accumulate checksum.

Storage to acculate complete lines (or other entities) to parse.

Length of line buffer.

Working position in the line buffer.

User-provided parameter to callback.


  
Generated on Fri Sep 23 16:33:52 2011 for MityDSP Core by  Doxygen Version 1.6.1
Copyright © 2009, Critical Link LLC, All rights reserved.