MemArrayProperties.hpp

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 } // namespace Fiber
00065 
00066 #endif /* __FIBER_MEMARRAYPROPERTIES_HPP */
00067