00001
00014 #ifndef _DLR_THREAD_CLIENTID_H_
00015 #define _DLR_THREAD_CLIENTID_H_
00016
00017 #include <dlrCommon/exception.h>
00018
00019 namespace dlr {
00020
00021 namespace thread {
00022
00023
00024 template<class Type> class BroadcastQueue;
00025 template<class Type> class DistributionQueue;
00026
00039 template <class Type>
00040 class ClientID {
00041 friend class BroadcastQueue<Type>;
00042 friend class DistributionQueue<Type>;
00043
00044 public:
00045
00049 ClientID()
00050 : m_count(0), m_idNumber(0), m_index(0) {}
00051
00052
00057 ~ClientID() {}
00058
00059
00060 private:
00061
00067 ClientID(const ClientID&) {
00068 DLR_THROW(LogicException, "ClientID::ClientID()",
00069 "Copying ClientID instances is disallowed.");
00070 }
00071
00072
00078 ClientID&
00079 operator=(const ClientID& source) {
00080 DLR_THROW(LogicException, "ClientID::operator=()",
00081 "Copying ClientID instances is disallowed.");
00082 }
00083
00084 size_t m_count;
00085 size_t m_idNumber;
00086 size_t m_index;
00087 };
00088
00089 }
00090
00091 }
00092
00093 #endif