Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
SpafDB.hpp
00001 /* $Id$ */
00002 
00003 #ifndef _SPAFDB_SPAFDB_HPP_
00004 #define _SPAFDB_SPAFDB_HPP_
00005 
00006 #include <spafdb/Parameter.hpp>
00007 
00008 #include <list>
00009 
00010 namespace jafar {
00011   namespace geom {
00012     template<int dimension>
00013     class Atom;
00014     typedef Atom<3> Atom3D;
00015   }
00016   namespace spaf {
00017     class Feature;
00018     class FeaturesBag;
00019     class MatchResult;
00020   }
00021   namespace spafgraph {
00022     class Node;
00023   }
00024   namespace spafdb {
00025     class ProximityStrategy;
00026     class SelectQuery;
00027     class MatchQuery;
00032     class SpafDB {
00033       public:
00034         SpafDB(ProximityStrategy* proximityStrategy);
00035         SpafDB(ProximityStrategy* proximityStrategy, const Parameter* param);
00036         ~SpafDB();
00037       private:
00038         void init(ProximityStrategy* proximityStrategy, const Parameter* param);
00039       public:
00044         spaf::FeaturesBag executeFeaturesSelectQuery(const SelectQuery*) const;
00049         std::list<spafgraph::Node*> executeNodesSelectQuery(const SelectQuery*) const;
00053         std::list<spaf::MatchResult> executeMatchQuery( const MatchQuery*, const spaf::FeaturesBag&  ) const;
00058         void insertFeature(spaf::Feature* f);
00062         void removeFeature(spaf::Feature* f);
00066         void removeFeature( unsigned int _id );
00070         int countFeatures() const;
00075         void updateFeatures( std::list< spaf::Feature*> );
00076       private:
00077         struct Private;
00078         Private* const d;
00079     };
00080   }
00081 }
00082 
00083 #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