00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef _RESOURCEFWD_H_
00031 #define _RESOURCEFWD_H_
00032
00033
00034
00035
00036 #include <string>
00037
00038
00039
00040
00041 #include "osbid.h"
00042
00043
00044 namespace OSB_LIB {
00045 class Network;
00046 class NetworkElement;
00047 }
00048
00049
00050
00051 namespace OSB_LIB {
00052
00053
00054
00055
00056 template<typename R> class ResourceList;
00057
00058
00059
00066 enum ResourceType {
00068 rtUnknown = 0,
00070 rtCallingCard = 2,
00072 rtTrunkResource = 6,
00074 rtAccessNumber = 7,
00076 rtE164 = 8,
00078 rtIp4Address = 9,
00080 rtIpGroup = 10,
00082 rtImsi = 11,
00084 rtInTrunk = 13,
00086 rtOutTrunk = 14
00087 };
00088
00094 typedef std::string ResourceNumber;
00095
00102 struct ResourceKey {
00104 ResourceType type_;
00106 ResourceNumber number_;
00114 Id2<NetworkElement> neId_;
00115 public:
00117 ResourceKey();
00118
00120 ResourceKey(
00121 ResourceType type,
00122 const ResourceNumber& number
00123 );
00124
00126 ResourceKey(
00127 ResourceType type,
00128 const ResourceNumber& number,
00129 const Id<Network>& nwId
00130 );
00131
00136 ResourceKey(
00137 ResourceType type,
00138 const ResourceNumber& number,
00139 const Id2<NetworkElement>& neId
00140 );
00141
00143 inline bool operator<(const ResourceKey& rhs) const;
00145 inline bool operator==(const ResourceKey& rhs) const;
00146 };
00147
00155 ResourceType mkResType(long rt);
00163 long toLong(ResourceType rt);
00164 }
00165
00166
00167
00168 namespace OSB_LIB {
00169
00170
00171
00172 bool ResourceKey::operator<(const ResourceKey& rhs) const
00173 {
00174 if (type_ != rhs.type_) return type_ < rhs.type_;
00175 if (number_ != rhs.number_) return number_ < rhs.number_;
00176 return neId_ < rhs.neId_;
00177 }
00178
00179 bool ResourceKey::operator==(const ResourceKey& rhs) const
00180 {
00181 return type_ == rhs.type_
00182 && number_ == rhs.number_
00183 && neId_ == rhs.neId_;
00184 }
00185 }
00186 #endif // #ifndef _RESOURCEFWD_H_