e164resource_i.h

Go to the documentation of this file.
00001 // OSB library ************************************************ -*- C++ -*-
00006 /*
00007   AUTHOR(S): Stephan Broennimann (vb)
00008 
00009   RCS information
00010    $Name: OSB_060808 $
00011    $Revision: 1.9 $
00012 
00013   License
00014    OSB rating and billing library for communication networks
00015    Copyright (C) 2004, 2005, 2006  OSB systems
00016 
00017    This file may be distributed and/or modify under the terms of the
00018    GNU General Public License (GPL) as published by the Free Software
00019    Foundation which is provided in the file LICENSE.GPL included in the
00020    packaging of this file.
00021 
00022    The file is distributed in the hope that it will be useful, but WITHOUT
00023    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00024    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00025    for more details.
00026 
00027    Holders of a OSB Commercial License may use this file under the terms
00028    and conditions of this commercial license.
00029  */
00030 #ifndef _E164RESOURCE_I_H_
00031 #define _E164RESOURCE_I_H_
00032 
00033 // ************************************************************************
00034 // included header files
00035 // + standard includes
00036 
00037 // + libraries
00038 
00039 // + local headers
00040 #include "e164resourceS.h"
00041 #include "resource_i.h"
00042 
00043 // + class declarations
00044 
00045 // ************************************************************************
00046 // namespace extensions
00047 namespace OSB_CORBA {
00048 
00049 // ************************************************************************
00050 // forward declarations
00051 
00052 // ************************************************************************
00053 // type definitions
00054     using corba::common::Date;
00055     using CORBA::Boolean;
00056 
00057 // ************************************************************************
00058 // class definitions
00059 
00063     class E164Resource_i :
00064         public virtual POA_corba::res::E164Resource,
00065         public virtual Resource_i
00066     {
00067     public:
00069         static const std::string IFC;
00070 
00072         E164Resource_i(
00073                   NetworkManager_i&       nmgri,
00074             const OSB_LIB::Resource::Oid& oid
00075         );
00076 
00078         virtual ~E164Resource_i();
00079 
00080     public:
00082 
00083         Utf8String* phoneNumber()
00084             throw (CORBA::SystemException, OsbCorbaException);
00085 
00086         E164ResourceWriter* getWriter()
00087             throw (CORBA::SystemException, OsbCorbaException);
00089 
00090     protected:
00092         typedef OSB_LIB::ResourceLists::E164List E164List;
00093 
00095         virtual E164List::Rg lockE164() const;
00096 
00097         // documentation from base class
00098         ReadGuard lock() const;
00099     };                                  // class E164Resource_i
00100 
00105     class E164ResourceWriter_i :
00106         public POA_corba::res::E164ResourceWriter,
00107         public E164Resource_i,
00108         public ResourceWriter_i
00109     {
00110     public:
00112         static const std::string IFC;
00113 
00115         E164ResourceWriter_i(
00116                   NetworkManager_i&      nmgri,
00117             const OSB_LIB::E164Resource& e164
00118         );
00119 
00120     private:
00122         E164ResourceWriter_i(const E164ResourceWriter_i&);
00124         E164ResourceWriter_i& operator=(const E164ResourceWriter_i&);
00125 
00126     protected:
00133         E164List::Rg lockE164() const;
00134 
00135         // documentation from base
00136         OSB_LIB::Resource& resource();
00137         // documentation from base
00138         bool writeToList(bool isNew) const;
00139 
00140     private:
00142         OSB_LIB::E164Resource e164_;
00143     };
00144 }                                       // namespace OSB_CORBA
00145 
00146 // ************************************************************************
00147 // inline definitions
00148 namespace OSB_CORBA {
00149 }                                       // namespace OSB_CORBA
00150 #endif                                  // #ifndef _E164RESOURCE_I_H_

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