00001 // OSB library ********************************************* -*- C++ -*- 00009 /* 00010 AUTHOR(S): Venkatesan (vn) 00011 00012 RCS information 00013 $Name: OSB_060808 $ 00014 $Revision: 1.8 $ 00015 00016 License 00017 OSB rating and billing library for communication networks 00018 Copyright (C) 2004, 2005, 2006 OSB systems 00019 00020 This file may be distributed and/or modify under the terms of the 00021 GNU General Public License (GPL) as published by the Free Software 00022 Foundation which is provided in the file LICENSE.GPL included in the 00023 packaging of this file. 00024 00025 The file is distributed in the hope that it will be useful, but WITHOUT 00026 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00027 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00028 for more details. 00029 00030 Holders of a OSB Commercial License may use this file under the terms 00031 and conditions of this commercial license. 00032 */ 00033 #ifndef _CDRPOSTPROCESSOR_H_ 00034 #define _CDRPOSTPROCESSOR_H_ 00035 00036 // ********************************************************************* 00037 // included header files 00038 // + standard includes 00039 00040 // + local headers 00041 #include "cdr.h" 00042 00043 // ************************************************************************ 00044 // namespace extensions 00045 namespace OSB_LIB { 00046 00047 // ********************************************************************* 00048 // type definitions 00049 class CdrPostProcessor; 00050 00051 // ********************************************************************* 00052 // class definitions 00059 class CdrPostProcessor { 00060 public: 00062 enum ProcessStatus { 00063 psUnknown = 0, // Status Unknown. 00064 psSuccess, // Successfully processed. 00065 psError, // Error cdr. 00066 psFilter // Filter cdr. 00067 }; 00068 public: 00070 virtual ~CdrPostProcessor(); 00074 virtual void startTransaction(); 00081 virtual ProcessStatus processCdr(Cdr& cdr); 00087 virtual void stopTransaction(OSB_DB::Session& session); 00088 }; 00089 } // namespace OSB_LIB 00090 #endif // #ifndef _CDRPOSTPROCESSOR_H_