FreeFOAM The Cross-Platform CFD Toolkit
Hosted by SourceForge:
Get FreeFOAM at SourceForge.net.
            Fast, secure and Free Open Source software downloads

CallbackRegistry.H

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------------*\
00002   =========                 |
00003   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
00004    \\    /   O peration     |
00005     \\  /    A nd           | Copyright (C) 1991-2010 OpenCFD Ltd.
00006      \\/     M anipulation  |
00007 -------------------------------------------------------------------------------
00008 License
00009     This file is part of OpenFOAM.
00010 
00011     OpenFOAM is free software: you can redistribute it and/or modify it
00012     under the terms of the GNU General Public License as published by
00013     the Free Software Foundation, either version 3 of the License, or
00014     (at your option) any later version.
00015 
00016     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
00017     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00018     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00019     for more details.
00020 
00021     You should have received a copy of the GNU General Public License
00022     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
00023 
00024 Class
00025     Foam::CallbackRegistry
00026 
00027 Description
00028     Base class with which callbacks are registered.
00029 
00030     Derive from this class and extend by adding the appropriate callback
00031     functions that loop and call the callback functions for each entry.
00032 
00033 SourceFiles
00034     CallbackRegistry.C
00035 
00036 \*---------------------------------------------------------------------------*/
00037 
00038 #ifndef CallbackRegistry_H
00039 #define CallbackRegistry_H
00040 
00041 #include <OpenFOAM/UIDLList.H>
00042 #include <OpenFOAM/className.H>
00043 
00044 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00045 
00046 namespace Foam
00047 {
00048 
00049 // Forward declaration of classes
00050 
00051 template<class CallbackType>
00052 class Callback;
00053 
00054 
00055 /*---------------------------------------------------------------------------*\
00056                        Class CallbackRegistry Declaration
00057 \*---------------------------------------------------------------------------*/
00058 
00059 TemplateName(CallbackRegistry);
00060 
00061 
00062 /*---------------------------------------------------------------------------*\
00063                        Class CallbackRegistry Declaration
00064 \*---------------------------------------------------------------------------*/
00065 
00066 template<class CallbackType>
00067 class CallbackRegistry
00068 :
00069     public CallbackRegistryName,
00070     public UIDLList<CallbackType>
00071 {
00072     // Private Member Functions
00073 
00074         //- Disallow default bitwise copy construct
00075         CallbackRegistry(const CallbackRegistry&);
00076 
00077         //- Disallow default bitwise assignment
00078         void operator=(const CallbackRegistry&);
00079 
00080 
00081 public:
00082 
00083     // Constructors
00084 
00085         //- Construct null
00086         CallbackRegistry();
00087 
00088 
00089     // Destructor
00090 
00091         virtual ~CallbackRegistry();
00092 };
00093 
00094 
00095 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00096 
00097 } // End namespace Foam
00098 
00099 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00100 
00101 #ifdef NoRepository
00102 #   include <OpenFOAM/CallbackRegistry.C>
00103 #endif
00104 
00105 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00106 
00107 #endif
00108 
00109 // ************************ vim: set sw=4 sts=4 et: ************************ //
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines