00001 // OSB library ************************************************ -*- C++ -*- 00007 /* 00008 AUTHOR(S): Stephan Broennimann (vb) 00009 00010 RCS information 00011 $Name: OSB_060808 $ 00012 $Revision: 1.7 $ 00013 00014 License 00015 OSB rating and billing library for communication networks 00016 Copyright (C) 2004, 2005, 2006 OSB systems 00017 00018 This file may be distributed and/or modify under the terms of the 00019 GNU General Public License (GPL) as published by the Free Software 00020 Foundation which is provided in the file LICENSE.GPL included in the 00021 packaging of this file. 00022 00023 The file is distributed in the hope that it will be useful, but WITHOUT 00024 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00025 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00026 for more details. 00027 00028 Holders of a OSB Commercial License may use this file under the terms 00029 and conditions of this commercial license. 00030 */ 00031 #ifndef _RATEDPARTY_H_ 00032 #define _RATEDPARTY_H_ 00033 00034 // ************************************************************************ 00035 // included header files 00036 // + standard includes 00037 00038 // + libraries 00039 00040 // + local headers 00041 #include "resourcefwd.h" 00042 #include "osbtype.h" 00043 00044 // + class declarations 00045 namespace OSB_LIB { 00046 class Contract; 00047 class PersProduct; 00048 class TsVersion; 00049 } 00050 00051 // ************************************************************************ 00052 // namespace extensions 00053 namespace OSB_LIB { 00054 00055 // ************************************************************************ 00056 // forward declarations 00057 00058 // ************************************************************************ 00059 // type definitions 00060 00061 // ************************************************************************ 00062 // class definitions 00063 00071 struct RatedParty { 00072 public: 00074 typedef TypeId<RatedParty> Type; 00075 00076 public: 00078 explicit inline RatedParty(const Type& type = Type()); 00079 public: 00081 Type type_; 00090 Id2<TsVersion> tsVersion_; 00092 Id<Contract> contractId_; 00094 Id<PersProduct> persProductId_; 00095 00104 ResourceKey resourceKey_; 00105 00106 public: 00108 void clear(); 00109 }; 00110 } // namespace OSB_LIB 00111 00112 // ************************************************************************ 00113 // inline definitions 00114 namespace OSB_LIB { 00115 inline RatedParty::RatedParty(const Type& type) 00116 : type_(type) 00117 { 00118 // empty 00119 } 00120 } // namespace OSB_LIB 00121 #endif // #ifndef _RATEDPARTY_H_