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 DataSource * getTransSource () const
DataTranslator * getFirstTranslator ()
const DataTranslator * getFirstTranslator () const

Static Public Member Functions

static ObjList * srcFormats (const DataFormat &dFormat="slin", int maxCost=-1, unsigned int maxLen=0, ObjList *lst=0)
static ObjList * destFormats (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 DataTranslator * create (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