00001 #ifndef COMPOSITE_TRANSFERER_WITH_OWNERSHIP_HPP_ 00002 #define COMPOSITE_TRANSFERER_WITH_OWNERSHIP_HPP_ 00003 00004 #include "TransfererWithOwnership.hpp" 00005 #include "CompositeTransferData.hpp" 00006 00007 namespace mmpt 00008 { 00009 00010 class CompositeTransfererWithOwnership 00011 : public TransfererWithOwnership 00012 { 00013 public: 00014 CompositeTransfererWithOwnership(int my_id, const mmpt_mesh & parallel_mesh); 00015 using Transferer::doTransfer; 00016 const TransferResult& doTransfer(const TransferOrder& order); 00017 00018 protected: 00019 00020 void doMassTransferInit(const std::vector<TransferOrder>& orders); 00021 void doMassTransferClear(const std::vector<TransferOrder>& orders, 00022 std::vector<const TransferResult*> &results); 00023 00024 void doSendRelativeOrders(const TransferOrder& order, 00025 CompositeTransferWithOwnershipResult & r); 00026 void doRecvRelativeOrders(const TransferOrder & order, 00027 CompositeTransferWithOwnershipResult & r); 00028 00029 }; 00030 00031 } 00032 00033 #endif // COMPOSITE_TRANSFERER_WITH_OWNERSHIP_HPP_