00001 // OSB library ************************************************ -*- C++ -*- 00014 /* 00015 AUTHOR(S): Stephan Broennimann (vb) 00016 00017 RCS information 00018 $Name: OSB_060808 $ 00019 $Revision: 1.16 $ 00020 00021 License 00022 OSB rating and billing library for communication networks 00023 Copyright (C) 2004, 2005, 2006 OSB systems 00024 00025 This file may be distributed and/or modify under the terms of the 00026 GNU General Public License (GPL) as published by the Free Software 00027 Foundation which is provided in the file LICENSE.GPL included in the 00028 packaging of this file. 00029 00030 The file is distributed in the hope that it will be useful, but WITHOUT 00031 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00032 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00033 for more details. 00034 00035 Holders of a OSB Commercial License may use this file under the terms 00036 and conditions of this commercial license. 00037 */ 00038 #ifndef _NWADDRESSTOCP_H_ 00039 #define _NWADDRESSTOCP_H_ 00040 00041 // ************************************************************************ 00042 // included header files 00043 // + standard includes 00044 00045 // + local headers 00046 #include "cpmapper.h" 00047 00048 // ************************************************************************ 00049 // class declarations 00050 namespace OSB_LIB { 00051 class NwAddress; 00052 } 00053 00054 // ************************************************************************ 00055 // namespace extensions 00056 namespace OSB_LIB { 00057 00058 // ************************************************************************ 00059 // class definitions 00060 00064 class NwAddrToCp { 00065 public: 00079 Id<ConnectionPt> map2Cp( 00080 const NwAddress& nwa, 00081 const DateTime& ts 00082 ); 00083 }; // class NwAddrToCp 00084 00091 class CalledPartyToCp : public CpMapper { 00093 static const CpmType cpmType_ = cpmCalledParty; 00094 public: 00095 // Documentation from base class. 00096 typedef std::auto_ptr<CalledPartyToCp> AutoPtr; 00097 public: 00098 // Documentation from base class. 00099 AutoPtr clone() const; 00100 // Documentation from base class. 00101 Type type() const { return Type(cpmType_); } 00102 00114 virtual Id<ConnectionPt> map2Cp(Cdr& cdr) const; 00115 private: 00116 // Documentation from base class. 00117 virtual CpMapper* clone_() const; 00118 }; // class CalledPartyToCp 00119 00126 class CallingPartyToCp : public CpMapper { 00128 static const CpmType cpmType_ = cpmCallingParty; 00129 public: 00130 // Documentation from base class. 00131 typedef std::auto_ptr<CallingPartyToCp> AutoPtr; 00132 public: 00133 // Documentation from base class. 00134 AutoPtr clone() const; 00135 // Documentation from base class. 00136 Type type() const { return Type(cpmType_); } 00137 00149 virtual Id<ConnectionPt> map2Cp(Cdr& cdr) const; 00150 private: 00151 // Documentation from base class. 00152 virtual CpMapper* clone_() const; 00153 }; // class CallingPartyToCp 00154 00161 class ServedPartyToCp : public CpMapper { 00163 static const CpmType cpmType_ = cpmServedParty; 00164 public: 00165 // Documentation from base class. 00166 typedef std::auto_ptr<ServedPartyToCp> AutoPtr; 00167 public: 00168 // Documentation from base class. 00169 AutoPtr clone() const; 00170 // Documentation from base class. 00171 Type type() const { return Type(cpmType_); } 00172 00184 virtual Id<ConnectionPt> map2Cp(Cdr& cdr) const; 00185 private: 00186 // Documentation from base class. 00187 virtual CpMapper* clone_() const; 00188 }; // class ServedPartyToCp 00189 } // namespace OSB_LIB 00190 #endif // #ifndef _NWADDRESSTOCP_H_