Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

DataTranslator Class Reference

An unidirectional data translator (codec). More...

#include <yatephone.h>

Inheritance diagram for DataTranslator:

DataConsumer DataNode RefObject GenObject List of all members.

Public Member Functions

 DataTranslator (const char *sFormat, const char *dFormat)
 DataTranslator (const char *sFormat, DataSource *source=0)
 ~DataTranslator ()
virtual void * getObject (const String &name) const
virtual DataSourcegetTransSource () const
DataTranslatorgetFirstTranslator ()
const DataTranslatorgetFirstTranslator () const

Static Public Member Functions

static ObjListsrcFormats (const DataFormat &dFormat="slin", int maxCost=-1, unsigned int maxLen=0, ObjList *lst=0)
static ObjListdestFormats (const DataFormat &sFormat="slin", int maxCost=-1, unsigned int maxLen=0, ObjList *lst=0)
static bool canConvert (const DataFormat &fmt1, const DataFormat &fmt2="slin")
static int cost (const DataFormat &sFormat, const DataFormat &dFormat)
static DataTranslatorcreate (const DataFormat &sFormat, const DataFormat &dFormat)
static bool attachChain (DataSource *source, DataConsumer *consumer, bool override=false)
static bool detachChain (DataSource *source, DataConsumer *consumer)
static void setMaxChain (unsigned int maxChain)

Protected Member Functions

virtual bool synchronize (DataSource *source)

Static Protected Member Functions

static void install (TranslatorFactory *factory)
static void uninstall (TranslatorFactory *factory)

Friends

class TranslatorFactory

Detailed Description

An unidirectional data translator (codec).

The DataTranslator holds a translator (codec) capable of unidirectional conversion of data from one type to another.


Constructor & Destructor Documentation

DataTranslator const char *  sFormat,
const char *  dFormat
 

Construct a data translator.

Parameters:
sFormat Name of the source format (data received from the consumer)
dFormat Name of the destination format (data supplied to the source)

DataTranslator const char *  sFormat,
DataSource source = 0
 

Creates a data translator from an existing source, does not increment the source's reference counter.

Parameters:
sFormat Name of the source format (data received from the consumer)
source Optional pointer to a DataSource object

~DataTranslator  ) 
 

Destroys the translator and its source


Member Function Documentation

static bool attachChain DataSource source,
DataConsumer consumer,
bool  override = false
[static]
 

Attach a consumer to a source, possibly trough a chain of translators

Parameters:
source Source to attach the chain to
consumer Consumer where the chain ends
override Attach chain for temporary source override
Returns:
True if successfull, false if no translator chain could be built

static bool canConvert const DataFormat fmt1,
const DataFormat fmt2 = "slin"
[static]
 

Check if bidirectional conversion can be performed by installed translators

Parameters:
fmt1 Name of the first data format
fmt2 Name of the second data format
Returns:
True if translators can be created for both directions

static int cost const DataFormat sFormat,
const DataFormat dFormat
[static]
 

Finds the cost of a translator given the source and destination format names

Parameters:
sFormat Name of the source format (data received from the consumer)
dFormat Name of the destination format (data supplied to the source)
Returns:
Cost of best (cheapest) codec or -1 if no known codec exists

static DataTranslator* create const DataFormat sFormat,
const DataFormat dFormat
[static]
 

Creates a translator given the source and destination format names

Parameters:
sFormat Name of the source format (data received from the consumer)
dFormat Name of the destination format (data supplied to the source)
Returns:
A pointer to a DataTranslator object or NULL if no known codec exists

static ObjList* destFormats const DataFormat sFormat = "slin",
int  maxCost = -1,
unsigned int  maxLen = 0,
ObjList lst = 0
[static]
 

Get a list of formats supported for a given input format

Parameters:
sFormat Name of source format
maxCost Maximum cost of candidates to consider, -1 to accept all
maxLen Maximum length of codec chains to consider, 0 to accept all
lst Initial list, will append to it if not empty
Returns:
List of destination format names, must be freed by the caller

static bool detachChain DataSource source,
DataConsumer consumer
[static]
 

Detach a consumer from a source, possibly trough a chain of translators

Parameters:
source Source to dettach the chain from
consumer Consumer where the chain ends
Returns:
True if successfull, false if source and consumers were not attached

const DataTranslator* getFirstTranslator  )  const
 

Constant version to get the first translator from a chain

Returns:
Pointer to the first translator in a chain

DataTranslator* getFirstTranslator  ) 
 

Get the first translator from a chain

Returns:
Pointer to the first translator in a chain

virtual void* getObject const String name  )  const [virtual]
 

Get a pointer to a derived class given that class name

Parameters:
name Name of the class we are asking for
Returns:
Pointer to the requested class or NULL if this object doesn't implement it

Reimplemented from DataConsumer.

virtual DataSource* getTransSource  )  const [inline, virtual]
 

Get the data source of a translator object

Returns:
A pointer to the DataSource object or NULL

Reimplemented from DataConsumer.

static void install TranslatorFactory factory  )  [static, protected]
 

Install a Translator Factory in the list of known codecs

Parameters:
factory A pointer to a TranslatorFactory instance

static void setMaxChain unsigned int  maxChain  )  [static]
 

Set the length of the longest translator chain we are allowed to create

Parameters:
maxChain Desired longest chain length

static ObjList* srcFormats const DataFormat dFormat = "slin",
int  maxCost = -1,
unsigned int  maxLen = 0,
ObjList lst = 0
[static]
 

Get a list of formats supported for a given output format.

Parameters:
dFormat Name of destination format
maxCost Maximum cost of candidates to consider, -1 to accept all
maxLen Maximum length of codec chains to consider, 0 to accept all
lst Initial list, will append to it if not empty
Returns:
List of source format names, must be freed by the caller

virtual bool synchronize DataSource source  )  [protected, virtual]
 

Synchronize the consumer with a source

Parameters:
source Data source to copy the timestamp from
Returns:
True if we could synchronize with the source

Reimplemented from DataConsumer.

static void uninstall TranslatorFactory factory  )  [static, protected]
 

Remove a Translator Factory from the list of known codecs

Parameters:
factory A pointer to a TranslatorFactory instance


The documentation for this class was generated from the following file:
Generated on Fri Jul 7 03:11:38 2006 for Yate by  doxygen 1.4.4