Geant4 Cross Reference |
1 // Copyright (C) 2010, Guy Barrand. All rights reserved. 2 // See the file tools.license for terms. 3 4 #ifndef tools_wroot_mpi_basket_add 5 #define tools_wroot_mpi_basket_add 6 7 #include "mpi_send_basket" 8 #include "branch" 9 10 namespace tools { 11 namespace wroot { 12 13 class mpi_basket_add : public virtual branch::iadd_basket { 14 typedef branch::iadd_basket parent; 15 public: 16 virtual bool add_basket(basket* a_basket) { 17 bool status = mpi_send_basket(m_mpi,m_dest,m_tag,m_id,m_icol,*a_basket); 18 delete a_basket; 19 return status; 20 } 21 public: 22 mpi_basket_add(impi& a_mpi,int a_dest,int a_tag,uint32 a_id,uint32 a_icol) 23 :m_mpi(a_mpi),m_dest(a_dest),m_tag(a_tag),m_id(a_id),m_icol(a_icol) 24 {} 25 protected: 26 mpi_basket_add(const mpi_basket_add& a_from):parent() 27 ,m_mpi(a_from.m_mpi),m_dest(a_from.m_dest),m_tag(a_from.m_tag) 28 ,m_id(a_from.m_id),m_icol(a_from.m_icol) 29 {} 30 mpi_basket_add& operator=(const mpi_basket_add& a_from){ 31 m_dest = a_from.m_dest; 32 m_tag = a_from.m_tag; 33 m_id = a_from.m_id; 34 m_icol = a_from.m_icol; 35 return *this; 36 } 37 protected: 38 impi& m_mpi; 39 int m_dest; 40 int m_tag; 41 uint32 m_id; 42 uint32 m_icol; 43 }; 44 45 }} 46 47 #endif