00001 // OSB library ********************************************* -*- C++ -*- 00016 /* 00017 AUTHOR(S): Stephan Broennimann (vb) 00018 00019 RCS information 00020 $Name: OSB_060808 $ 00021 $Revision: 1.13 $ 00022 00023 License 00024 OSB rating and billing library for communication networks 00025 Copyright (C) 2004, 2005, 2006 OSB systems 00026 00027 This file may be distributed and/or modify under the terms of the 00028 GNU General Public License (GPL) as published by the Free Software 00029 Foundation which is provided in the file LICENSE.GPL included in the 00030 packaging of this file. 00031 00032 The file is distributed in the hope that it will be useful, but WITHOUT 00033 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00034 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00035 for more details. 00036 00037 Holders of a OSB Commercial License may use this file under the terms 00038 and conditions of this commercial license. 00039 */ 00040 #ifndef _PRODUCTITEMFACTORY_H_ 00041 #define _PRODUCTITEMFACTORY_H_ 00042 00043 // ********************************************************************* 00044 // included header files 00045 // + standard includes 00046 #include <memory> 00047 00048 // + local headers 00049 #include "productitem.h" 00050 #include "persitem.h" 00051 00052 // ********************************************************************* 00053 // namespace extensions 00054 namespace OSB_LIB { 00055 00056 // ********************************************************************* 00057 // class definitions 00058 00059 // ***************************************************************** 00060 // class ProductItemFactory 00071 class ProductItemFactory { 00072 public: 00085 static ProductItem::AutoPtr create( 00086 ProductItem::Type type, 00087 const ProductItem::Oid& oid 00088 ); 00089 00106 static PersProductItem::AutoPtr create( 00107 ProductItem::Type type, 00108 const PersProductItem::Oid& oid 00109 ); 00110 00111 private: 00113 ProductItemFactory(); 00115 ProductItemFactory(const ProductItemFactory& rhs); 00116 }; 00117 00118 } // namespace OSB_LIB 00119 #endif // #ifndef _PRODUCTITEMFACTORY_H_