otltype.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.15 $
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 _OTLTYPE_H_
00031 #define _OTLTYPE_H_
00032 
00033 // ************************************************************************
00034 // included header files
00035 // + standard includes
00036 
00037 // + libraries
00038 #include <otl.h>
00039 
00040 // + local headers
00041 #include "osbtype.h"
00042 
00043 // ************************************************************************
00044 // namespace extensions
00045 namespace OSB_DB {
00046 
00047 // ************************************************************************
00048 // class definitions
00058     class OtlType : public otl_value<long> {
00059     public:
00061 
00062 
00063         OtlType() : otl_value<long>() {}
00065         OtlType(const otl_null& rhs) : otl_value<long>(rhs) {}
00067 
00072         template <typename T, int ST>
00073         explicit OtlType(const OSB_LIB::TypeId<T, ST>& rhs)
00074           : otl_value<long>(rhs.toLong())
00075         {
00076             if (rhs.notSet()) set_null();
00077         }
00097         template <typename T, int ST>
00098         OSB_LIB::TypeId<T, ST> mkType(OSB_LIB::TypeId<T, ST>& dest) const
00099         {
00100             if (is_null()) dest = OSB_LIB::TypeId<T, ST>();
00101             else           dest = OSB_LIB::TypeId<T, ST>(v);
00102             return dest;
00103         }
00104     };                                  // class OtlType
00105 }                                       // namespace OSB_DB
00106 #endif                                  // #ifndef _OTLTYPE_H_
00107 

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