#ifndef COMM_BUFFER_HPP #define COMM_BUFFER_HPP #include <mpi.h> #include <vector> #include "../datastructures/Body.hpp" namespace nbody { using namespace std; class MpiBodyComm { protected: int blocklengths[3]; MPI::Datatype datatypes[3]; /* MPI::Datatype commBodyType; MPI::Datatype datatypes[3]; int blocklengths[3]; MPI::Aint displacements[3]; MPI::Status status; MPI::Request request; vector<Body> buffer; virtual void setupDatatype(vector<Body> bodies); virtual int getReceivedNumberBodies(int source); */ public: MpiBodyComm(); virtual ~MpiBodyComm(); virtual void testing(vector<Body>& data, int myRank); virtual bool sendBlocking(int target, vector<Body> bodies); virtual void recvBlocking(int source, vector<Body>& bodies); /* virtual bool sendBlocking(int target, vector<Body> bodies); virtual bool sendUnblocking(int target, vector<Body> bodies); virtual void recvBlocking(int source, vector<Body>& bodies); virtual bool recvUnblocking(int source, vector<Body>& bodies); virtual void recvBlockingAnySource(int& source, vector<Body>& bodies); virtual bool recvUnblockingAnySource(int& source, vector<Body>& bodies); virtual bool sendReady(); virtual bool recvReady(int source); virtual void testing(vector<Body>& data, int myRank); */ }; } #endif