Ignore:
Timestamp:
07/24/15 16:40:05 (9 years ago)
Author:
rlacroix
Message:

Grid: Avoid some heap allocations and do various cleanups.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/node/grid.hpp

    r632 r650  
    5959         { 
    6060           EVENT_ID_INDEX, EVENT_ID_ADD_DOMAIN, EVENT_ID_ADD_AXIS 
    61          } ; 
     61         }; 
    6262 
    6363         enum EElementType 
     
    6868         /// Constructeurs /// 
    6969         CGrid(void); 
    70          explicit CGrid(const StdString & id); 
    71          CGrid(const CGrid & grid);       // Not implemented yet. 
    72          CGrid(const CGrid * const grid); // Not implemented yet. 
     70         explicit CGrid(const StdString& id); 
     71         CGrid(const CGrid& grid);       // Not implemented yet. 
     72         CGrid(const CGrid* const grid); // Not implemented yet. 
    7373 
    7474         /// Traitements /// 
     
    7979         void checkMaskIndex(bool doCalculateIndex); 
    8080 
    81  //        virtual void toBinary  (StdOStream & os) const; 
    82 //         virtual void fromBinary(StdIStream & is); 
     81 //        virtual void toBinary  (StdOStream& os) const; 
     82//         virtual void fromBinary(StdIStream& is); 
    8383 
    8484         /// Tests /// 
     
    8888 
    8989         /// Accesseurs /// 
    90          const std::deque< CArray<int, 1>* > & getStoreIndex(void) const; 
    91          const std::deque< CArray<int, 1>* > & getOutIIndex(void)  const; 
    92          const std::deque< CArray<int, 1>* > & getOutJIndex(void)  const; 
    93          const std::deque< CArray<int, 1>* > & getOutLIndex(void)  const; 
    94  
    95          const CAxis*   getRelAxis  (void) const; 
    96          const CDomain* getRelDomain(void) const; 
    97  
    9890         StdSize getDimension(void) const; 
    9991 
    100 //         StdSize getLocalSize(void) const; 
    101 //         StdSize getGlobalSize(void) const; 
    10292         StdSize  getDataSize(void) const; 
    103 //         std::vector<StdSize> getLocalShape(void) const; 
    104 //         std::vector<StdSize> getGlobalShape(void) const; 
    10593 
    10694         /// Entrées-sorties de champs /// 
     
    11098         void outputField(const CArray<double,1>& stored, CArray<double,n>& field) const; 
    11199 
    112          void inputFieldServer(const std::deque< CArray<double, 1>* > storedClient, 
    113                                CArray<double, 1>&  storedServer) const; 
    114  
    115100         void outputField(int rank, const CArray<double,1>& stored, double* field); 
    116101         void inputField(int rank, const double* const field, CArray<double,1>& stored); 
    117102 
    118          virtual void parse(xml::CXMLNode & node); 
     103         virtual void parse(xml::CXMLNode& node); 
    119104 
    120105         /// Destructeur /// 
     
    137122 
    138123         /// Entrées-sorties de champs (interne) /// 
    139          void storeField_arr(const double * const data, CArray<double,1>& stored) const; 
    140          void restoreField_arr(const CArray<double,1>& stored, double * const data) const; 
     124         void storeField_arr(const double* const data, CArray<double,1>& stored) const; 
     125         void restoreField_arr(const CArray<double,1>& stored, double* const data) const; 
    141126 
    142127         /// Traitements protégés /// 
     
    155140         void sendAllAxis(); 
    156141 
    157          static void recvAddDomain(CEventServer& event) ; 
    158          void recvAddDomain(CBufferIn& buffer) ; 
    159          static void recvAddAxis(CEventServer& event) ; 
    160          void recvAddAxis(CBufferIn& buffer) ; 
    161  
    162          static bool dispatchEvent(CEventServer& event) ; 
    163          void outputFieldToServer(CArray<double,1>& fieldIn, int rank, CArray<double,1>& fieldOut) ; 
    164          static void recvIndex(CEventServer& event) ; 
    165          void recvIndex(vector<int> ranks, vector<CBufferIn*> buffers) ; 
    166          void sendIndex(void) ; 
     142         static void recvAddDomain(CEventServer& event); 
     143         void recvAddDomain(CBufferIn& buffer); 
     144         static void recvAddAxis(CEventServer& event); 
     145         void recvAddAxis(CBufferIn& buffer); 
     146 
     147         static bool dispatchEvent(CEventServer& event); 
     148         static void recvIndex(CEventServer& event); 
     149         void recvIndex(vector<int> ranks, vector<CBufferIn*> buffers); 
     150         void sendIndex(void); 
    167151         void sendIndexScalarGrid(); 
    168152 
     
    198182         bool isIndexSent; 
    199183 
    200          std::deque< CArray<int, 1>* > storeIndex ; 
    201         CArray<int, 1>  storeIndex_client ; 
    202  
    203          map<int, CArray<int, 1>* >  storeIndex_toSrv ; 
    204          map<int,int> nbSenders ; 
    205  
    206          map<int, CArray<size_t, 1>* > outIndexFromClient; 
    207          void checkMask(void) ; 
     184         CArray<int, 1> storeIndex_client; 
     185 
     186         map<int, CArray<int, 1> > storeIndex_toSrv; 
     187         map<int,int> nbSenders; 
     188 
     189         map<int, CArray<size_t, 1> > outIndexFromClient; 
     190         void checkMask(void); 
    208191         void modifyMask(const CArray<int,1>& indexToModify); 
    209192 
     
    254237        bool isDataDistributed_; 
    255238 
    256  
    257 //        std::vector<ETransformationType> transformations_; 
    258239        bool isTransformed_; 
    259240        std::vector<int> axisPositionInGrid_; 
     
    271252                << "Received data size = "      << field.numElements() << " ] " 
    272253                << "The array of data has not the good size !") 
    273       this->storeField_arr(field.dataFirst(), stored) ; 
     254      this->storeField_arr(field.dataFirst(), stored); 
    274255   } 
    275256 
     
    293274     int idx = 0; 
    294275     int numElement = axisDomainOrder.numElements(); 
    295      int dim = domainMasks.size()*2 + axisMasks.size(); 
     276     int dim = domainMasks.size() * 2 + axisMasks.size(); 
    296277 
    297278     std::vector<int> idxLoop(dim,0), indexMap(numElement), eachDimSize(dim); 
Note: See TracChangeset for help on using the changeset viewer.