From 3fd65f43fae08511928729aec8f5c1fbe33b6e00 Mon Sep 17 00:00:00 2001 From: Oliver Bolte Date: Thu, 4 Sep 2003 07:29:01 +0000 Subject: 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 --- connectivity/source/inc/file/fcomp.hxx | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) (limited to 'connectivity') 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 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 m_rCompiler; public: - OPredicateInterpreter(OPredicateCompiler& rComp) : m_rCompiler(rComp){} + OPredicateInterpreter(const ::vos::ORef& 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); + + }; } } -- cgit