📄 query_8h-source.html
字号:
00580 <span class="preprocessor"></span>00581 <span class="preprocessor">#define USER_FUNC(f) static dbUserFunction f##_descriptor(&f, #f)</span>00582 <span class="preprocessor"></span>00583 <span class="keyword">struct </span>dbInheritedAttribute;00584 <span class="keyword">union </span>dbSynthesizedAttribute;00585 <a name="l00590"></a><a class="code" href="classdbUserFunctionArgument.html">00590</a> <span class="keyword">class </span>FASTDB_DLL_ENTRY dbUserFunctionArgument { 00591 <span class="keyword">public</span>:00592 <span class="keyword">enum</span> dbArgumentType { 00593 atInteger, 00594 atBoolean, 00595 atString, 00596 atReal, 00597 atReference, 00598 atRawBinary00599 }; 00600 dbArgumentType type; 00601 <span class="keyword">union </span>{00602 real8 realValue;00603 db_int8 intValue;00604 <span class="keywordtype">bool</span> boolValue;00605 <span class="keywordtype">char</span> <span class="keyword">const</span>* strValue;00606 oid_t oidValue;00607 <span class="keywordtype">void</span>* rawValue;00608 } u;00609 00610 <span class="keyword">private</span>:00611 <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classdbDatabase.html">dbDatabase</a>;00612 dbUserFunctionArgument(dbExprNode* expr, 00613 dbInheritedAttribute& iattr, 00614 dbSynthesizedAttribute& sattr, 00615 <span class="keywordtype">int</span> i);00616 };00617 <a name="l00626"></a><a class="code" href="classdbUserFunction.html">00626</a> <span class="keyword">class </span>FASTDB_DLL_ENTRY dbUserFunction { 00627 <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classdbDatabase.html">dbDatabase</a>;00628 <span class="keyword">friend</span> <span class="keyword">class </span>dbCompiler;00629 00630 <span class="keywordtype">void</span>* fptr;00631 <span class="keywordtype">char</span>* name;00632 00633 dbUserFunction* next;00634 <span class="keyword">static</span> dbUserFunction* list;00635 00636 <span class="keyword">enum</span> funcType {00637 fInt2Bool,00638 fReal2Bool,00639 fStr2Bool,00640 fInt2Int,00641 fReal2Int,00642 fStr2Int,00643 fInt2Real,00644 fReal2Real,00645 fStr2Real,00646 fInt2Str,00647 fReal2Str,00648 fStr2Str, 00649 fArg2Bool, 00650 fArg2Int, 00651 fArg2Real, 00652 fArg2Str, 00653 fArgArg2Bool, 00654 fArgArg2Int, 00655 fArgArg2Real, 00656 fArgArg2Str, 00657 fArgArgArg2Bool, 00658 fArgArgArg2Int, 00659 fArgArgArg2Real, 00660 fArgArgArg2Str00661 };00662 <span class="keywordtype">int</span> type;00663 00664 <span class="keywordtype">void</span> bind(<span class="keywordtype">char</span>* name, <span class="keywordtype">void</span>* f, funcType ftype);00665 00666 <span class="keyword">public</span>:00667 00668 <span class="keyword">static</span> dbUserFunction* find(<span class="keywordtype">char</span> <span class="keyword">const</span>* name) { 00669 <span class="keywordflow">for</span> (dbUserFunction* func = list; func != NULL; func = func-><a class="code" href="classdbUserFunction.html#dbUserFunctionr2">next</a>) { 00670 <span class="keywordflow">if</span> (name == func-><a class="code" href="classdbUserFunction.html#dbUserFunctionr1">name</a>) { 00671 <span class="keywordflow">return</span> func;00672 }00673 }00674 <span class="keywordflow">return</span> NULL;00675 }00676 00677 <span class="keywordtype">int</span> getParameterType();00678 00679 <span class="keywordtype">int</span> getNumberOfParameters();00680 00681 dbUserFunction(<span class="keywordtype">bool</span> (*f)(db_int8), <span class="keywordtype">char</span>* name) { 00682 bind(name, (<span class="keywordtype">void</span>*)f, fInt2Bool); 00683 }00684 dbUserFunction(<span class="keywordtype">bool</span> (*f)(real8), <span class="keywordtype">char</span>* name) { 00685 bind(name, (<span class="keywordtype">void</span>*)f, fReal2Bool); 00686 }00687 dbUserFunction(<span class="keywordtype">bool</span> (*f)(<span class="keywordtype">char</span> <span class="keyword">const</span>*), <span class="keywordtype">char</span>* name) { 00688 bind(name, (<span class="keywordtype">void</span>*)f, fStr2Bool); 00689 }00690 dbUserFunction(db_int8 (*f)(db_int8), <span class="keywordtype">char</span>* name) { 00691 bind(name, (<span class="keywordtype">void</span>*)f, fInt2Int); 00692 }00693 dbUserFunction(db_int8 (*f)(real8), <span class="keywordtype">char</span>* name) { 00694 bind(name, (<span class="keywordtype">void</span>*)f, fReal2Int); 00695 }00696 dbUserFunction(db_int8 (*f)(<span class="keywordtype">char</span> <span class="keyword">const</span>*), <span class="keywordtype">char</span>* name) { 00697 bind(name, (<span class="keywordtype">void</span>*)f, fStr2Int); 00698 }00699 dbUserFunction(real8 (*f)(db_int8), <span class="keywordtype">char</span>* name) { 00700 bind(name, (<span class="keywordtype">void</span>*)f, fInt2Real); 00701 }00702 dbUserFunction(real8 (*f)(real8), <span class="keywordtype">char</span>* name) { 00703 bind(name, (<span class="keywordtype">void</span>*)f, fReal2Real); 00704 }00705 dbUserFunction(real8 (*f)(<span class="keywordtype">char</span> <span class="keyword">const</span>*), <span class="keywordtype">char</span>* name) { 00706 bind(name, (<span class="keywordtype">void</span>*)f, fStr2Real); 00707 }00708 dbUserFunction(<span class="keywordtype">char</span>* (*f)(db_int8), <span class="keywordtype">char</span>* name) { 00709 bind(name, (<span class="keywordtype">void</span>*)f, fInt2Str); 00710 }00711 dbUserFunction(<span class="keywordtype">char</span>* (*f)(real8), <span class="keywordtype">char</span>* name) { 00712 bind(name, (<span class="keywordtype">void</span>*)f, fReal2Str); 00713 }00714 dbUserFunction(<span class="keywordtype">char</span>* (*f)(<span class="keywordtype">char</span> <span class="keyword">const</span>*), <span class="keywordtype">char</span>* name) { 00715 bind(name, (<span class="keywordtype">void</span>*)f, fStr2Str); 00716 }00717 00718 00719 dbUserFunction(<span class="keywordtype">bool</span> (*f)(dbUserFunctionArgument&), <span class="keywordtype">char</span>* name) { 00720 bind(name, (<span class="keywordtype">void</span>*)f, fArg2Bool); 00721 }00722 dbUserFunction(<span class="keywordtype">char</span>* (*f)(dbUserFunctionArgument&), <span class="keywordtype">char</span>* name) { 00723 bind(name, (<span class="keywordtype">void</span>*)f, fArg2Str); 00724 }00725 dbUserFunction(db_int8 (*f)(dbUserFunctionArgument&), <span class="keywordtype">char</span>* name) { 00726 bind(name, (<span class="keywordtype">void</span>*)f, fArg2Int); 00727 }00728 dbUserFunction(real8 (*f)(dbUserFunctionArgument&), <span class="keywordtype">char</span>* name) { 00729 bind(name, (<span class="keywordtype">void</span>*)f, fArg2Real); 00730 }00731 00732 dbUserFunction(<span class="keywordtype">bool</span> (*f)(dbUserFunctionArgument&, dbUserFunctionArgument&), <span class="keywordtype">char</span>* name) { 00733 bind(name, (<span class="keywordtype">void</span>*)f, fArgArg2Bool); 00734 }00735 dbUserFunction(<span class="keywordtype">char</span>* (*f)(dbUserFunctionArgument&, dbUserFunctionArgument&), <span class="keywordtype">char</span>* name) { 00736 bind(name, (<span class="keywordtype">void</span>*)f, fArgArg2Str); 00737 }00738 dbUserFunction(db_int8 (*f)(dbUserFunctionArgument&, dbUserFunctionArgument&), <span class="keywordtype">char</span>* name) { 00739 bind(name, (<span class="keywordtype">void</span>*)f, fArgArg2Int); 00740 }00741 dbUserFunction(real8 (*f)(dbUserFunctionArgument&, dbUserFunctionArgument&), <span class="keywordtype">char</span>* name) { 00742 bind(name, (<span class="keywordtype">void</span>*)f, fArgArg2Real); 00743 }00744 00745 00746 dbUserFunction(<span class="keywordtype">bool</span> (*f)(dbUserFunctionArgument&, dbUserFunctionArgument&, dbUserFunctionArgument&), <span class="keywordtype">char</span>* name) { 00747 bind(name, (<span class="keywordtype">void</span>*)f, fArgArgArg2Bool); 00748 }00749 dbUserFunction(<span class="keywordtype">char</span>* (*f)(dbUserFunctionArgument&, dbUserFunctionArgument&, dbUserFunctionArgument&), <span class="keywordtype">char</span>* name) { 00750 bind(name, (<span class="keywordtype">void</span>*)f, fArgArgArg2Str); 00751 }00752 dbUserFunction(db_int8 (*f)(dbUserFunctionArgument&, dbUserFunctionArgument&, dbUserFunctionArgument&), <span class="keywordtype">char</span>* name) { 00753 bind(name, (<span class="keywordtype">void</span>*)f, fArgArgArg2Int); 00754 }00755 dbUserFunction(real8 (*f)(dbUserFunctionArgument&, dbUserFunctionArgument&, dbUserFunctionArgument&), <span class="keywordtype">char</span>* name) { 00756 bind(name, (<span class="keywordtype">void</span>*)f, fArgArgArg2Real); 00757 }00758 };00759 00760 <span class="preprocessor">#endif</span>00761 <span class="preprocessor"></span>00762 00763 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Feb 12 13:04:48 2004 for FastDB by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.5 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -