LAMA
|
00001 00033 #ifndef LAMA_DISTRIBUTED_HPP_ 00034 #define LAMA_DISTRIBUTED_HPP_ 00035 00036 // for dll_import 00037 #include <lama/config.hpp> 00038 00039 // others 00040 #include <lama/distribution/Distribution.hpp> 00041 00042 namespace lama 00043 { 00044 00051 class LAMA_DLL_IMPORTEXPORT Distributed 00052 { 00053 public: 00054 00055 Distributed(DistributionPtr); 00056 00057 Distributed(const Distributed& other); 00058 00059 virtual ~Distributed(); 00060 00061 inline const Distribution& getDistribution() const; 00062 00063 inline DistributionPtr getDistributionPtr() const; 00064 00065 protected: 00066 00067 void swap( Distributed& other ); 00068 00069 void setDistributionPtr( DistributionPtr distributionPtr ); 00070 00071 private: 00072 00073 DistributionPtr mDistribution; // distribution of obj, never NULL 00074 00075 Distributed(); // disable default constructor 00076 00077 }; 00078 00079 const Distribution& Distributed::getDistribution() const 00080 { 00081 return *mDistribution; 00082 } 00083 00084 DistributionPtr Distributed::getDistributionPtr() const 00085 { 00086 return mDistribution; 00087 } 00088 00089 } 00090 00091 #endif // LAMA_DISTRIBUTED_HPP_