// Copyright (C) 2010, Guy Barrand. All rights reserved. // See the file tools.license for terms. #ifndef tools_impi #define tools_impi #include #include #include "typedefs" namespace tools { class impi { public: virtual ~impi(){} public: virtual bool pack(unsigned int) = 0; virtual bool pack(uint64) = 0; virtual bool pack(int64) = 0; virtual bool pack(double) = 0; virtual bool bpack(bool) = 0; virtual bool spack(const std::string&) = 0; virtual bool vpack(const std::vector&) = 0; virtual bool vpack(const std::vector&) = 0; virtual bool vpack(const std::vector&) = 0; virtual bool pack(uint32,const char*) = 0; virtual bool pack(uint32,const int*) = 0; virtual bool unpack(unsigned int&) = 0; virtual bool unpack(uint64&) = 0; virtual bool unpack(int64&) = 0; virtual bool unpack(double&) = 0; virtual bool bunpack(bool&) = 0; virtual bool sunpack(std::string&) = 0; virtual bool vunpack(std::vector&) = 0; virtual bool vunpack(std::vector&) = 0; virtual bool vunpack(std::vector&) = 0; virtual bool unpack(uint32&,char*&) = 0; virtual bool unpack(uint32&,int*&) = 0; // for tools::mpi::pntuple : virtual void pack_reset() = 0; virtual bool send_buffer(int,int) = 0; }; } #endif