00001
00002
00011 #ifndef ATHCONTAINERSINTERFACES_IAUXTYPEVECTOR_H
00012 #define ATHCONTAINERSINTERFACES_IAUXTYPEVECTOR_H
00013
00014
00015 #include <cstddef>
00016 #include <typeinfo>
00017
00018
00019 namespace SG {
00020
00021
00022 class AuxDataOption;
00023
00024
00034 class IAuxTypeVector
00035 {
00036 public:
00038 virtual ~IAuxTypeVector() {}
00039
00040
00044 virtual IAuxTypeVector* clone() const = 0;
00045
00046
00050 virtual void* toPtr() = 0;
00051
00052
00056 virtual void* toVector() = 0;
00057
00058
00062 virtual size_t size() const = 0;
00063
00064
00069 virtual void resize (size_t sz) = 0;
00070
00071
00076 virtual void reserve (size_t sz) = 0;
00077
00078
00101 virtual void shift (size_t pos, ptrdiff_t offs) = 0;
00102
00103
00113 virtual bool setOption (const AuxDataOption& )
00114 { return false; }
00115
00116
00129 virtual IAuxTypeVector* toPacked() { return 0; }
00130
00131
00143 virtual const std::type_info* objType() const { return 0; }
00144 };
00145
00146
00147 }
00148
00149
00150 #endif // not ATHCONTAINERSINTERFACES_IAUXTYPEVECTOR_H