CCAFFEINE  0.8.8
dec2000.h
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