24 #ifndef _TABREADER_HPP_ 
   25 #define _TABREADER_HPP_ 
   29 #include "boost/shared_ptr.hpp" 
   42     virtual bool getHeaders() = 0;
 
   44     virtual char useComment() 
const = 0;
 
   46     virtual bool open() = 0;
 
   48     virtual bool updateLine(
const std::string& line) = 0;
 
   50     virtual bool updateRecord(
const std::vector<std::string>& fields) = 0;
 
   52     virtual bool close() = 0;
 
   60                       char comment_char=
'#');
 
   66     virtual bool getHeaders();
 
   68     virtual char useComment() 
const;
 
   72     virtual bool updateLine(
const std::string& line);
 
   74     virtual bool updateRecord(
const std::vector<std::string>& fields);
 
   76     virtual size_t columns() 
const;
 
   78     virtual size_t getHeader(
const std::string& name) 
const;
 
   80     virtual std::string getHeader(
size_t index) 
const;
 
   87     boost::shared_ptr<Impl> 
pimpl;
 
  102     virtual const_iterator begin() 
const;
 
  103     virtual const_iterator end() 
const;
 
  115     virtual bool process(
const char* filename);
 
  122     boost::shared_ptr<Impl> 
pimpl;
 
  128 #endif // _TABREADER_HPP_