Row.h

00001 #ifndef Row_H
00002 #define Row_H
00003 
00004 /* --8<--8<--8<--8<--
00005  *
00006  * Copyright (C) 2006 Smithsonian Astrophysical Observatory
00007  *
00008  * This file is part of rdbstats
00009  *
00010  * rdbstats is free software; you can redistribute it and/or
00011  * modify it under the terms of the GNU General Public License
00012  * as published by the Free Software Foundation; either version 2
00013  * of the License, or (at your option) any later version.
00014  *
00015  * rdbstats is distributed in the hope that it will be useful,
00016  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018  * GNU General Public License for more details.
00019  *
00020  * You should have received a copy of the GNU General Public License
00021  * along with this program; if not, write to the 
00022  *       Free Software Foundation, Inc. 
00023  *       51 Franklin Street, Fifth Floor
00024  *       Boston, MA  02110-1301, USA
00025  *
00026  * -->8-->8-->8-->8-- */
00027 
00028 #include <vector>
00029 
00030 class Exception;
00031 
00032 using namespace std;
00033 
00034 class Row {
00035 
00036   friend ostream& operator << ( ostream& os, Row& a ) {
00037     a.print( os );
00038     return os;
00039   }
00040 
00041   friend ostream& operator << ( ostream& os, Row* a ) {
00042     a->print( os );
00043     return os;
00044   }
00045 
00046 public:
00047 
00048   ~Row( ) { }
00049 
00050   Row( const vector< string >& row_options ) throw ( Exception );
00051 
00052   const vector< pair< long, long > >& get_range( ) { return start_end; }
00053 
00054 private:
00055 
00056   void print( ostream& os ) const;
00057 
00058   vector< pair< long, long > > start_end;
00059 
00060 };
00061 
00062 #endif