00001 00004 00005 // 00006 // Copyright (c) 1999-2004 California Institute of Technology 00007 // Copyright (c) 2004-2007 University of Southern California 00008 // Rob Peters <rjpeters at usc dot edu> 00009 // 00010 // created: Fri Jun 11 21:43:43 1999 00011 // commit: $Id: ioutil.h 10065 2007-04-12 05:54:56Z rjpeters $ 00012 // $HeadURL: file:///lab/rjpeters/svnrepo/code/trunk/groovx/src/io/ioutil.h $ 00013 // 00014 // -------------------------------------------------------------------- 00015 // 00016 // This file is part of GroovX. 00017 // [http://ilab.usc.edu/rjpeters/groovx/] 00018 // 00019 // GroovX is free software; you can redistribute it and/or modify it 00020 // under the terms of the GNU General Public License as published by 00021 // the Free Software Foundation; either version 2 of the License, or 00022 // (at your option) any later version. 00023 // 00024 // GroovX is distributed in the hope that it will be useful, but 00025 // WITHOUT ANY WARRANTY; without even the implied warranty of 00026 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00027 // General Public License for more details. 00028 // 00029 // You should have received a copy of the GNU General Public License 00030 // along with GroovX; if not, write to the Free Software Foundation, 00031 // Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 00032 // 00034 00035 #ifndef GROOVX_IO_IOUTIL_H_UTC20050626084021_DEFINED 00036 #define GROOVX_IO_IOUTIL_H_UTC20050626084021_DEFINED 00037 00038 namespace rutz 00039 { 00040 class fstring; 00041 } 00042 00043 namespace nub 00044 { 00045 template <class T> class ref; 00046 } 00047 00048 namespace io 00049 { 00050 class serializable; 00051 00052 // LGX -- "legacy" compact format 00053 rutz::fstring write_lgx(nub::ref<io::serializable> obj); 00054 void read_lgx(nub::ref<io::serializable> obj, const char* buf); 00055 00056 // ASW -- "ascii stream writer" format 00057 rutz::fstring write_asw(nub::ref<io::serializable> obj); 00058 void read_asw(nub::ref<io::serializable> obj, const char* buf); 00059 00060 void save_asw(nub::ref<io::serializable> obj, rutz::fstring filename); 00061 void load_asw(nub::ref<io::serializable> obj, rutz::fstring filename); 00062 00063 nub::ref<io::serializable> retrieve_asw(rutz::fstring filename); 00064 00065 // GVX -- GroovX XML format 00066 rutz::fstring write_gvx(nub::ref<io::serializable> obj); 00067 00068 void save_gvx(nub::ref<io::serializable> obj, rutz::fstring filename); 00069 } 00070 00071 static const char __attribute__((used)) vcid_groovx_io_ioutil_h_utc20050626084021[] = "$Id: ioutil.h 10065 2007-04-12 05:54:56Z rjpeters $ $HeadURL: file: 00072 #endif // !GROOVX_IO_IOUTIL_H_UTC20050626084021_DEFINED