00001 // ################################################################## 00002 // Binx 00003 // $Id: BxContainer_8h-source.html,v 1.1.1.1 2006/04/19 14:19:02 edikt2 Exp $ 00004 // 00005 // Header for BxContainer class 00006 /* 00007 History 00008 Created 03/06/2003 as BxEnvironment for multiple BxBinxFile 00009 not implemented, prepared for XPath query module 00010 Modified 23/09/2003 as BxContainer, not implemented yet 00011 */ 00012 // ################################################################## 00013 /* 00014 00015 // edikt::BinX 00016 // www.edikt.org 00017 // support@edikt.org 00018 00019 // Copyright (c) 2003 The University of Edinburgh. 00020 00021 */ 00022 00023 #ifndef __BxContainer__ 00024 #define __BxContainer__ 00025 00026 #include "BxDataObject.h" 00027 #include "BxBinxFile.h" 00028 00029 /* 00030 * Class aggregating multiple BinX datasets(not in BinX version 1.0). 00031 * This class is a preliminary design and it is not fully implemented. 00032 * Developers are advised not to use this class 00033 * as significant design changes are anticipated. 00034 * 00035 * <BR>A BinX data source consists of: 00036 * <OL> 00037 * <li>A BinX document file, represented by a BxBinxFile object</li> 00038 * <li>An external binary data file, represented by a BxBinaryFile object</li> 00039 * </OL> 00040 * The BinX document references at least one external binary data file. 00041 * A binary data file reference is represented in the BxBinxFile object 00042 * by storing a link to the BxBinxFile object. 00043 * A BxContainer object stores a list of BinX data sources, 00044 * so that operations can be performed over a set of data sources. 00045 * 00046 * <BR>At most one instance of the class BxContainer 00047 * should be created during an execution. 00048 * This class implements a search method to select a 00049 * particular data source in the set of data sources, 00050 * and to invoke a query operation on the selected data source. 00051 * 00052 * <BR>A BxContainer object can be created explicitly 00053 * and BinX data sources can be added incrementally. 00054 * If an application uses only one data source, 00055 * but that data source contains multiple references to external binary data files, 00056 * then a BxContainer object is implicitly created to manage the multiple 00057 * exernal binary data files referenced from a single BinX document file. 00058 * <BR><B>Since:</B> Future release to be determined. 00059 */ 00060 class DECLSPEC BxContainer : public BxObject 00061 { 00062 BxBinxFile** binxfiles_; //array of BxBinxFile objects 00063 int elementCount_; //number of elements in the above array 00064 public: 00065 BxContainer(); 00066 virtual ~BxContainer(); 00067 00068 virtual char* className() const { return "BxContainer"; } //Returns the null-terminated string "BxContainer". 00069 void addBinxFile(BxBinxFile *); 00070 BxBinxFile * getBinxFile(int index); //get pointer by index 00071 BxBinxFile * getBinxFile(const char * xref); 00072 BxDataObject * getDataObject(const char * xref, const char * xpath); 00073 }; 00074 00075 #endif 00076 00077
1.3.3