Warning, /include/Geant4/tools/impi is written in an unsupported language. File is not indexed.
0001 // Copyright (C) 2010, Guy Barrand. All rights reserved.
0002 // See the file tools.license for terms.
0003
0004 #ifndef tools_impi
0005 #define tools_impi
0006
0007 #include <string>
0008 #include <vector>
0009
0010 #include "typedefs"
0011
0012 namespace tools {
0013
0014 class impi {
0015 public:
0016 virtual ~impi(){}
0017 public:
0018 virtual bool pack(char) = 0;
0019 virtual bool pack(short) = 0;
0020 virtual bool pack(int) = 0;
0021 virtual bool pack(unsigned int) = 0;
0022 virtual bool pack(uint64) = 0;
0023 virtual bool pack(int64) = 0;
0024 virtual bool pack(float) = 0;
0025 virtual bool pack(double) = 0;
0026 virtual bool bpack(bool) = 0;
0027 virtual bool spack(const std::string&) = 0;
0028 virtual bool vpack(const std::vector<unsigned int>&) = 0;
0029 virtual bool vpack(const std::vector<int>&) = 0;
0030 virtual bool vpack(const std::vector<double>&) = 0;
0031 virtual bool pack(uint32,const char*) = 0;
0032 virtual bool pack(uint32,const int*) = 0;
0033
0034 virtual bool unpack(char&) = 0;
0035 virtual bool unpack(short&) = 0;
0036 virtual bool unpack(int&) = 0;
0037 virtual bool unpack(unsigned int&) = 0;
0038 virtual bool unpack(uint64&) = 0;
0039 virtual bool unpack(int64&) = 0;
0040 virtual bool unpack(float&) = 0;
0041 virtual bool unpack(double&) = 0;
0042 virtual bool bunpack(bool&) = 0;
0043 virtual bool sunpack(std::string&) = 0;
0044 virtual bool vunpack(std::vector<unsigned int>&) = 0;
0045 virtual bool vunpack(std::vector<int>&) = 0;
0046 virtual bool vunpack(std::vector<double>&) = 0;
0047 virtual bool unpack(uint32&,char*&) = 0;
0048 virtual bool unpack(uint32&,int*&) = 0;
0049
0050 virtual void pack_reset() = 0;
0051 virtual bool send_buffer(int,int) = 0;
0052
0053 virtual bool wait_buffer(int rank,int src,int tag,int& probe_src,bool verbose = false) = 0;
0054 virtual bool wait_buffer(int rank,int tag,int& probe_src,bool verbose = false) = 0; //MPI_ANY_SOURCE.
0055 };
0056
0057 }
0058
0059 #endif