00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _RESULTIMPL_HPP
00023 #define _RESULTIMPL_HPP
00024
00025 #include <xqilla/framework/XQillaExport.hpp>
00026 #include <xqilla/items/Item.hpp>
00027 #include <xqilla/ast/LocationInfo.hpp>
00028
00029 class DynamicContext;
00030 class Sequence;
00031 class Result;
00032 class ResultBufferImpl;
00033
00035 class XQILLA_API ResultImpl : public LocationInfo
00036 {
00037 public:
00038 virtual ~ResultImpl() {}
00039
00040 Result *getResultPointer() { return resultPointer_; }
00041 void setResultPointer(Result *p) { resultPointer_ = p; }
00042
00044 virtual Item::Ptr next(DynamicContext *context);
00045
00047 virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context);
00048
00050 virtual Sequence toSequence(DynamicContext *context);
00051
00053 virtual ResultBufferImpl *toResultBuffer(unsigned int readCount);
00054
00055 protected:
00056 ResultImpl(const LocationInfo *o);
00057
00058 Result *resultPointer_;
00059
00060 private:
00061 ResultImpl(const ResultImpl &) {};
00062 ResultImpl &operator=(const ResultImpl &) { return *this; };
00063 };
00064
00065 #endif