CallbackRegistry.H
Go to the documentation of this file.
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.
10 
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.
15 
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.
20 
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/>.
23 
24 Class
25  Foam::CallbackRegistry
26 
27 Description
28  Base class with which callbacks are registered.
29 
30  Derive from this class and extend by adding the appropriate callback
31  functions that loop and call the callback functions for each entry.
32 
33 SourceFiles
34  CallbackRegistry.C
35 
36 \*---------------------------------------------------------------------------*/
37 
38 #ifndef CallbackRegistry_H
39 #define CallbackRegistry_H
40 
41 #include "UIDLList.H"
42 #include "className.H"
43 
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 
46 namespace Foam
47 {
48 
49 // Forward declaration of classes
50 
51 template<class CallbackType>
52 class Callback;
53 
54 
55 /*---------------------------------------------------------------------------*\
56  Class CallbackRegistry Declaration
57 \*---------------------------------------------------------------------------*/
58 
59 TemplateName(CallbackRegistry);
60 
61 
62 /*---------------------------------------------------------------------------*\
63  Class CallbackRegistry Declaration
64 \*---------------------------------------------------------------------------*/
65 
66 template<class CallbackType>
67 class CallbackRegistry
68 :
69  public CallbackRegistryName,
70  public UIDLList<CallbackType>
71 {
72  // Private Member Functions
73 
74  //- Disallow default bitwise copy construct
76 
77  //- Disallow default bitwise assignment
78  void operator=(const CallbackRegistry&);
79 
80 
81 public:
82 
83  // Constructors
84 
85  //- Construct null
87 
88 
89  //- Destructor
90  virtual ~CallbackRegistry();
91 };
92 
93 
94 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
95 
96 } // End namespace Foam
97 
98 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
99 
100 #ifdef NoRepository
101 # include "CallbackRegistry.C"
102 #endif
103 
104 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
105 
106 #endif
107 
108 // ************************************************************************* //
Intrusive doubly-linked list.
Definition: UIDLList.H:47
Namespace for OpenFOAM.
Macro definitions for declaring ClassName(), NamespaceName(), etc.
CallbackRegistry()
Construct null.
virtual ~CallbackRegistry()
Destructor.
TemplateName(blendedSchemeBase)
Base class with which callbacks are registered.