PaCO++
0.05
|
00001 #ifndef BASIC_DISTRIBUTION_LIBRARY_IS_DEFINED 00002 #define BASIC_DISTRIBUTION_LIBRARY_IS_DEFINED 00003 00004 #include <DistributionLibrairie.h> 00005 #include <stdio.h> 00006 00007 class BasicDistributionLibrary : public DistributionLibrary 00008 { 00009 private: 00010 PaCO::distLoc_t _mode; // ClientSide, ServerSide, CommSide 00011 PaCO::PacoTopology_t _clttopo; 00012 PaCO::PacoTopology_t _srvtopo; 00013 PaCO::PacoGlobalData_t _gd; 00014 00015 // We are waiting for native type to be supported ;( 00016 LocalData_t _ld; 00017 00018 void* _comm; // communicator 00019 00020 Fabrique* _fab; 00021 Abstrait* _darray; 00022 vAbstrait* _vdarray; 00023 int _remaining; // number of messages to yet to be received 00024 public: 00025 // Constructors 00026 BasicDistributionLibrary(Fabrique* f); 00027 BasicDistributionLibrary(Fabrique* f, void* comm); 00028 00029 virtual ~BasicDistributionLibrary(); 00030 00031 // Comm management 00032 void setCommunicator(void* comm); 00033 00034 // Fabric managment 00035 void setFabric(Fabrique* f); 00036 00037 // Reset 00038 void reset(); 00039 00040 // Methods 00041 const PaCO::distLoc_t& getMode() const; 00042 00043 bool setMode(const PaCO::distLoc_t mode); // true if ok 00044 00045 bool setServerConfiguration(const PaCO::PacoTopology_t & stopo); 00046 bool setClientConfiguration(const PaCO::PacoTopology_t & ctopo); 00047 00048 bool setGlobalDataConfiguration(const PaCO::PacoGlobalData_t& gd); 00049 bool setLocalDataConfiguration (const PaCO::PacoLocalData_t& ld); 00050 00052 void computeSend(const void* data, vAbstrait& vdarray, vector<unsigned>& destid); 00053 00055 bool computeReceive(Abstrait* darray); 00056 00058 Abstrait* getResult() const ; 00059 }; 00060 00061 00062 #endif