LandscapeDNDC 1.37.0
Loading...
Searching...
No Matches
eventtypes.h
1
9
10#ifndef LDNDC_INPUT_EVENT_TYPES_H_
11#define LDNDC_INPUT_EVENT_TYPES_H_
12
13#include "crabmeat-common.h"
14#include "event/events/eventbase.h"
15
16#include "string/cbm_string.h"
17#include "time/cbm_time.h"
18
19namespace ldndc{ namespace event
20{
21#include "event.h.inc"
22
23typedef uintptr_t reader_eventhandle_t;
24
25struct CBM_API event_info_t
26{
27 event_info_t( ldndc::event::event_type_e _type = ldndc::event::EVENT_NONE)
28 : type( _type), t_exec_s( std::string( "")), r_data( 0)
29 {}
30
32 ldndc::event::event_type_e type;
33
35 std::string t_exec_s;
36
38 union
39 {
40 reader_eventhandle_t r_data;
41 Event * event;
42 };
43};
44
55struct event_handle_t
56{
57
58 event_handle_t()
59 : event( NULL),
60 t_exec( 0),
61 r( 1), R( 1)
62 {
63 }
64
65 event_handle_t(
66 Event const * _event,
67 ltime_t const & _t_exec_l,
68 ltime_t::td_scalar_t _r = 1)
69 : event( _event),
70 tspan_exec( _t_exec_l),
71 t_exec( _t_exec_l.from().seconds_since_epoch()),
72 r( _r), R( _r)
73 { }
74
75 /* pointer to event properties ( _not_ owner) */
76 Event const * event;
77 /* event type */
78 inline
79 ldndc::event::event_type_e type()
80 const
81 {
82 return ( this->event) ? this->event->event_type() : ldndc::event::EVENT_NONE;
83 }
84 char const * name()
85 const
86 {
87 if ( this->event)
88 {
89 return ldndc::event::EVENT_NAMES[this->type()];
90 }
91 return invalid_str;
92 }
93
94 /* exec timespan */
95 ltime_t tspan_exec;
96 /* exec timestep offset */
97 ltime_t::td_scalar_t t_exec;
98 /* repeat counter (decremented each time event is dispatched) */
99 ltime_t::td_scalar_t r;
100 /* repeat counter (not modified) */
101 ltime_t::td_scalar_t R;
102};
103
104}}
105
106#endif /* !LDNDC_INPUT_EVENT_TYPES_H_ */
107
Spatially explicit groundwater model.
Definition airchemistryput.h:15