00001 #ifndef __FIBER_MEMARRAYPROPERTIES_HPP
00002 #define __FIBER_MEMARRAYPROPERTIES_HPP
00003
00004
00005 #include "FieldAPI.h"
00006 #include <memcore/Interface.hpp>
00007
00008 #include <typeinfo>
00009 #include "FiberType.hpp"
00010 #include "MemBase.hpp"
00011
00012 namespace Fiber
00013 {
00014 using std::type_info;
00015
00016 using MemCore::RefPtr;
00017 using MemCore::ReferenceBase;
00018
00023 class FIELD_API MemArrayProperties : public MemCore::Interface<MemArrayProperties>
00024 {
00025 public:
00027 const int rank;
00028
00030 const FiberTypeBase&myFiberType;
00031
00035 MemArrayProperties(int Rank, const FiberTypeBase&FT)
00036 : rank(Rank)
00037 , myFiberType(FT)
00038 {}
00039
00043 MemArrayProperties(const MemBase&MB)
00044 : rank(MB.rank() )
00045 , myFiberType( MB.getFiberType() )
00046 {}
00047
00049 ~MemArrayProperties();
00050
00052 const FiberTypeBase&getFiberType() const
00053 {
00054 return myFiberType;
00055 }
00056
00058 const type_info&myElementType() const
00059 {
00060 return myFiberType.getType();
00061 }
00062 };
00063
00064 }
00065
00066 #endif
00067