00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef _LOCAL_DATA_ELEMENT_H
00010 #define _LOCAL_DATA_ELEMENT_H
00011
00012 class SrcFinfo;
00013 class FuncOrder;
00014
00020 class LocalDataElement: public DataElement
00021 {
00022 public:
00032 LocalDataElement( Id id, const Cinfo* c, const string& name,
00033 unsigned int numData = 1 );
00034
00039 LocalDataElement( Id id, const Element* orig, unsigned int n );
00040
00044 ~LocalDataElement();
00045
00049 Element* copyElement( Id newParent, Id newId, unsigned int n,
00050 bool toGlobal ) const;
00051
00053
00055
00057 unsigned int numData() const;
00058
00060 unsigned int localDataStart() const;
00061
00063 unsigned int getNode( unsigned int dataId ) const;
00064
00066 unsigned int startDataIndex( unsigned int node ) const;
00067
00069 unsigned int rawIndex( unsigned int dataId ) const;
00070
00071
00073 bool isGlobal() const {
00074 return false;
00075 }
00076
00078 unsigned int getNumOnNode( unsigned int node ) const;
00079
00081
00083
00094 void resize( unsigned int newNumData );
00095
00097
00098
00100 unsigned int setDataSize( unsigned int numData );
00101
00102 private:
00109 unsigned int numData_;
00110
00116 unsigned int numPerNode_;
00117
00121 unsigned int localDataStart_;
00122 };
00123
00124 #endif // _LOCAL_DATA_ELEMENT_H