Anaphe Home Page Reference Documentation

Main Page     Namespaces     Classes     Source Code    

IVectorManager.h

Go to the documentation of this file.
00001 // 
00002 // Copyright (C) CERN, Geneva 
00003 // 
00004 // header file for class IVectorManager 
00005 // Created by: Andreas Pfeiffer  at Wed Jan 19 20:35:12 2000
00006 // 
00007 // Last update: 
00008 //              
00009 //   ap, 16-jan-01 : removed default arguments, cleaned up std:: stuff
00010 // 
00011 #ifndef INTERFACE_IVECTORMANAGER_H
00012 #define INTERFACE_IVECTORMANAGER_H
00013 
00014 #include <iostream>
00015 
00016 #ifndef ANAPHE_NO_NAMESPACE
00017 namespace Anaphe {
00018 #endif
00019 
00020   class IScalar;
00021   class IPoint;
00022   class IVector;
00023   class IVectorFactory;
00024 
00025 //-ap  class IHistogram1D;
00026 //-ap  class IHistogram2D;
00027 //-ap  class IProfileHistogram;
00028 
00029   class IVectorManager  { 
00030 
00031   public: 
00032     virtual ~IVectorManager()  { /* nop */; }
00033 
00034   public:
00035     // let these be done by the compiler
00036     //  IVectorManager(const IVectorManager &); 
00037     //  IVectorManager & operator = (const IVectorManager &); 
00038 
00039   public:               // public methods
00040     virtual void setFactory(IVectorFactory * f) = 0;
00041 
00042     virtual void enroll(IVector * v) = 0;
00043     virtual void unregister(IVector * v) = 0;
00044 
00045     virtual IVector * retrieve1D(int i) = 0;
00046     virtual IVector * retrieve2D(int i) = 0;
00047 
00048     virtual void delete1D(int i) = 0;
00049     virtual void delete2D(int i) = 0;
00050 
00051     // returns number of vectors known to the manager
00052     virtual int size() const = 0;
00053 
00054     // destroys all vectors known to the manager
00055     virtual void clearAll() = 0;
00056 
00057 #ifdef AIDA_DONT_USE_STD
00058     virtual void list(     ostream& os) = 0;
00059 #else
00060     virtual void list(std::ostream& os) = 0;
00061 #endif
00062 
00063   public:                               // scalar- and point- creators
00064     virtual IScalar * createScalar(double x=0, double xp=0, double xm=0) = 0;
00065     virtual IPoint  * createPoint() = 0;
00066 
00067   public:                               // vector-creators
00068     virtual IVector * create() = 0;
00069 
00070 //-ap    virtual IVector * from1D(IHistogram1D *h) = 0;
00071 //-ap    virtual IVector * from2D(IHistogram2D *h) = 0;
00072 //-ap    virtual IVector * fromProfile(IProfileHistogram *h, const char * options  = 0) = 0;
00073 
00074   }; 
00075 
00076 #ifndef ANAPHE_NO_NAMESPACE
00077 }; // end namespace Anaphe
00078 #endif
00079 
00080 extern "C" {
00081   Anaphe::IVectorManager* createIVectorManager();
00082 }
00083 
00084 #endif /* INTERFACE_IVECTORMANAGER_H */ 


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