A set of structs to be received.
![]() | ExceptFDs () returns a reference to the set of file descriptors, that you're expecting to get into an exceptional condition. |
![]() | ExceptFDs () const returns the set of file descriptors, that you're expecting to get into an exceptional condition. |
![]() | FDsReady () const returns true if any file descriptor is ready. |
![]() | ReadFDs () const returns the set of file descriptors, you want to read from. |
![]() | ReadFDs () returns a reference to the set of file descriptors, you want to read from. |
![]() | ReadyExceptFDs () const returns the set of file descriptors, that have an exceptional condition pending. |
![]() | ReadyReadFDs () const returns the set of file descriptors, that are ready to read from. |
![]() | ReadyWriteFDs () const returns the set of file descriptors, that are ready to write to. |
![]() | Receive (PvmTask &From = IgnoreTask) receives a message of one of the types in the set and returns the id of that message and the id of the sender in From. |
![]() | ReceiveFrom (const PvmTaskSet &FromSet, PvmTask &From = IgnoreTask) receives a message of one of the types in the set, but only from one of the tasks given by FromSet, and returns the id of that message and the id of the sender in From. |
![]() | ReceiveFrom (PvmTask From) receives a message of one of the types in the set, but only from the task From. |
![]() | TimedReceive (unsigned long int &Time, PvmTask &From = IgnoreTask) receives a message of one of the types in the set and returns the the id of the sender in From. |
![]() | TimedReceiveFrom (const PvmTaskSet &FromSet, unsigned long int &Time, PvmTask &From = IgnoreTask) receives a message of one of the types in the set, but only from one of the tasks given by FromSet, and returns the id of the sender in From. |
![]() | TimedReceiveFrom (PvmTask From, unsigned long int &Time) receives a message of one of the types in the set, but only from the task From. |
![]() | WriteFDs () returns a reference to the set of file descriptors, you want to write to. |
![]() | WriteFDs () const returns the set of file descriptors, you want to write to. |
![]() | count (PvmStructId What) const returns 1, if an instance with the PvmStructId` is in the set and 0 otherwise. |
![]() | count (const PvmStruct &What) const returns 1, if What (not just any instance with the same PvmStructId as What) is in the set and 0 otherwise. |
![]() | erase (PvmStructId What) erases the potentially contained instance with the PvmStructId What. |
![]() | erase (const PvmStruct &What) erases the potentially contained instance with the same PvmStructId as What. |
![]() | insert (PvmStruct &What) inserts a reference to the instance What into the set. |
![]() | FDSet the type representing a set of file descriptors. |
A set of structs to be received.A PvmStructSet is of course a set of PvmStruct derivations. But in contrast to the classes PvmTaskSet and PvmHostSet it is not derived from the STL-class set. Yet some of the methods are available with the same name as in the STL. You can add a PvmStruct to the PvmStructSet and can remove one from there. If you want to receive messages of, let's say, three different types, then you simply add instances of all those three PvmStruct-derivations to a PvmStructSet and do a Receive*() (syntax and semantic are analogous to those in PvmStruct.Receive*()). Then you get a return value with the id of the received message (as given with PvmSetStructId()) or 0, in case no message has been received (e.g. if it is a timed receive). Now you find the received information in the previously added instance of the corresponding type. So a code-fragment looks like this:
StructA A; // derived from PvmStruct; Id = A_Id; StructB B; // derived from PvmStruct; Id = B_Id; PvmStructSet Awaited; Awaited.insert (A); Awaited.insert (B); while (1) { PvmStructId Id = Awaited.ReceiveFrom (SendingTask); if (Id == A_Id) { cout << A.what_ever_data_is_in_A << endl; } else // now Id must be equal B_Id { cout << B.what_ever_data_is_in_B << endl; } }
Alphabetic index Hierarchy of classes