ITreeFactory.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 // AID-GENERATED
00003 // =========================================================================
00004 // This class was generated by AID - Abstract Interface Definition          
00005 // DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. 
00006 // =========================================================================
00007 #ifndef AIDA_ITREEFACTORY_H
00008 #define AIDA_ITREEFACTORY_H 1
00009 
00010 //  This file is part of the AIDA library
00011 //  Copyright (C) 2002 by the AIDA team.  All rights reserved.
00012 //  This library is free software and under the terms of the
00013 //  GNU Library General Public License described in the LGPL.txt 
00014 
00015 #include <string>
00016 
00017 namespace AIDA {
00018 
00019 class ITree;
00020 
00021 /**
00022  * The creator of trees.
00023  *
00024  * @author The AIDA team (http://aida.freehep.org/)
00025  */
00026  
00027 class ITreeFactory {
00028 
00029 public: 
00030     /// Destructor.
00031     virtual ~ITreeFactory() { /* nop */; }
00032 
00033     /**
00034      * Creates a new tree that is not associated with a store.
00035      */
00036     virtual ITree * create() = 0;
00037 
00038     /**
00039      * Creates a new tree and associates it with a store.
00040      * The store is assumed to be read/write.
00041      * The store will be created if it does not exist.
00042      * @param storeName The name of the store, if empty (""), the tree is created
00043      *                  in memory and therefore will not be associated with a file.
00044      * @param storeType Implementation specific string, may control store type
00045      * @param readOnly If true the store is opened readonly, an exception if it does not exist
00046      * @param createNew If false the file must exist, if true the file will be created
00047      * @param options Other options, currently are not specified
00048      *
00049      */
00050     virtual ITree * create(const std::string & storeName, const std::string & storeType = "", bool readOnly = false, bool createNew = false, const std::string & options = "") = 0;
00051 }; // class
00052 } // namespace AIDA
00053 #endif /* ifndef AIDA_ITREEFACTORY_H */