Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:28:08

0001 // -*- C++ -*-
0002 // AID-GENERATED
0003 // =========================================================================
0004 // This class was generated by AID - Abstract Interface Definition          
0005 // DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. 
0006 // =========================================================================
0007 #ifndef AIDA_IFUNCTIONCATALOG_H
0008 #define AIDA_IFUNCTIONCATALOG_H 1
0009 
0010 //  This file is part of the AIDA library
0011 //  Copyright (C) 2002 by the AIDA team.  All rights reserved.
0012 //  This library is free software and under the terms of the
0013 //  GNU Library General Public License described in the LGPL.txt 
0014 
0015 #include <string>
0016 #include <vector>
0017 
0018 namespace AIDA {
0019 
0020 class IFunction;
0021 
0022 /** @interface 
0023  *
0024  * Function catalog.
0025  *
0026  * @author The AIDA team (http://aida.freehep.org/)
0027  *
0028  */
0029  
0030 class IFunctionCatalog {
0031 
0032 public: 
0033     /// Destructor.
0034     virtual ~IFunctionCatalog() { /* nop */; }
0035 
0036     /**
0037      * Remember persistently definition (code!) of a function under a name.
0038      * Scripted function created by the user may be automatically available
0039      * in the subsequent analysis sessions. This is also a way to create
0040      * new names for combinations of exisiting model functions ("G+G+E+P5").
0041      * Last but not least, system may be easily extended with model functions
0042      * developed in the programming language directly.
0043      * Predefined functions: "G","E","Pn".
0044      */
0045     virtual bool add(std::string nameId, IFunction * f) = 0;
0046 
0047     virtual bool add(std::string nameId, const std::string & codelet) = 0;
0048 
0049     /*
0050      * Get a list of all available functions.
0051      */
0052     virtual std::vector<std::string>  list() = 0;
0053 
0054     /*
0055      * Remove function from the catalog.
0056      */
0057     virtual void remove(const std::string & nameId) = 0;
0058 
0059     /*
0060      * Write contents of the catalog to disk.
0061      * We have to agree on the format here, or define and XML 
0062      * entry for IFunctionCatalog!
0063      */
0064     virtual bool storeAll(const std::string & nameOnDisk) = 0;
0065 
0066     /* 
0067      * Load contents of the catalog from disk
0068      * We have to agree on the format here, or define and XML 
0069      * entry for IFunctionCatalog!
0070      */
0071     virtual bool loadAll(const std::string & nameOnDisk) = 0;
0072 }; // class
0073 } // namespace AIDA
0074 #endif /* ifndef AIDA_IFUNCTIONCATALOG_H */