The natural way to handle this in C++ would be to have
(arguments omitted to save typing !)
class MPI {
public:
class Handle {
//
public:
virtual attr_put();
virtual attr_get();
virtual name_put();
virtual name_get();
};
class Communicator : public Handle {
// Communicator specific functions
};
class Datatype : public Handle {
// Datatype specific functions
};
class Request : public Handle {
// Request specific functions
};
class File : public Handle {
// File specific operations
};
};
However our current C++ binding is flat.
So,
1) Do we want to do this ?
a) If we do, how does that affect layering on top of the C
implementation ?
2) How should we handle :-) this if we don't do it this way ?
(I assume we need a conversion operator from each of Communicator,
Datatype, Request, File to Handle.)
-- Jim
James Cownie
BBN UK Ltd
Phone : +44 117 9071438
E-Mail: jcownie@bbn.com