IReaderCallback Class Reference

Callback class to use when parsing the EBML stream. More...

Inherited by IReaderCallBack, TReaderCallbackProxy1< COwnerClass >, TReaderCallbackProxy2< COwnerClass, mfpIsMasterChild, mfpOpenChild, mfpProcessChildData, mfpCloseChild >, CBoxAlgorithmGenericStreamReader, CBoxAlgorithmEBMLStreamSpy [virtual], IBoxAlgorithmEBMLInputReaderCallback [virtual], TReaderCallbackProxy1< OpenViBEPlugins::Acquisition::CGenericNetworkAcquisition >, and TReaderCallbackProxy1< OpenViBEPlugins::StreamCodecs::CEBMLBaseDecoder >.

List of all members.

Public Member Functions

virtual ~IReaderCallback (void)
 Virtual destructor.
virtual EBML::boolean isMasterChild (const EBML::CIdentifier &rIdentifier)=0
 Kind of child querry.
virtual void openChild (const EBML::CIdentifier &rIdentifier)=0
 Informs the callback object a new node parsing is starting.
virtual void processChildData (const void *pBuffer, const EBML::uint64 ui64BufferSize)=0
 Gives the callback object the data associated with the currently opened child node.
virtual void closeChild (void)=0
 Informs the callback object the current node parsing is terminated.

Detailed Description

Callback class to use when parsing the EBML stream.

Author:
Yann Renard (INRIA/IRISA)
Date:
2006-08-07 This class is to be overloaded by the user in order to get rid of the parsing events. It will be notified by the EBML::IReader object of what is found in the stream.
See also:
EBML::IReader

Member Function Documentation

virtual EBML::boolean isMasterChild ( const EBML::CIdentifier rIdentifier) [pure virtual]

Kind of child querry.

Parameters:
rIdentifier[in] : The identifier which type has to be known
Returns:
true when the node is a master node
false when it is a simple child node.

When called by the reader, this function should tell it whether the node identified by rIdentifier is a master node (has child) or not (has data). For that, it has to return true when the node should have children, and false in other cases.

virtual void openChild ( const EBML::CIdentifier rIdentifier) [pure virtual]

Informs the callback object a new node parsing is starting.

Parameters:
rIdentifier[in] : The idenfier of the newly parsing node

This is called to notify the callback object that the parser has started a new EBML node parsing. This EBML node is identified by rIdentifier. After this call will follow whether a new openChild if this node is a master one, whher a processData if this node is a simple child one.

virtual void processChildData ( const void *  pBuffer,
const EBML::uint64  ui64BufferSize 
) [pure virtual]

Gives the callback object the data associated with the currently opened child node.

Parameters:
pBuffer[in] : The buffer corresponding to the current simple child node
ui64BufferSize[in] : The buffer size in bytes

This function is called when the data reading is terminated for a simple child node and so the callback object can process it. Whether the callback object knows how to process the data, whether it requests a reader helper object to do the work... See EBML::IReaderHelper for more details on that subject.

virtual void closeChild ( void  ) [pure virtual]

Informs the callback object the current node parsing is terminated.

This function tells the callback object the current node parsing is terminated. Thus the parsing continues for the top level node, whether opening a new child or closing itself and so on...