crabmeat 1.0
Loading...
Searching...
No Matches
kobject.h
1
2#ifndef CBM_KERNEL_OBJECT_H_
3#define CBM_KERNEL_OBJECT_H_
4
5#include "cbm_object.h"
6
7namespace cbm {
8class CBM_API kernel_object_t : public cbm::object_t
9{
10 public:
11 kernel_object_t() : cbm::object_t() {}
12 kernel_object_t( lid_t const & _id) : cbm::object_t( _id) {}
13};
14} /* namespace cbm */
15
16/* kernel objects */
17#define CBM_KERNEL_OBJECT(__type__,__id__) \
18 LDNDC_OBJECT(__type__) \
19 private: static char const * const m_kname; \
20 public: char const * name() const { return this->m_kname; } \
21 private: static char const * const m_ID; \
22 public: char const * ID() const { return this->m_ID; } \
23 private: \
24 static cbm::kernelfactory_t< __type__ > const kernelfactory_##__id__;
25
26#define CBM_KERNEL_OBJECT_DEFN(__ns__,__type__,__id__,__factory_name__,__kname__) \
27 cbm::kernelfactory_t< __ns__::__type__ > const \
28 __ns__::__type__::kernelfactory_##__id__( __factory_name__); \
29 LDNDC_OBJECT_DEFN(__ns__::__type__) \
30 char const * const __ns__::__type__::m_kname = __kname__; \
31 char const * const __ns__::__type__::m_ID = __factory_name__;
32
33#endif /* !CBM_KERNEL_OBJECT_H_ */
34
The "Service Registry" holds information about available services (e.g., models, readers,...
Definition Lresources.h:51