00001 #ifndef __FIELD_FRAGMENTSELECTOR_HPP
00002 #define __FIELD_FRAGMENTSELECTOR_HPP
00003
00004 #include "CreativeArray.hpp"
00005 #include <memcore/Ageable.hpp>
00006
00007 namespace Fiber
00008 {
00009
00014 class FIELD_API FragmentSelector : public ReferenceBase<FragmentSelector>
00015 , public MemCore::Ageable
00016 {
00017 public:
00019 FragmentSelector()
00020 : ReferenceBase<FragmentSelector>(this)
00021 {}
00022
00024 ~FragmentSelector();
00025
00033 virtual bool contains(CreativeArrayBase&CAB) = 0;
00034
00041 virtual void createIndices(std::vector<unsigned int>&Indices, const MemCore::RefPtr<MemBase>&Data) = 0;
00042
00047 virtual string getExpression(const string&funcname) const = 0;
00048
00049 bool needIndexCreation(const Ageable&A) const
00050 {
00051 return isNewerThan(A);
00052 }
00053 };
00054
00055 }
00056
00057 #endif // __FIBEROP_FRAGMENTSELECTOR_HPP
00058