Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes

AcsBulkdata::BulkDataConfigurationParser Class Reference

#include <bulkDataNTConfigurationParser.h>

Collaboration diagram for AcsBulkdata::BulkDataConfigurationParser:
Collaboration graph
[legend]

List of all members.

Classes

struct  _ReceiverCfg
struct  _SenderCfg
 the name of the library that Qos should use as a base More...
struct  ParsingInfo

Public Member Functions

 BulkDataConfigurationParser (const char *baseLibraryName)
 ~BulkDataConfigurationParser ()
void parseSenderConfig (char const *configXML)
void parseReceiverConfig (char const *configXML)
std::set< char const * > getAllSenderStreamNames ()
std::set< char const * > getAllReceiverStreamNames ()
std::set< char const * > getAllSenderFlowNames (char const *streamName)
std::set< char const * > getAllReceiverFlowNames (char const *streamName)
SenderStreamConfigurationgetSenderStreamConfiguration (char const *streamName)
SenderFlowConfigurationgetSenderFlowConfiguration (char const *streamName, char const *flowName)
ReceiverStreamConfigurationgetReceiverStreamConfiguration (char const *streamName)
ReceiverFlowConfigurationgetReceiverFlowConfiguration (char const *streamName, char const *flowName)

Private Types

enum  ParsingType { SENDER, RECEIVER }
typedef struct
AcsBulkdata::BulkDataConfigurationParser::_SenderCfg 
SenderCfg
 the name of the library that Qos should use as a base
typedef struct
AcsBulkdata::BulkDataConfigurationParser::_ReceiverCfg 
ReceiverCfg
typedef std::map< std::string,
ReceiverCfg
ReceiverCfgMap
typedef std::map< std::string,
SenderCfg
SenderCfgMap

Private Member Functions

void parseConfig (const char *config, const struct ParsingInfo &parsingInfo)
const XMLCh * getAttrValue (xercesc::DOMNode *node, const char *name)
unsigned short getUnsignedShortFromAttribute (xercesc::DOMNode *node, const char *attribute, unsigned short defaultVal)
double getDoubleFromAttribute (xercesc::DOMNode *node, const char *attribute, double defaultVal)
std::string getStringFromAttribute (xercesc::DOMNode *node, const char *attribute, std::string defaultVal)
bool getBooleanFromAttribute (xercesc::DOMNode *node, const char *attribute, bool defaultVal)
std::string getQosProfile (const char *profileName, const char *baseProfile, xercesc::DOMNode *node)
std::string getStrURIforStream (std::list< std::string > profiles)
void cleanReceiverConfigs ()
void cleanSenderConfigs ()
void cleanConfig (ReceiverCfg *recvConfig, SenderCfg *senderConfig, ParsingType type)
std::string getElementLocalName (xercesc::DOMNode *node)

Private Attributes

const char * m_baseLibrary
xercesc::DOMWriter * m_writer
 used for the Qos library name of generated XML
xercesc::AbstractDOMParser * m_parser
std::string m_baseQoSlibrary
ReceiverCfgMap receiverConfigMap_m
SenderCfgMap senderConfigMap_m

Static Private Attributes

static const char *const SENDER_STREAM_NODENAME
static const char *const SENDER_STREAM_QOS_NODENAME
static const char *const SENDER_FLOW_NODENAME
static const char *const SENDER_FLOW_QOS_NODENAME
static const char *const RECEIVER_STREAM_NODENAME
static const char *const RECEIVER_STREAM_QOS_NODENAME
static const char *const RECEIVER_FLOW_NODENAME
static const char *const RECEIVER_FLOW_QOS_NODENAME
static const char *const DYNAMIC_LIBRARY_NAME
static const char *const DEFAULT_QOS_LIBRARY_NAME
static const struct ParsingInfo SENDER_PARSING_INFO
static const struct ParsingInfo RECEIVER_PARSING_INFO

Member Typedef Documentation

the name of the library that Qos should use as a base

typedef std::map<std::string, SenderCfg> AcsBulkdata::BulkDataConfigurationParser::SenderCfgMap [private]

Member Enumeration Documentation

Enumerator:
SENDER 
RECEIVER 

Constructor & Destructor Documentation

AcsBulkdata::BulkDataConfigurationParser::BulkDataConfigurationParser ( const char *  baseLibraryName  ) 

Parser constructor. Its creation needs a base library as a mandatory argument, which will prevent name duplication among configured entities. An example of potential danger would be a process that creates the same streams/flows combinations in two separate places. Such a process would get a failure when creating the second set of streams/flows, since the "QoS profiles" (internal representations of the DDS configuration entities) would belong to the same "library", and would already exists on the RTI world.

Parameters:
baseLibraryName The base library name to be used by all the configuration objects that this parser creates. An example would be the ACS component name, or any other particular identification string.
AcsBulkdata::BulkDataConfigurationParser::~BulkDataConfigurationParser (  ) 

Destructor


Member Function Documentation

