57 virtual bool alive(
const int pid) = 0;
61 virtual const int*
alive(
int num,
const int* pids) = 0;
79 virtual void multicast(
int num,
const int* targets,
83 virtual void multicast(
int num,
const int* targets,
103 virtual void receive(
const int source,
105 const double timeout) = 0;
121 const bool debug) = 0;
125 const bool debug) = 0;
virtual int register_process(USER_initialize *user_init)=0
A process can register (receive its process id) with the message passing environment.
virtual int num_procs()
Return the number of processes.
virtual void send(const int target, const BCP_message_tag tag)=0
Send an empty message (message tag only) to the process given by the frist argument.
virtual int start_process(const BCP_string &exe, const bool debug)=0
Spawn a new process.
virtual ~BCP_message_environment()
Being virtual, the destructor invokes the destructor for the real type of the object being deleted.
This class describes the message buffer used for all processes of BCP.
This is an abstract base class that describes the message passing environment.
This class is an abstract base class for the initializer class the user has to provide.
BCP_message_tag
This enumerative constant describes the message tags different processes of BCP understand.
virtual void receive(const int source, const BCP_message_tag tag, BCP_buffer &buf, const double timeout)=0
Blocking receive with timeout.
virtual int parent_process()=0
Return the process id of the parent process (the process that spawned the currnet process.
virtual bool start_processes(const BCP_string &exe, const int proc_num, const bool debug, int *ids)=0
Spawn proc_num processes, all with the same executable.
This class is a very simple impelementation of a constant length string.
virtual bool alive(const int pid)=0
Test if the process given by the argument is alive or not.
virtual void multicast(int num, const int *targets, const BCP_message_tag tag)=0
Send an empty message (message tag only) to all the processes in the process array.
virtual bool probe(const int source, const BCP_message_tag tag)=0
Probe if there are any messages from the given process with the given message tag.