e164-gw.h

Go to the documentation of this file.
00001 // OSB library ********************************************* -*- C++ -*-
00006 /*
00007   AUTHOR(S): Tang Boon Leong (tbl)
00008 
00009   RCS information
00010    $Name: OSB_060808 $
00011    $Revision: 1.14 $
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 _E164GW_H_
00031 #define _E164GW_H_
00032 
00033 // *********************************************************************
00034 // included header files
00035 // + standard includes
00036 
00037 // + local headers
00038 #include "e164.h"
00039 
00040 // *********************************************************************
00041 // class declarations
00042 namespace OSB_DB {
00043     class Session;
00044 }
00045 
00046 // ************************************************************************
00047 // namespace extensions
00048 namespace OSB_DB {
00049 
00050 // *********************************************************************
00051 // class definitions
00052 
00053     // *****************************************************************
00054     // struct E164Gw
00058     struct E164Gw {
00060         friend class OSB_LIB::E164;
00061 
00072         long fetch(
00073             const Session&        session,
00074                   OSB_LIB::E164s& e164s
00075         );
00076 
00089         bool fetch(
00090             const Session&       session,
00091                   OSB_LIB::E164& e164
00092         );
00093 
00094     private:
00110         bool insE164(
00111             const Session&       session,
00112                   OSB_LIB::E164& e164
00113         );
00114 
00133         bool delE164(
00134             const Session&       session,
00135                   OSB_LIB::E164& e164
00136         );
00137 
00157         bool updE164(
00158             const Session&       session,
00159                   OSB_LIB::E164& e164
00160         );
00161 
00175         OSB_LIB::ObjectStatus checkObjVs(
00176             const Session&       session,
00177             const OSB_LIB::E164& e164
00178         );
00179 
00194         OSB_LIB::CfgStatus getStatus(
00195             const Session&            session,
00196             const OSB_LIB::E164::Oid& oid
00197         );
00198 
00208         void updStatus(
00209             const Session&       session,
00210                   OSB_LIB::E164& e164
00211         );
00212 
00226         bool bothDateInFuture(
00227             const Session&            session,
00228             const OSB_LIB::E164::Oid& oid
00229         );
00230 
00246         bool hasReleasedCp(
00247             const Session&            session,
00248             const OSB_LIB::E164::Oid& oid
00249         );
00250 
00262         bool noDateConflict(
00263             const Session&            session,
00264             const OSB_LIB::E164::Oid& oid
00265         );
00266 
00278         bool gracePeriodExpired(
00279             const Session&            session,
00280             const OSB_LIB::E164::Oid& oid
00281         );
00282 
00295         bool hasOverlapE164(
00296             const Session&            session,
00297             const OSB_LIB::E164::Oid& oid
00298         );
00299     };                                  // struct E164Gw
00300 
00301 // *********************************************************************
00302 // inline definitions
00303 
00304 }                                       // namespace OSB_DB
00305 #endif                                  // #ifndef _E164GW_H_

Generated on Sat Sep 2 14:06:32 2006 for OSB Library by  doxygen 1.4.7