#include <ExtendedInstructionTable.h>
Public Member Functions | |
template<typename T> | |
void | add (const string &name, const vector< StandardTypeDescriptorOrdinal > ¶meterTypes, T *dummy, typename T::Functor functor) |
Registers an extended instruction and the functor which implements it. | |
ExtendedInstructionDef * | operator[] (string const &signature) |
Looks up an extended instruction by signature (name + argument types). | |
string | signatures () |
Private Attributes | |
map< string, ExtendedInstructionDef * > | _defsByName |
Definition at line 35 of file ExtendedInstructionTable.h.
void ExtendedInstructionTable::add | ( | const string & | name, | |
const vector< StandardTypeDescriptorOrdinal > & | parameterTypes, | |||
T * | dummy, | |||
typename T::Functor | functor | |||
) | [inline] |
Registers an extended instruction and the functor which implements it.
Definition at line 40 of file ExtendedInstructionTable.h.
References ExtendedInstructionDef::getSignature().
Referenced by ExtCastRegister(), ExtDateTimeRegister(), ExtDynamicVariableRegister(), ExtMathRegister(), ExtRegExpRegister(), ExtStringRegister(), ExtWinAggFuncRegister(), CalcExtContextTest::setupExtendedTestInstructions(), testConvertDecimal(), testConvertDoubleToFloat(), testConvertExactNumberToString(), testConvertFloatToDouble(), testConvertFloatToIntTypes(), testConvertIntTypesToFloat(), testConvertStringToExactNumber(), and CalcAssemblerTest::testExtended().
00045 { 00046 FunctorExtendedInstructionDef<T> *pDef = 00047 new FunctorExtendedInstructionDef<T>( 00048 name, 00049 parameterTypes, 00050 functor); 00051 _defsByName[pDef->getSignature()] = pDef; 00052 }
ExtendedInstructionDef* ExtendedInstructionTable::operator[] | ( | string const & | signature | ) | [inline] |
Looks up an extended instruction by signature (name + argument types).
Returns null if instruction not found.
Definition at line 57 of file ExtendedInstructionTable.h.
00057 { 00058 return _defsByName[signature]; 00059 }
FENNEL_BEGIN_NAMESPACE string ExtendedInstructionTable::signatures | ( | ) |
Definition at line 29 of file ExtendedInstructionTable.cpp.
References _defsByName.
Referenced by InstructionFactory::extendedSignatures().
00030 { 00031 ostringstream s(""); 00032 00033 map<string, ExtendedInstructionDef *>::iterator i = _defsByName.begin(); 00034 map<string, ExtendedInstructionDef *>::iterator end = _defsByName.end(); 00035 00036 while (i != end) { 00037 s << (*i).first << endl; 00038 i++; 00039 } 00040 return s.str(); 00041 }
map<string, ExtendedInstructionDef *> ExtendedInstructionTable::_defsByName [private] |