diff options
author | Oliver Bolte <obo@openoffice.org> | 2003-09-04 07:29:01 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2003-09-04 07:29:01 +0000 |
commit | 3fd65f43fae08511928729aec8f5c1fbe33b6e00 (patch) | |
tree | 4bfef8f15fff8393b1c673bf3419d0ee058b24d6 /connectivity | |
parent | 361de588e36a9f3c9ad0a944d2ded86faec70083 (diff) |
INTEGRATION: CWS oj4 (1.8.86); FILE MERGED
2003/06/27 13:39:34 oj 1.8.86.1: #i14648# implement string functions for file based drivers
Diffstat (limited to 'connectivity')
-rw-r--r-- | connectivity/source/inc/file/fcomp.hxx | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/connectivity/source/inc/file/fcomp.hxx b/connectivity/source/inc/file/fcomp.hxx index a8cef56293f1..3f30ff3f7bc7 100644 --- a/connectivity/source/inc/file/fcomp.hxx +++ b/connectivity/source/inc/file/fcomp.hxx @@ -2,9 +2,9 @@ * * $RCSfile: fcomp.hxx,v $ * - * $Revision: 1.8 $ + * $Revision: 1.9 $ * - * last change: $Author: oj $ $Date: 2002-07-05 08:07:52 $ + * last change: $Author: obo $ $Date: 2003-09-04 08:29:01 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -77,7 +77,7 @@ namespace connectivity class OOperand; typedef::std::vector<OCode*> OCodeList; - class OPredicateCompiler + class OPredicateCompiler : public ::vos::OReference { friend class OPredicateInterpreter; friend class OSQLAnalyzer; @@ -117,23 +117,34 @@ namespace connectivity OOperand* execute_LIKE(connectivity::OSQLParseNode* pPredicateNode) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); OOperand* execute_ISNULL(connectivity::OSQLParseNode* pPredicateNode) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); OOperand* execute_Operand(connectivity::OSQLParseNode* pPredicateNode) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + OOperand* execute_Fold(OSQLParseNode* pPredicateNode) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + OOperand* executeFunction(OSQLParseNode* pPredicateNode) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); }; - class OPredicateInterpreter + class OPredicateInterpreter : public ::vos::OReference { OCodeStack m_aStack; - OPredicateCompiler& m_rCompiler; + ::vos::ORef<OPredicateCompiler> m_rCompiler; public: - OPredicateInterpreter(OPredicateCompiler& rComp) : m_rCompiler(rComp){} + OPredicateInterpreter(const ::vos::ORef<OPredicateCompiler>& rComp) : m_rCompiler(rComp){} virtual ~OPredicateInterpreter(); - sal_Bool start() + sal_Bool evaluate(OCodeList& rCodeList); + void evaluateSelection(OCodeList& rCodeList,ORowSetValueDecoratorRef& _rVal); + + inline sal_Bool start() + { + return evaluate(m_rCompiler->m_aCodeList); + } + + inline void startSelection(ORowSetValueDecoratorRef& _rVal) { - return evaluate(m_rCompiler.m_aCodeList); + return evaluateSelection(m_rCompiler->m_aCodeList,_rVal); } - sal_Bool evaluate(OCodeList& rCodeList); + + }; } } |