The MamaDictionary
class maps field identifiers (FIDs) to human readable strings.
More...
#include <MamaDictionary.h>
Public Member Functions | |
virtual | ~MamaDictionary () |
MamaDictionary (void) | |
virtual void | create (MamaQueue *queue, MamaDictionaryCallback *callback, MamaSource *source, int retries=MAMA_DEFAULT_RETRIES, double timeout=MAMA_DEFAULT_TIMEOUT, void *closure=NULL) |
Create a dictionary subscription. More... | |
virtual const char * | getFeedName () |
Return the dictionary source feed name. More... | |
virtual const char * | getFeedHost () |
Return the dictionary source feed host. More... | |
virtual MamaFieldDescriptor * | getFieldByFid (mama_fid_t fid) |
Return the field with the specified field FID. More... | |
virtual const MamaFieldDescriptor * | getFieldByFid (mama_fid_t fid) const |
Return the field with the specified field FID. More... | |
virtual MamaFieldDescriptor * | getFieldByIndex (size_t index) |
Return the field with the corresponding zero based index. More... | |
virtual const MamaFieldDescriptor * | getFieldByIndex (size_t index) const |
Return the field with the corresponding zero based index. More... | |
virtual MamaFieldDescriptor * | getFieldByName (const char *name) |
Return the field with the specified name. More... | |
virtual const MamaFieldDescriptor * | getFieldByName (const char *name) const |
Return the field with the specified name. More... | |
virtual mama_fid_t | getMaxFid (void) const |
Return the highest field identifier. More... | |
virtual size_t | getSize (void) const |
Return the number of fields in the dictionary. More... | |
virtual bool | hasDuplicates (void) const |
Return true if there are multiple fields with the same name. More... | |
virtual MamaDictionaryCallback * | getCallback (void) const |
Return the callback. More... | |
virtual void | setCallback (MamaDictionaryCallback *callback) |
Set the callback to receive notifications when creation is complete or an error occurs. More... | |
virtual mamaDictionary | getDictC () |
Return the underlying C mamaDictionary. More... | |
virtual const mamaDictionary | getDictC () const |
Return the underlying C mamaDictionary. More... | |
virtual void * | getClosure (void) const |
Return the closure for the dictionary. More... | |
virtual MamaMsg * | getDictionaryMessage () const |
Returns a MamaMsg representing the data dictionary. More... | |
virtual void | buildDictionaryFromMessage (MamaMsg &msg) |
Recreate a data dictionary from the MamaMsg supplied. More... | |
virtual MamaFieldDescriptor * | createFieldDescriptor (mama_fid_t fid, const char *name, mamaFieldType type) |
Add a new field descriptor to a dictionary. More... | |
virtual void | setMaxFid (mama_size_t maxFid) |
Tell the dictionary what the probable maximum fid in the data dictionary may be. More... | |
virtual void | writeToFile (const char *fileName) |
Write the data dictionary to a file. More... | |
virtual void | populateFromFile (const char *fileName) |
Populate a dictionary from the contents of a file. More... | |
Public Attributes | |
DictionaryImpl * | mPimpl |
The MamaDictionary
class maps field identifiers (FIDs) to human readable strings.
Incoming MamaMsg
s may contain FIDs but no field names. The dictionary allows applications to determine the name associated with a given FID. On some platforms, the inbound messages may have names, but not fids in which case the dictionary can map names to fids.
|
virtual |
Wombat::MamaDictionary::MamaDictionary | ( | void | ) |
|
virtual |
Create a dictionary subscription.
The caller supplied DictionaryCallback.onComplete
will be invoked after the dictionary is fully constructed.
If there is an error creating the dictionary Mama invokes the onError
callback, and the returned dictionary is not valid. In the event of a timeout, Mama invokes the onTimeout
callback. This method uses the default timeout and retry values (SubscriptionBridge.DEFAULT_TIMEOUT
and SubscriptionBridge.DEFAULT_RETRIES
.
queue | The mama queue. |
callback | The dictionary callback. |
source | The dictionary source. Depends upon feed handler configuration. See feed handler documentation for details |
timeout | The timeout in seconds. |
retries | The number of times to retry before failing. |
closure | The caller supplied closure. |
|
virtual |
Return the dictionary source feed name.
dictionary | The dictionary. |
|
virtual |
Return the dictionary source feed host.
dictionary | The dictionary. |
|
virtual |
Return the field with the specified field FID.
This method is very efficient.
fid | The field id. |
|
virtual |
Return the field with the specified field FID.
This method is very efficient.
fid | The field id. |
|
virtual |
Return the field with the corresponding zero based index.
This method is O (N) with respect to the size of the dictionary.
index | The index. |
|
virtual |
Return the field with the corresponding zero based index.
This method is O (N) with respect to the size of the dictionary.
index | The index. |
|
virtual |
Return the field with the specified name.
If there is more than one field with the same name, the one with the lowest field id is returned.
name | The name of the field. |
|
virtual |
Return the field with the specified name.
If there is more than one field with the same name, the one with the lowest field id is returned.
name | The name of the field. |
|
virtual |
Return the highest field identifier.
|
virtual |
Return the number of fields in the dictionary.
|
virtual |
Return true if there are multiple fields with the same name.
|
virtual |
|
virtual |
Set the callback to receive notifications when creation is complete or an error occurs.
callback | The callback. |
|
virtual |
Return the underlying C mamaDictionary.
|
virtual |
Return the underlying C mamaDictionary.
|
virtual |
Return the closure for the dictionary.
|
virtual |
Returns a MamaMsg representing the data dictionary.
This message can be published or used to create a new MamaDictionary object. A new MamaMsg is created for each invocation of the method. It is the responsibility of the caller to delete the message when no longer needed.
|
virtual |
|
virtual |
Add a new field descriptor to a dictionary.
New fields can be added to an existing dictionary obtained from the MAMA infrastructure. This function can also be used to manually build a data dictionary.
fid | The fid for the new field descriptor. |
name | The name for the new field descriptor. |
type | The type for the new field descriptor. |
|
virtual |
Tell the dictionary what the probable maximum fid in the data dictionary may be.
This is not necessary but will aid performance for manually creating a new dictionary or adding new fields to an existing dictionary.
Calling this function ensures that there is capacity in the dictionary for field descriptors with fids up to the maximum specified.
Fields with fids greater than specified can be added to the dictionary but this will incur the overhead of allocating more memory and copying dictionary elements.
maxFid | The probable maximum fid being added to the dictionary. |
|
virtual |
Write the data dictionary to a file.
The dictionary will be written in the form: fid|fieldName|fieldType
fileName | The name of the file to serialize the dictionary to. This can be a fully qualified name, relative or a file on the $WOMBAT_PATH |
|
virtual |
Populate a dictionary from the contents of a file.
Can be used to add additional fields to an existing dictionary or to populate a new dictionary.
fileName | The file from which to populate the dictionary. This can be a fully qualified name, relative or a file on the $WOMBAT_PATH |
DictionaryImpl* Wombat::MamaDictionary::mPimpl |