ddc
Public Types | Public Attributes | List of all members
TxDispatcher Class Reference

TxDispatcher: name-based expansion dispatcher. More...

#include <TermExpander.h>

Public Types

typedef map< string, CTermExpander * > TxMap
 typedef for label->expander map More...
 

Public Member Functions

 TxDispatcher (void)
 Default constructor. More...
 
TxDispatcherclone () const
 clone constructor copies sub-objects More...
 
 ~TxDispatcher (void)
 Default destructor: frees all expanders in m_tx. More...
 
void clear (bool doDelete=true)
 clear all named expanders; also deletes them if doDelete is true (default) More...
 
void ensureDefaultExpanders (MorphLanguageEnum mlang, MorphLanguageEnum clang, bool doInfl=true, bool doCase=true)
 
void ensureDefaultExpanders (MorphLanguageEnum lang=morphGeneric)
 wrapper for ensureDefaultExpanders(lang,lang) More...
 
CTermExpanderaddExpander (const string &spec)
 
void compile (void)
 compile all defined expanders More...
 
string configString (const string &prefix="") const
 
void insert (const string &label, CTermExpander *tx)
 insert or override a label->tx mapping (implicitly sets tx->m_Label=label) More...
 
void insert (CTermExpander *tx)
 insert or override a label->tx mapping; uses tx->m_Label as label More...
 
void remove (const string &label)
 delete and remove any expander or alias labelled by label More...
 
CTermExpanderget (const string &label) const
 lookup the expander for label; returns NULL if no such expander exists More...
 
TxChain getChain (const vector< string > &labels)
 extended lookup for an expansion chain; throws CExpc on unknown label More...
 
TxChain getChain (const string &spec)
 extended lookup for an expansion chain; splits spec on " \t\r\n|" More...
 

Public Attributes

TxMap m_tx
 maps expander labels to expanders (label keys are case-sensitive!) More...
 
list< string > m_txlist
 list of defined expander names in definition order (for config-string generation) More...
 

Detailed Description

TxDispatcher: name-based expansion dispatcher.

Member Typedef Documentation

◆ TxMap

typedef map<string,CTermExpander*> TxDispatcher::TxMap

typedef for label->expander map

Constructor & Destructor Documentation

◆ TxDispatcher()

TxDispatcher::TxDispatcher ( void  )
inline

Default constructor.

◆ ~TxDispatcher()

TxDispatcher::~TxDispatcher ( void  )

Default destructor: frees all expanders in m_tx.

Member Function Documentation

◆ clone()

TxDispatcher * TxDispatcher::clone ( ) const

clone constructor copies sub-objects

References m_tx, and m_txlist.

◆ clear()

void TxDispatcher::clear ( bool  doDelete = true)

clear all named expanders; also deletes them if doDelete is true (default)

Referenced by CConcordance::InitDefaultOptions().

Here is the caller graph for this function:

◆ ensureDefaultExpanders() [1/2]

void TxDispatcher::ensureDefaultExpanders ( MorphLanguageEnum  mlang,
MorphLanguageEnum  clang,
bool  doInfl = true,
bool  doCase = true 
)

add default expanders for morph language mlang and case language clang

  • adds expanders TxMorph "infl mlang", TxCase "case clang", TxId "id", TxChain "Token infl case" if not already defined
  • if caseSensitive is false, case-expander will NOT be included in default chain

References TxChain::append(), GetStringByLanguage(), morphGeneric, and morphUnknown.

Referenced by CConcordance::LoadOptionsFromString().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ensureDefaultExpanders() [2/2]

void TxDispatcher::ensureDefaultExpanders ( MorphLanguageEnum  lang = morphGeneric)
inline

wrapper for ensureDefaultExpanders(lang,lang)

References CTermExpander::compile(), CTermExpander::configString(), newTermExpander(), and parseTermExpanderSpec().

Here is the call graph for this function:

◆ addExpander()

CTermExpander * TxDispatcher::addExpander ( const string &  spec)

parse a term expander specification from a string spec

  • spsec is interpreted by parseExpanderSpec()
  • calls newTermExpander() to allocate the new expander
  • does NOT add expander to the map
    Returns
    newly created expander

References CTermExpander::m_Class, newTermExpander(), parseTermExpanderSpec(), and stringSplit().

Referenced by CConcordance::LoadOptionsFromString().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compile()

void TxDispatcher::compile ( void  )

compile all defined expanders

◆ configString()

string TxDispatcher::configString ( const string &  prefix = "") const

dump dispatcher specifications in a form parseable by parseExpanderSpec() to a string

Parameters
prefixif specified gives a string prefix for the dump

References CTermExpander::configString().

Referenced by CConcordance::SaveOptionsToString().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ insert() [1/2]

void TxDispatcher::insert ( const string &  label,
CTermExpander tx 
)

insert or override a label->tx mapping (implicitly sets tx->m_Label=label)

References CTermExpander::m_Label.

◆ insert() [2/2]

void TxDispatcher::insert ( CTermExpander tx)

insert or override a label->tx mapping; uses tx->m_Label as label

References CTermExpander::m_Label.

◆ remove()

void TxDispatcher::remove ( const string &  label)

delete and remove any expander or alias labelled by label

◆ get()

CTermExpander * TxDispatcher::get ( const string &  label) const

lookup the expander for label; returns NULL if no such expander exists

Referenced by CQTokInfl::GetChain().

Here is the caller graph for this function:

◆ getChain() [1/2]

TxChain TxDispatcher::getChain ( const vector< string > &  labels)

extended lookup for an expansion chain; throws CExpc on unknown label

References TxChain::append(), TxChain::chainString(), errRuntime, TxChain::m_Chain, and CTermExpander::m_Param.

Referenced by CDDCLeafServer::handle__expand_terms().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getChain() [2/2]

TxChain TxDispatcher::getChain ( const string &  spec)

extended lookup for an expansion chain; splits spec on " \t\r\n|"

References stringSplit().

Here is the call graph for this function:

Member Data Documentation

◆ m_tx

TxMap TxDispatcher::m_tx

maps expander labels to expanders (label keys are case-sensitive!)

Referenced by clone(), and CDDCLeafServer::handle__info().

◆ m_txlist

list<string> TxDispatcher::m_txlist

list of defined expander names in definition order (for config-string generation)

Referenced by clone().


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