3 #ifndef _BCP_MESSAGE_SINGLE_H
4 #define _BCP_MESSAGE_SINGLE_H
25 void set_arguments(
const int argnum,
const char*
const * args);
39 bool alive(
const int pid);
40 const int*
alive(
int num,
const int* pids);
43 void send(
const int target,
46 void multicast(
int num,
const int* targets,
48 void multicast(
int num,
const int* targets,
53 const double timeout);
BCP_single_environment & operator=(const BCP_single_environment &)
BCP_message_tag
This enumerative constant describes the message tags different processes of BCP understand.
void set_arguments(const int argnum, const char *const *args)
int start_process(const BCP_string &exe, const bool debug)
Spawn a new process.
bool alive(const int pid)
Test if the process given by the argument is alive or not.
int parent_process()
Return the process id of the parent process (the process that spawned the currnet process...
This is an abstract base class that describes the message passing environment.
bool start_processes(const BCP_string &exe, const int proc_num, const bool debug, int *ids)
Spawn proc_num processes, all with the same executable.
This class is a very simple impelementation of a constant length string.
void multicast(int num, const int *targets, const BCP_message_tag tag)
Send an empty message (message tag only) to all the processes in the process array.
bool probe(const int source, const BCP_message_tag tag)
Probe if there are any messages from the given process with the given message tag.
BCP_single_environment(int my_id)
void receive(const int source, const BCP_message_tag tag, BCP_buffer &buf, const double timeout)
Blocking receive with timeout.
This class is an abstract base class for the initializer class the user has to provide.
static std::map< int, BCP_process * > processes
int register_process(USER_initialize *user_init)
A process can register (receive its process id) with the message passing environment.
This class describes the message buffer used for all processes of BCP.
virtual ~BCP_single_environment()
void send(const int target, const BCP_message_tag tag)
Send an empty message (message tag only) to the process given by the frist argument.