Main Page | Class Hierarchy | Compound List | File List | Compound Members

BxBinxFileWriter.h

00001 // ##################################################################
00002 // Binx
00003 // $Id: BxBinxFileWriter_8h-source.html,v 1.1.1.1 2006/04/19 14:19:02 edikt2 Exp $
00004 //
00005 // BinX writer class
00006 // ##################################################################
00007 /*
00008 
00009 //  edikt::BinX
00010 //  www.edikt.org
00011 //  support@edikt.org
00012 
00013 // Copyright (c) 2003 The University of Edinburgh.
00014 
00015 */
00016 
00017 #ifndef __BxBinxFileWriter__
00018 #define __BxBinxFileWriter__
00019 
00020 #include <stdio.h>
00021 
00022 #include "BxBinxFile.h"
00023 #include "BxDataObjects.h"
00024 
00025 class BxDataObject;
00026 class BxDataset;
00027 class BxArray;
00028 class BxUnion;
00029 
00050 class DECLSPEC BxBinxFileWriter : public BxBinxFile
00051 {
00052 public:
00053     BxBinxFileWriter();
00054     BxBinxFileWriter(const char * filename);
00055     virtual ~BxBinxFileWriter();
00056 
00057     virtual char * className() const { return "BxBinxFileWriter"; } //<Returns the null-terminated string "BxBinaryFileWrite".
00058 
00059     bool save();
00060     bool save(const char * filename);   // save as
00061     bool saveDataBinx(FILE *); // save file as a DataBinx document
00062 
00063     bool createBinxFile(const char * filename);
00064     bool addTypeDefinition(BxDataObject *);
00065     bool removeTypeDefinition(const char * typeName);
00066 
00067 private:
00068     void clear();
00069     bool writeDocument(FILE *);
00070     bool writeDefinitions(FILE *);
00071     bool writeFileStructures(FILE *);
00072     bool writeDataset(FILE *,BxDataset *);
00073     bool writeArray(FILE *,BxArray *);
00074     bool writeUnion(FILE *,BxUnion *);
00075     void writePrimitives(FILE *,BxDataObject * pd, bool addAttributes);
00076     void writeAttributes(FILE *,BxDataObject * pd, bool useType);
00077     FILE * createFile(const char * filename);
00078 
00079 private:
00080     BxDataObjects  definitions_;   //the BinX document definitions secdtion, defining abstract data types
00081     FILE * fileptr_; //< file pointer to the created BinX file
00082 };
00083 
00084 #endif
00085 

Generated on Fri May 6 13:36:17 2005 for edikt::BinX by doxygen 1.3.3