LAMA
/home/brandes/workspace/LAMA/src/lama/Distributed.hpp
Go to the documentation of this file.
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_