16 #if !defined(XPATHFUNCTIONTABLE_HEADER_GUARD_1357924680)
17 #define XPATHFUNCTIONTABLE_HEADER_GUARD_1357924680
43 XALAN_CPP_NAMESPACE_BEGIN
92 enum { InvalidFunctionNumberID = -1, TableSize = 36 };
110 m_memoryManager = &theManager;
133 const int theFunctionID =
134 getFunctionIndex(theFunctionName);
136 if (theFunctionID != InvalidFunctionNumberID)
138 return *m_functionTable[theFunctionID];
157 operator[](
int theFunctionID)
const
159 assert(theFunctionID >= 0 && theFunctionID < TableSize);
160 assert(m_functionTable[theFunctionID] != 0);
162 return *m_functionTable[theFunctionID];
172 idToName(
int theFunctionID,
176 if (theFunctionID >= 0 && theFunctionID < TableSize)
179 s_functionNames[theFunctionID].m_name,
180 s_functionNames[theFunctionID].m_size);
195 return getFunctionIndex(theName);
209 InstallFunction(theFunctionName.
c_str(), theFunction);
221 return UninstallFunction(theFunctionName.
c_str());
232 const XalanDOMChar* theFunctionName,
242 UninstallFunction(
const XalanDOMChar* theFunctionName);
253 return getFunctionIndex(theFunctionName) != InvalidFunctionNumberID ?
true :
false;
256 #if defined(XALAN_NO_MEMBER_TEMPLATES)
266 getInstalledFunctionNames(InstalledFunctionNameVectorType& theVector)
const
270 for (
int i = 0; i < TableSize; ++i)
272 if (m_functionTable[i] != 0)
275 s_functionNames[i].m_name,
276 s_functionNames[i].m_size);
289 template<
class OutputIteratorType>
291 getInstalledFunctionNames(OutputIteratorType theIterator)
const
295 for (
int i = 0; i < TableSize; ++i)
297 if (m_functionTable[i] != 0)
300 s_functionNames[i].m_name,
301 s_functionNames[i].m_size);
303 *theIterator = theString;
323 static const XalanDOMChar s_id[];
326 static const XalanDOMChar s_key[];
329 static const XalanDOMChar s_not[];
332 static const XalanDOMChar s_sum[];
335 static const XalanDOMChar s_lang[];
338 static const XalanDOMChar s_last[];
341 static const XalanDOMChar s_name[];
344 static const XalanDOMChar s_true[];
347 static const XalanDOMChar s_count[];
350 static const XalanDOMChar s_false[];
353 static const XalanDOMChar s_floor[];
356 static const XalanDOMChar s_round[];
359 static const XalanDOMChar s_concat[];
362 static const XalanDOMChar s_number[];
365 static const XalanDOMChar s_string[];
368 static const XalanDOMChar s_boolean[];
371 static const XalanDOMChar s_ceiling[];
374 static const XalanDOMChar s_current[];
377 static const XalanDOMChar s_contains[];
380 static const XalanDOMChar s_document[];
383 static const XalanDOMChar s_position[];
386 static const XalanDOMChar s_substring[];
389 static const XalanDOMChar s_translate[];
392 static const XalanDOMChar s_localName[];
395 static const XalanDOMChar s_generateId[];
398 static const XalanDOMChar s_startsWith[];
401 static const XalanDOMChar s_formatNumber[];
404 static const XalanDOMChar s_namespaceUri[];
407 static const XalanDOMChar s_stringLength[];
410 static const XalanDOMChar s_normalizeSpace[];
413 static const XalanDOMChar s_substringAfter[];
416 static const XalanDOMChar s_systemProperty[];
419 static const XalanDOMChar s_substringBefore[];
422 static const XalanDOMChar s_elementAvailable[];
425 static const XalanDOMChar s_functionAvailable[];
428 static const XalanDOMChar s_unparsedEntityUri[];
441 return getFunctionIndex(
447 getFunctionIndex(
const XalanDOMChar* theName)
449 return getFunctionIndex(
456 const XalanDOMChar* theName,
457 StringSizeType theNameLength);
461 const Function* m_functionTable[TableSize];
463 const Function**
const m_functionTableEnd;
466 static const FunctionNameTableEntry*
const s_lastFunctionName;
471 XALAN_CPP_NAMESPACE_END
475 #endif // XPATHFUNCTIONTABLE_HEADER_GUARD_1357924680