Jafar
|
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
Generated on Wed Oct 15 2014 00:37:28 for Jafar by doxygen 1.7.6.1 |