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

BxContainer.h

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  

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