Anaphe Home Page Reference Documentation

Main Page     Namespaces     Classes     Source Code    

IVectorFactory.h

Go to the documentation of this file.
00001  /**********************************************************************
00002   *                                                                    *
00003   * Copyright (c) 2002 Andreas Pfeiffer, CERN/IT                       *
00004   *                    <andreas.pfeiffer@cern.ch>                      *
00005   *                                                                    *
00006   * This library is free software; you can redistribute it and/or      *
00007   * modify it under the terms of the GNU Lesser General Public         *
00008   * License as published by the Free Software Foundation; either       *
00009   * version 2.1 of the License, or (at your option) any later version. *
00010   *                                                                    *
00011   * This library is distributed in the hope that it will be useful,    *
00012   * but WITHOUT ANY WARRANTY; without even the implied warranty of     *
00013   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   *
00014   * Lesser General Public License for more details.                    *
00015   *                                                                    *
00016   * You should have received a copy of the GNU Lesser General Public   *
00017   * License along with this library (see file COPYING); if not, write  *
00018   * to the Free Software Foundation, Inc., 59 Temple Place, Suite      *
00019   * 330, Boston, MA 02111-1307 USA, or contact the author              *
00020   **********************************************************************/
00021 
00022 // 
00023 // header file for class IVectorFactory 
00024 // Created by: Andreas Pfeiffer  at Wed Jan 19 20:36:32 2000
00025 // 
00026 // Last update: 
00027 //              
00028 // 
00029 #ifndef INTERFACE_IVECTORFACTORY_H
00030 #define INTERFACE_IVECTORFACTORY_H 
00031 
00032 #ifndef ANAPHE_NO_NAMESPACE
00033 namespace Anaphe {
00034 #endif
00035 
00036 //-ap  class IHistogram1D;
00037 //-ap  class IHistogram2D;
00038 //-ap  class IProfileHistogram;
00039 
00040   class IScalar;
00041   class IPoint;
00042   class IVector;
00043 
00044   class IVectorManager;
00045 
00046   class IVectorFactory  { 
00047 
00048   public: 
00049     virtual ~IVectorFactory() { /* nop */; }
00050 
00051   public:
00052     // let the compiler deal with these ...
00053     //  IVectorFactory(const IVectorFactory &); 
00054     //  IVectorFactory & operator = (const IVectorFactory &); 
00055 
00056   public:               // public methods
00057     virtual IScalar * createScalar(double x=0, double xp=0, double xm=0) = 0;
00058     virtual IPoint  * createPoint() = 0;
00059 
00060     virtual IVector * create() = 0;
00061 
00062 //-ap    virtual IVector * from1D(IHistogram1D *h) = 0;
00063 //-ap    virtual IVector * from2D(IHistogram2D *h) = 0;
00064 //-ap    virtual IVector * fromProfile(IProfileHistogram *h, const char * options  = 0) = 0;
00065 
00066     virtual void unregister(IVector * v) = 0;
00067 
00068     virtual void setManager(IVectorManager * vm) = 0;
00069 
00070   }; 
00071 
00072 #ifndef ANAPHE_NO_NAMESPACE
00073 }; // end namespace Anaphe
00074 #endif
00075 
00076 extern "C" {
00077   Anaphe::IVectorFactory * createIVectorFactory();
00078 }
00079 
00080 
00081 #endif /* INTERFACE_IVECTORFACTORY_H */ 


Anaphe documentation generated by Doxygen (www.doxygen.org)