![]() |
Reference Documentation |
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) |