00001 /* 00002 * Copyright (c) 2001, 2008, 00003 * DecisionSoft Limited. All rights reserved. 00004 * Copyright (c) 2004, 2015 Oracle and/or its affiliates. All rights reserved. 00005 * 00006 * 00007 * Licensed under the Apache License, Version 2.0 (the "License"); 00008 * you may not use this file except in compliance with the License. 00009 * You may obtain a copy of the License at 00010 * 00011 * http://www.apache.org/licenses/LICENSE-2.0 00012 * 00013 * Unless required by applicable law or agreed to in writing, software 00014 * distributed under the License is distributed on an "AS IS" BASIS, 00015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00016 * See the License for the specific language governing permissions and 00017 * limitations under the License. 00018 */ 00019 00020 #ifndef _RESULTIMPL_HPP 00021 #define _RESULTIMPL_HPP 00022 00023 #include <xqilla/framework/XQillaExport.hpp> 00024 #include <xqilla/items/Item.hpp> 00025 #include <xqilla/ast/LocationInfo.hpp> 00026 00027 class DynamicContext; 00028 class Sequence; 00029 class Result; 00030 class ResultBuffer; 00031 00033 class XQILLA_API ResultImpl : public LocationInfo 00034 { 00035 public: 00036 virtual ~ResultImpl() {} 00037 00038 Result *getResultPointer() { return resultPointer_; } 00039 void setResultPointer(Result *p) { resultPointer_ = p; } 00040 00042 virtual Item::Ptr next(DynamicContext *context); 00043 00045 virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context); 00046 00048 virtual Sequence toSequence(DynamicContext *context); 00049 00051 virtual void toResultBuffer(unsigned int readCount, ResultBuffer &buffer); 00052 00054 virtual void skip(unsigned count, DynamicContext *context); 00055 00056 protected: 00057 ResultImpl(const LocationInfo *o); 00058 00059 Result *resultPointer_; 00060 00061 private: 00062 ResultImpl(const ResultImpl &) {}; 00063 ResultImpl &operator=(const ResultImpl &) { return *this; }; 00064 }; 00065 00066 #endif