Cloudy
Spectral Synthesis Code for Astrophysics
Loading...
Searching...
No Matches
module.h
Go to the documentation of this file.
1/* This file is part of Cloudy and is copyright (C)1978-2025 by Gary J. Ferland and
2 * others. For conditions of distribution and use see copyright notice in license.txt */
3
4#ifndef MODULE_H_
5#define MODULE_H_
6
7class module;
8class t_warnings;
9
10class module_list : public Singleton<module_list>
11{
12 friend class Singleton<module_list>;
13public:
14 vector<module *> m_l;
15protected:
17public:
18 void use(module *m)
19 {
20 m_l.push_back(m);
21 }
22 void zero() const;
23 void comment(t_warnings&) const;
24};
25
26class module
27{
28public:
30 {
31 module_list::Inst().use(this);
32 }
33 virtual void zero() = 0;
34 virtual void comment(t_warnings&) = 0;
35 virtual const char* chName() const = 0;
36 virtual ~module() {}
37};
38
39#endif /* MODULE_ */
Definition cddefines.h:214
static module_list & Inst()
Definition cddefines.h:216
void zero() const
Definition module.cpp:8
void use(module *m)
Definition module.h:18
void comment(t_warnings &) const
Definition module.cpp:16
vector< module * > m_l
Definition module.h:14
module_list()
Definition module.h:16
Definition module.h:27
virtual ~module()
Definition module.h:36
module()
Definition module.h:29
virtual void comment(t_warnings &)=0
virtual void zero()=0
virtual const char * chName() const =0
Definition warnings.h:11