25{
   28 
   29  string  file_name = "test_file.txt";
   31 
   32  try {
   33 
   34    JParser<> zap(
"Example program to test file streaming.");
 
   35 
   36    zap[
'f'] = 
make_field(file_name)   = 
"test_file.txt";
 
   38 
   39    zap(argc, argv);
   40  }
   41  catch(const exception &error) {
   42    FATAL(error.what() << endl);
 
   43  }
   44 
   45 
   47 
   48  data_in.push_back("hello");
   49  data_in.push_back("world");
   50 
   51  {
   52    int fd = 
open(file_name.c_str(), O_RDWR | O_CREAT | O_TRUNC, 0666);
 
   53 
   55 
   57 
   58    for (vector<string>::const_iterator i = data_in.begin(); i != data_in.end(); ++i) {
   59      os << *i << endl;
   60    }
   61 
   63  }
   64 
   66 
   67  {
   68    int fd = 
open(file_name.c_str(), O_RDWR);
 
   69 
   71 
   73 
   74    for (
string buffer; 
getline(is,buffer); ) {
 
   75      data_out.push_back(buffer);
   76    }
   77 
   79  }
   80 
   81  if (
debug >= debug_t) {
 
   82    cout << 
"data_in  "; 
copy(data_in .begin(), data_in .end(), ostream_iterator<string>(cout, 
" ")); cout << endl;
 
   83    cout << 
"data_out "; 
copy(data_out.begin(), data_out.end(), ostream_iterator<string>(cout, 
" ")); cout << endl;
 
   84  }
   85 
   86  ASSERT(data_in == data_out);
 
   87 
   88  return 0;
   89}
#define ASSERT(A,...)
Assert macro.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
Utility class to parse command line options.
 
void copy(const Head &from, JHead &to)
Copy header from from to to.
 
void close(std::istream *pf)
Close file.
 
T * open(const std::string &file_name)
Open file.
 
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).