FragmentSelector.hpp

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 } // namespace Fiber
00056 
00057 #endif // __FIBEROP_FRAGMENTSELECTOR_HPP
00058