00001
00002
00003
00004
00005
00006
00007
00008
00009
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
00026
00027
00028
00029 class IVectorManager {
00030
00031 public:
00032 virtual ~IVectorManager() { ; }
00033
00034 public:
00035
00036
00037
00038
00039 public:
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
00052 virtual int size() const = 0;
00053
00054
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:
00064 virtual IScalar * createScalar(double x=0, double xp=0, double xm=0) = 0;
00065 virtual IPoint * createPoint() = 0;
00066
00067 public:
00068 virtual IVector * create() = 0;
00069
00070
00071
00072
00073
00074 };
00075
00076 #ifndef ANAPHE_NO_NAMESPACE
00077 };
00078 #endif
00079
00080 extern "C" {
00081 Anaphe::IVectorManager* createIVectorManager();
00082 }
00083
00084 #endif