osblistmgr.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.12 $
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 _OSBLISTMGR_H_
00031 #define _OSBLISTMGR_H_
00032 
00033 // ************************************************************************
00034 // included header files
00035 // + standard includes
00036 #include <map>
00037 #include <string>
00038 
00039 // + libraries
00040 
00041 // + local headers
00042 
00043 // ************************************************************************
00044 // namespace extensions
00045 namespace OSB_LIB {
00046     class ChargeTraitsList;
00047     class CurrencyBook;
00048     class RoundRuleList;
00049     class Account;
00050     typedef std::map<std::string, Account> AccountList;
00051     class TaxKeyList;
00052     class UnitList;
00053 }
00054 
00055 // ************************************************************************
00056 // namespace extensions
00057 namespace OSB_LIB {
00058 
00059 // ************************************************************************
00060 // class definitions
00093     class ListMgr {
00094     public:
00096         class DelInstance {
00097         public:
00099             ~DelInstance();
00100         };
00102         friend class DelInstance;
00103     private:
00105         ListMgr();
00107         ListMgr(const ListMgr&);
00108     public:
00110         static CurrencyBook& currencyBook();
00112         static RoundRuleList& roundRules();
00114         static AccountList& glAccounts();
00116         static TaxKeyList& taxKeys();
00118         static ChargeTraitsList& ctList();
00120         static UnitList& units();
00121     private:
00123         static void delInstance();
00124     private:
00126         static CurrencyBook* currencyBook_;
00128         static RoundRuleList* roundRules_;
00130         static AccountList* glAccounts_;
00132         static TaxKeyList* taxKeys_;
00134         static ChargeTraitsList* ctList_;
00136         static UnitList* units_;
00137 
00139         static DelInstance delInstance_;
00140     };                                  // class ListMgr
00141 }                                       // namespace OSB_LIB
00142 #endif                                  // #ifndef _OSBLISTMGR_H_

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