void AcsBulkdata::BulkDataConfigurationParser::cleanConfig ( ReceiverCfg recvConfig,
SenderCfg senderConfig,
ParsingType  type 
) [private]
void AcsBulkdata::BulkDataConfigurationParser::cleanReceiverConfigs (  )  [private]
void AcsBulkdata::BulkDataConfigurationParser::cleanSenderConfigs (  )  [private]
std::set<char const *> AcsBulkdata::BulkDataConfigurationParser::getAllReceiverFlowNames ( char const *  streamName  ) 

Returns, for the given Receiver stream name, a set of strings containing all Receiver Flow names found in the parsed XML document. If none was found, an empty set is returned

std::set<char const *> AcsBulkdata::BulkDataConfigurationParser::getAllReceiverStreamNames (  ) 

Returns a set of strings containing all Receiver Stream names found in the parsed XML document. If none was found, an empty set is returned

std::set<char const *> AcsBulkdata::BulkDataConfigurationParser::getAllSenderFlowNames ( char const *  streamName  ) 

Returns, for the given Sender stream name, a set of strings containing all Sender Flow names found in the parsed XML document. If none was found, an empty set is returned

Parameters:
streamName The name of the sender stream
Returns:
A set containing all flow names for the given stream name
std::set<char const *> AcsBulkdata::BulkDataConfigurationParser::getAllSenderStreamNames (  ) 

Returns a set of strings containing all Sender Stream names found in the parsed XML document. If none was found, an empty set is returned

const XMLCh* AcsBulkdata::BulkDataConfigurationParser::getAttrValue ( xercesc::DOMNode *  node,
const char *  name 
) [private]
bool AcsBulkdata::BulkDataConfigurationParser::getBooleanFromAttribute ( xercesc::DOMNode *  node,
const char *  attribute,
bool  defaultVal 
) [private]
double AcsBulkdata::BulkDataConfigurationParser::getDoubleFromAttribute ( xercesc::DOMNode *  node,
const char *  attribute,
double  defaultVal 
) [private]
std::string AcsBulkdata::BulkDataConfigurationParser::getElementLocalName ( xercesc::DOMNode *  node  )  [private]
std::string AcsBulkdata::BulkDataConfigurationParser::getQosProfile ( const char *  profileName,
const char *  baseProfile,
xercesc::DOMNode *  node 
) [private]
ReceiverFlowConfiguration* AcsBulkdata::BulkDataConfigurationParser::getReceiverFlowConfiguration ( char const *  streamName,
char const *  flowName 
)

Returns, if found during parsing, the configuration object for the given Receiver flow.

Parameters:
streamName The name of the Receiver stream where the given flow resides
flowName The name of the Receiver flow
Returns:
The configuration for the given Receiver flow, NULL if it doesn't exist
ReceiverStreamConfiguration* AcsBulkdata::BulkDataConfigurationParser::getReceiverStreamConfiguration ( char const *  streamName  ) 

Returns, if found during parsing, the configuration object for the given Receiver stream.

Parameters:
streamName The name of the Receiver stream
Returns:
The configuration for the given Receiver stream, NULL if it doesn't exist
SenderFlowConfiguration* AcsBulkdata::BulkDataConfigurationParser::getSenderFlowConfiguration ( char const *  streamName,
char const *  flowName 
)

Returns, if found during parsing, the configuration object for the given Sender flow.

Parameters:
streamName The name of the Sender stream where the given flow resides
flowName The name of the Sender flow
Returns:
The configuration for the given Sender flow, NULL if it doesn't exist
SenderStreamConfiguration* AcsBulkdata::BulkDataConfigurationParser::getSenderStreamConfiguration ( char const *  streamName  ) 

Returns, if found during parsing, the configuration object for the given Sender stream.

Parameters:
streamName The name of the Sender stream
Returns:
The configuration for the given Sender stream, NULL if it doesn't exist
std::string AcsBulkdata::BulkDataConfigurationParser::getStringFromAttribute ( xercesc::DOMNode *  node,
const char *  attribute,
std::string  defaultVal 
) [private]
std::string AcsBulkdata::BulkDataConfigurationParser::getStrURIforStream ( std::list< std::string >  profiles  )  [private]
unsigned short AcsBulkdata::BulkDataConfigurationParser::getUnsignedShortFromAttribute ( xercesc::DOMNode *  node,
const char *  attribute,
unsigned short  defaultVal 
) [private]
void AcsBulkdata::BulkDataConfigurationParser::parseConfig ( const char *  config,
const struct ParsingInfo parsingInfo 
) [private]
void AcsBulkdata::BulkDataConfigurationParser::parseReceiverConfig ( char const *  configXML  ) 

Given an XML document, parses it an retrieves the list of receiver streams that can be found. Each stream, and its corresponding flows, are properly configured depending on the QoS settings coming from the XML document

void AcsBulkdata::BulkDataConfigurationParser::parseSenderConfig ( char const *  configXML  ) 

Given an XML document, parses it an retrieves the list of sender streams that can be found. Each stream, and its corresponding flows, are properly configured depending on the QoS settings coming from the XML document


Member Data Documentation

xercesc::AbstractDOMParser* AcsBulkdata::BulkDataConfigurationParser::m_parser [private]

used for the Qos library name of generated XML


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