e164part_i.h

Go to the documentation of this file.
00001 // OSB library ************************************************ -*- C++ -*-
00007 /*
00008   AUTHOR(S): Stephan Broennimann (vb)
00009 
00010   RCS information
00011    $Name: OSB_060808 $
00012    $Revision: 1.4 $
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 _E164PART_I_H_
00032 #define _E164PART_I_H_
00033 
00034 // ************************************************************************
00035 // included header files
00036 // + standard includes
00037 
00038 // + libraries
00039 #include <e164item.h>
00040 
00041 // + local headers
00042 #include "productpart_i.h"
00043 
00044 // + class declarations
00045 
00046 // ************************************************************************
00047 // namespace extensions
00048 namespace OSB_CORBA {
00049 
00050 // ************************************************************************
00051 // forward declarations
00052 
00053 // ************************************************************************
00054 // type definitions
00055 
00056 // ************************************************************************
00057 // class definitions
00058 
00059     // *****************************************************************
00060     // class E164PartBase_i
00064     class E164PartBase_i :
00065         public virtual POA_corba::pcat::pp::E164Part,
00066         public virtual ProductPartBase_i
00067     {
00068 
00069     private:
00075         virtual const OSB_LIB::E164Item* getE164Item(
00076             const ProductPartBase_i::NodeRg& guard,
00077             const std::string&               ifc,
00078             const std::string&               module
00079         ) const throw (OsbCorbaException) = 0;
00080     };                                  // class E164PartBase_i
00081 
00082     // *****************************************************************
00083     // class E164Part_i
00089     class E164Part_i :
00090         public virtual E164PartBase_i,
00091         public virtual ProductPart_i
00092     {
00093     public:
00094 
00096         static const std::string IFC;
00097 
00105         E164Part_i(
00106                   Product_i& pd,
00107             const NodeOid&   pnId,
00108             const ItemOid&   piId
00109         );
00110 
00111     private:
00123         const OSB_LIB::E164Item* getE164Item(
00124             const ProductPartBase_i::NodeRg& guard,
00125             const std::string&               ifc,
00126             const std::string&               module
00127         ) const throw (OsbCorbaException);
00128 
00130         const std::string& ifc() const;
00131     };                                  // class E164Part_i
00132 
00133     // *****************************************************************
00134     // class E164PartWriter_i
00140     class E164PartWriter_i :
00141         public virtual POA_corba::pcat::pp::E164PartWriter,
00142         public virtual ProductPartWriter_i,
00143         public virtual E164PartBase_i
00144     {
00145     public:
00146 
00148         static const std::string IFC;
00149 
00160         E164PartWriter_i(
00161             ProductWriter_i&      prod,
00162             OSB_LIB::ProductNode& node,
00163             OSB_LIB::E164Item&    item
00164         );
00165 
00166     private:
00168         OSB_LIB::E164Item& e164item_;
00169 
00170     private:                        // required by E164PartBase_i
00172         const std::string& ifc() const;
00173 
00174     private:                        // required by ProductPartWriter_i
00176         OSB_LIB::ProductItem* pItem();
00178         const OSB_LIB::ProductItem* pItem() const;
00179 
00181         const OSB_LIB::E164Item* getE164Item(
00182             const ProductPartBase_i::NodeRg& guard,
00183             const std::string&               ifc,
00184             const std::string&               module
00185         ) const throw (OsbCorbaException);
00186     };                                  // class E164PartWriter_i
00187 }                                       // namespace OSB_CORBA
00188 
00189 // ************************************************************************
00190 // inline definitions
00191 namespace OSB_CORBA {
00192 }                                       // namespace OSB_CORBA
00193 #endif                                  // #ifndef _E164PART_I_H_

Generated on Sat Sep 2 14:25:51 2006 for OSB Library by  doxygen 1.4.7