crabmeat 1.0
Loading...
Searching...
No Matches
io-dcomm.h
1
9
10#ifndef CBM_IO_DCOMM_H_
11#define CBM_IO_DCOMM_H_
12
13#include "crabmeat-common.h"
14
15#include "io/sink-handle.h"
16
17#include "time/cbm_time.h"
18#include "cpl/cbm_cpl.h"
19
20#include <vector>
21
22namespace ldndc {
23
24 class input_class_client_base_t;
25 class input_class_srv_base_t;
26}
27
28namespace cbm {
29
30class project_t;
31class work_dispatcher_t;
32
33class kspatial_t;
34class ktemporal_t;
35class CBM_API io_dcomm_t : public cbm::client_object_t
36{
37 LDNDC_CLIENT_OBJECT(io_dcomm_t)
38 public:
39 io_dcomm_t();
40 ~io_dcomm_t();
41 private:
42 /* hide */
43 io_dcomm_t( io_dcomm_t const &);
44 io_dcomm_t & operator=( io_dcomm_t const &);
45
46 public:
50 lid_t const & open_project();
56 lerr_t set_project( cbm::project_t *);
57
58 lerr_t initialize_dispatcher(
59 cbm::work_dispatcher_t * /*work dispatcher*/);
60
61 /*** input stream interface ***/
66 lerr_t reset_io( cbm::source_descriptor_t const *,
67 char const * /*type*/);
72 lerr_t reset_io();
73
78 lerr_t update_io( cbm::source_descriptor_t const *,
79 char const * /*type*/);
84 lerr_t update_io();
89 lerr_t commit_io();
90
91 lid_t get_source_descriptor(
92 cbm::source_descriptor_t * /*buffer*/,
93 cbm::source_descriptor_t const * /*kernel info*/,
94 char const * /*type*/) const;
95
96 ldndc::input_class_client_base_t * new_input_class(
97 char const * /*type*/, cbm::source_descriptor_t const *);
103 void delete_input_class(
104 ldndc::input_class_client_base_t const *);
105
106 ldndc::input_class_srv_base_t * fetch_input(
107 char const * _type,
108 cbm::source_descriptor_t const *);
109 ldndc::input_class_srv_base_t const * fetch_input(
110 char const * _type,
111 cbm::source_descriptor_t const *) const;
112
119 std::vector< cbm::source_descriptor_t >
120 object_id_list( char const * /*type*/,
121 cbm::work_dispatcher_t * = NULL);
129 std::vector< cbm::source_descriptor_t > request_region(
130 cbm::work_dispatcher_t * = NULL);
131
132 public:
133 /*** output stream interface ***/
134 ldndc::sink_handle_t sink_handle_acquire(
135 cbm::source_descriptor_t const *, char const * /*type*/,
136 char const * /*sink identifier*/, int /*sink index*/);
137 lerr_t sink_handle_release( ldndc::sink_handle_t *);
138
139 private:
140 cbm::project_t * m_project; /*owner*/
141
142 public:
143 lerr_t set_spatialcontroller( cbm::kspatial_t *);
144 cbm::kspatial_t * get_spatialcontroller();
145 private: cbm::kspatial_t * m_kspatial; /* not owner */
146
147 public:
148 lerr_t set_temporalcontroller( cbm::ktemporal_t *);
149 cbm::ktemporal_t * get_temporalcontroller();
150 private: cbm::ktemporal_t * m_ktemporal; /* not owner */
151};
152
153} /* namespace cbm */
154
155#endif /* !CBM_IO_DCOMM_H_ */
156
The "Service Registry" holds information about available services (e.g., models, readers,...
Definition Lresources.h:51
declare common types related to air chemistry input
Definition airchemistrytypes.cpp:9