Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
SelectQuery.hpp
00001 /* $Id$ */
00002 
00003 #ifndef _SPAFDB_QUERY_HPP_
00004 #define _SPAFDB_QUERY_HPP_
00005 
00006 #include <list>
00007 
00008 namespace jafar {
00009   namespace geom {
00010     template<int dimension>
00011     class Atom;
00012   }
00013   namespace spaf {
00014     class FeaturesBag;
00015   }
00016   namespace spafgraph {
00017     class Node;
00018   }
00019   namespace spafdb {
00020     class Storage;
00025     class SelectQuery {
00026       public:
00027         virtual ~SelectQuery();
00031         virtual spaf::FeaturesBag selectFeatures(const Storage*) const = 0;
00032         virtual std::list<spafgraph::Node*> selectNodes(const Storage*) const = 0;
00033     };
00038     class SelectAllQuery : public SelectQuery {
00039       public:
00040         virtual ~SelectAllQuery();
00041         virtual spaf::FeaturesBag selectFeatures(const Storage*) const;
00042         virtual std::list<spafgraph::Node*> selectNodes(const Storage*) const;
00043     };
00048     class SelectQueryProximity : public SelectQuery {
00049       public:
00050         SelectQueryProximity(const geom::Atom<3>* atom, double distance, int max);
00051         virtual ~SelectQueryProximity();
00052         virtual spaf::FeaturesBag selectFeatures(const Storage*) const;
00053         virtual std::list<spafgraph::Node*> selectNodes(const Storage*) const;
00054       public:
00055         void setAtom( const geom::Atom<3>* atom );
00056       private:
00057         template< typename _ResultFiller_, typename _ResultType_ >
00058         inline void execute( const Storage* _storage, _ResultType_ & _result) const;
00059       private:
00060         struct Private;
00061         Private* const d;
00062     };
00063   }
00064 }
00065 
00066 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:28 for Jafar by doxygen 1.7.6.1
LAAS-CNRS