#ifndef __LOCAL_VIEW_HPP__ #define __LOCAL_VIEW_HPP__ #include "xios_spl.hpp" #include "array_new.hpp" #include "distributed_view.hpp" #include "context_client.hpp" namespace xios { class CLocalElement ; class CRemoteConnector ; class CLocalView : public CDistributedView { public: CLocalView(CLocalElement* parent, CElementView::type type, const CArray& indexView) ; const CArray& getIndex(void) { return index_ ;} const CArray& getGlobalIndex(void) { return globalIndex_ ;} void getGlobalIndex(vector& globalIndex, size_t sliceIndex, size_t* sliceSize, CLocalView** localView, int pos) { if (pos==0) { for(int i=0;i=0 && index_(i)=0 && index_(i)getGlobalIndex(globalIndex, sliceIndex + globalIndex_(index_(i))*sliceSize[pos], sliceSize, localView, pos-1) ; } } int getLocalSize(void) {return localSize_ ;} int getSize(void) {return size_;} void sendRemoteElement(CRemoteConnector& connector, CContextClient* client, CEventClient& event, const CMessage& messageHeader) ; CArray& globalIndex_ ; CArray& index_ ; int& size_ ; int& localRank_ ; int& localSize_ ; } ; } #endif