00001
00002 class RawData : public virtual classic::gov::cca::Port {
00003 public:
00004
00006 virtual const char * getName() = 0;
00007
00009 virtual int getNumberOfBuffers() = 0;
00010
00017 virtual getBufferInfo(int bufferIndex, enum RawDataType &elementType,
00018 int & elementCount, void* & buffer) = 0;
00019
00020
00022 enum RawDataType {
00023 Err =0,
00024 Byte =1, Char, Wchar, Int1, Int2, Int4, Int8, Float4,
00025 Complex4,
00026 Complex8,
00027 Complex16,
00028 Complex32,
00029 Bool1,
00030 Etc
00031 };
00032
00033 };
00034
00054 class LocalArrayWindow : public virtual classic::gov::cca::Port {
00055 public:
00056
00058 virtual const char * getName() = 0;
00059
00075 virtual void getInfo( enum RawDataType::RawDataType &dataType, int & rank) = 0;
00076
00087 virtual void getData(
00088 const int[] & lowerBoundsC,
00089 const int[] & upperBoundsC,
00090 const int[] & stride,
00091 const int[] & leadingDimensions,
00092 const void* & data
00093 ) = 0;
00094
00096 virtual const enum RawDataType::RawDataType getType() = 0;
00098 virtual const int getRank() = 0;
00100 virtual const int[] getLeadingDimensions() = 0;
00102 virtual const void * getData() = 0;
00103
00106 virtual LocalArrayWindow *createWindow(
00107 const int[] & lowerBoundsC,
00108 const int[] & upperBoundsC,
00109 const int[] & stride
00110 ) = 0;
00111
00112 };
00113
00128 class DataManager : public virtual classic::gov::cca::Port {
00130 virtual LocalArrayWindow *getLocalArrayWindow(char * name) = 0;
00131
00133 virtual RawData *getRawData(char * name) = 0;
00134
00135
00136
00137
00138
00145 virtual void putDataPort(char *newDataItemName, Port *data) = 0;
00146
00150 virtual void addDataPortView(char * existingDataItemName,
00151 char * newViewType,
00152 Port * newView) = 0;
00153
00157 virtual classic::gov::cca::Port *getDataView(const char * existingDataItemName,
00158 const char * desiredViewType) = 0;
00159
00160 };
00161