CCAFFEINE
0.8.8
|
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 }; // RawData 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, // 0-indexed 00089 const int[] & upperBoundsC, // 0-indexed 00090 const int[] & stride, 00091 const int[] & leadingDimensions, // size in each dimension 00092 const void* & data // pointer to beginning of data w/out window 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; // maybe want locking flavors& release. 00103 00106 virtual LocalArrayWindow *createWindow( 00107 const int[] & lowerBoundsC, // 0-indexed 00108 const int[] & upperBoundsC, // 0-indexed 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 // post-meeting commentary by Ben, ala John's notions 00136 // but without an intervening OODB literature review. 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