ENH: autoLayerDriver: better layering information message
[OpenFOAM-2.0.x.git] / src / OpenFOAM / db / CallbackRegistry / CallbackRegistry.H
blob71777c2c09b69040a7b39566632d6a613bd1b925
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by
13     the Free Software Foundation, either version 3 of the License, or
14     (at your option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::CallbackRegistry
27 Description
28     Base class with which callbacks are registered.
30     Derive from this class and extend by adding the appropriate callback
31     functions that loop and call the callback functions for each entry.
33 SourceFiles
34     CallbackRegistry.C
36 \*---------------------------------------------------------------------------*/
38 #ifndef CallbackRegistry_H
39 #define CallbackRegistry_H
41 #include "UIDLList.H"
42 #include "className.H"
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 namespace Foam
49 // Forward declaration of classes
51 template<class CallbackType>
52 class Callback;
55 /*---------------------------------------------------------------------------*\
56                        Class CallbackRegistry Declaration
57 \*---------------------------------------------------------------------------*/
59 TemplateName(CallbackRegistry);
62 /*---------------------------------------------------------------------------*\
63                        Class CallbackRegistry Declaration
64 \*---------------------------------------------------------------------------*/
66 template<class CallbackType>
67 class CallbackRegistry
69     public CallbackRegistryName,
70     public UIDLList<CallbackType>
72     // Private Member Functions
74         //- Disallow default bitwise copy construct
75         CallbackRegistry(const CallbackRegistry&);
77         //- Disallow default bitwise assignment
78         void operator=(const CallbackRegistry&);
81 public:
83     // Constructors
85         //- Construct null
86         CallbackRegistry();
89     //- Destructor
90     virtual ~CallbackRegistry();
94 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
96 } // End namespace Foam
98 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
100 #ifdef NoRepository
101 #   include "CallbackRegistry.C"
102 #endif
104 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
106 #endif
108 // ************************************************************************* //