From: <mk...@us...> - 2003-10-21 17:36:09
|
Update of /cvsroot/csp/APPLICATIONS/SimData/Include/SimData In directory sc8-pr-cvs1:/tmp/cvs-serv29162/Include/SimData Modified Files: Archive.h Date.i FileUtility.h Log Message: Index: Archive.h =================================================================== RCS file: /cvsroot/csp/APPLICATIONS/SimData/Include/SimData/Archive.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Archive.h 20 Oct 2003 00:38:47 -0000 1.3 --- Archive.h 21 Oct 2003 16:23:34 -0000 1.4 *************** *** 51,55 **** SIMDATA_EXCEPTION(ConstViolation); ! class Archive { bool __loading; public: --- 51,55 ---- SIMDATA_EXCEPTION(ConstViolation); ! class SIMDATA_EXPORT Archive { bool __loading; public: *************** *** 164,167 **** --- 164,190 ---- }; + + class SIMDATA_EXPORT PackFile { + FILE *_f; + bool _open; + public: + #ifndef SWIG + operator FILE*() { return _f; } + PackFile(FILE* f): _f(f), _open(false) {} + #endif + PackFile(const char *fn, const char *mode) { + _f = (FILE*) fopen(fn, mode); + assert(_f); // XXX add error handling + _open = (_f != 0); + } + void close() { + if (_open) { + fclose(_f); + _open = false; + } + } + }; + + /** Utility class for writing raw data to an object archive. * *************** *** 173,177 **** * @author Mark Rose <tm...@st...> */ ! class Packer: public Archive { FILE *_f; int _n; --- 196,200 ---- * @author Mark Rose <tm...@st...> */ ! class SIMDATA_EXPORT Packer: public Archive { FILE *_f; int _n; *************** *** 180,185 **** } public: ! Packer(FILE* f): Archive(false) { ! _f = f; resetCount(); } --- 203,209 ---- } public: ! Packer(PackFile f): Archive(false) { ! _f = static_cast<FILE*>(f); ! assert(_f != 0); resetCount(); } *************** *** 247,251 **** * @author Mark Rose <tm...@st...> */ ! class UnPacker: public Archive { const char* _d; int _n; --- 271,275 ---- * @author Mark Rose <tm...@st...> */ ! class SIMDATA_EXPORT UnPacker: public Archive { const char* _d; int _n; *************** *** 355,358 **** --- 379,383 ---- unpacker->operator()(x); } + NAMESPACE_SIMDATA_END Index: Date.i =================================================================== RCS file: /cvsroot/csp/APPLICATIONS/SimData/Include/SimData/Date.i,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Date.i 10 Aug 2003 17:52:08 -0000 1.6 --- Date.i 21 Oct 2003 16:23:34 -0000 1.7 *************** *** 35,38 **** --- 35,50 ---- NAMESPACE_SIMDATA_END + %include exception.i + %exception { + try { + $function + } catch (SIMDATA(InvalidDate) e) { + e.clear(); + SWIG_exception(SWIG_RuntimeError, e.getError().c_str()); + } + } + %include "SimData/Date.h" + + %exception; Index: FileUtility.h =================================================================== RCS file: /cvsroot/csp/APPLICATIONS/SimData/Include/SimData/FileUtility.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** FileUtility.h 19 Oct 2003 23:53:56 -0000 1.6 --- FileUtility.h 21 Oct 2003 16:23:34 -0000 1.7 *************** *** 143,146 **** --- 143,147 ---- //@} + NAMESPACE_SIMDATA_END |