00001 // See the file LICENSE in the some directory as this file for legal 00002 // notices about this software. 00003 // $Id: FlatN3FilePool_8h-source.html,v 1.8 2001/10/10 20:40:58 sandro Exp $ 00004 #ifndef DEV_W3_ORG__2001_BLINDFOLD_SRC_FLATN3FILEPOOL_H 00005 #define DEV_W3_ORG__2001_BLINDFOLD_SRC_FLATN3FILEPOOL_H 00006 #include "config.h" 00007 00008 #include "Pool.h" 00009 #include "ReferenceCountedObject.h" 00010 // #include <cstdio> 00011 #include <string> 00012 #include <fstream> 00013 00019 class NTriplesFilePool : public Pool { 00020 00021 public: 00022 00023 // STANDARD MEMBER FUNCTIONS 00027 NTriplesFilePool(char *filename); 00028 NTriplesFilePool(const NTriplesFilePool& other); 00029 const NTriplesFilePool& operator=(const NTriplesFilePool& other); 00030 bool operator==(const NTriplesFilePool& other) const; 00031 bool operator<(const NTriplesFilePool& other) const; 00032 size_t hash() const; 00033 friend std::ostream& operator<<(std::ostream& s, const NTriplesFilePool& me); 00034 std::ostream& print_to(std::ostream& stream) const; 00035 ~NTriplesFilePool(); 00036 00037 // CLASS-SPECIFIC PUBLIC INTERFACE 00038 00039 void add(Symbol subject, Symbol predicate, Symbol object); 00040 00041 Triple fetch(Triple simplePattern, LoopState &loopState, unsigned long max_results=0) const; 00042 00043 void remove(Symbol, Symbol, Symbol); 00044 00045 void replace(Symbol old, Symbol replacement); 00046 00047 00048 private: 00049 00050 char *filename; 00051 fstream file; 00052 00053 }; 00054 00055 00056 STANDARD_EXTERNAL(FlatN3FilePool) 00057 00058 #endif /* FLATN3FILEPOOL */ // -*-C++-*-