oaglobal.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.13.2.1 $
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 _OAGLOBAL_H_
00031 #define _OAGLOBAL_H_
00032 
00033 // ************************************************************************
00034 // included header files
00035 // + standard includes
00036 
00037 // + local headers
00038 #include <modules.h>
00039 #include <namelist.h>
00040 #include <osbid.h>
00041 
00042 // + class declarations
00043 namespace OSB_LIB {
00044     class OsbUser;
00045     class Network;
00046     class NetworkElement;
00047 }
00048 
00049 namespace OSB_DB {
00050     class Session;
00051 }
00052 
00053 // ************************************************************************
00054 // class definitions
00063     class OaGlobals {
00064     private:
00066         OaGlobals();
00067     public:
00069         typedef OSB_LIB::Id<OSB_LIB::Network> NetworkId;
00071         typedef OSB_LIB::Id2<OSB_LIB::NetworkElement> NwElementId;
00072 
00074         typedef OSB_LIB::NameList<NetworkId> NetworkInfo;
00076         typedef OSB_LIB::NameList<NwElementId> NwElementInfo;
00077 
00078     public:
00080         static bool waitDb();
00082         static bool noWaitDb();
00084         static const NetworkInfo& networkInfo();
00086         static const NwElementInfo& nwElementInfo();
00087 
00088     public:
00094         static const OSB_LIB::Module& getModule(
00095             const OSB_LIB::ModuleId m
00096         );
00102         static const std::string getModuleName(
00103             const OSB_LIB::ModuleId module
00104         );
00105 
00106     public:
00108         static void readNetworkInfo();
00109 
00110     public:
00111         // The OSB GUI user.
00112         static OSB_LIB::OsbUser guiUser_;
00113         // The main database session.
00114         static OSB_DB::Session session_;
00116         static bool waitDb_;
00117 
00119         static bool nwInfoRead_;
00121         static NetworkInfo networkInfo_;
00123         static NwElementInfo nwElementInfo_;
00124     };                                  // class OaGlobals
00125 #endif                                  // #ifndef _OAGLOBAL_H_

Generated on Sat Sep 2 14:17:36 2006 for OSB Library by  doxygen 1.4.7