10#ifndef MoBiLE_STATE_H_
11#define MoBiLE_STATE_H_
14#include "state/mbe_substates.h"
19class LDNDC_API MoBiLE_State :
public cbm::object_t
21 MOBILE_OBJECT(MoBiLE_State)
26 lerr_t initialize( cbm::io_kcomm_t *);
29 double get_fh2o( ldndc::MoBiLE_Plant
const * ,
36 double get_fh2o_sl( substate_watercycle_t
const * ,
42 MoBiLE_PlantVegetation vegetation;
51 {
return static_cast< _S *
>( substates_[_S::substate_type]); }
57 _S & get_substate_ref()
58 {
return *get_substate< _S >(); }
65 _S
const * get_substate()
const
66 {
return const_cast< MoBiLE_State *
>(
this)->get_substate< _S >(); }
72 _S
const & get_substate_ref()
const
73 {
return *
const_cast< MoBiLE_State *
>(
this)->get_substate< _S >(); }
75 MoBiLE_Substate * get_substate( substate_type_e);
76 MoBiLE_Substate
const * get_substate( substate_type_e)
const;
78 MoBiLE_Substate * get_substate(
char const * );
79 MoBiLE_Substate
const * get_substate(
char const * )
const;
86 size_t full_substate_cnt()
const;
91 size_t substate_cnt()
const;
97 size_t full_substate_member_cnt()
const;
103 size_t substate_member_cnt()
const;
109 size_t alloc_size()
const;
115 lerr_t resize_entities( cbm::io_kcomm_t *);
117#ifdef _HAVE_SERIALIZE
119 int create_checkpoint( cbm::io_kcomm_t *);
120 int restore_checkpoint( cbm::io_kcomm_t *, ldate_t
const *);
122 int substate_checkpoint_write_context_init(
123 cbm::io_kcomm_t *, substate_checkpoint_write_context_t *);
124 int substate_checkpoint_write_context_deinit(
125 cbm::io_kcomm_t *, substate_checkpoint_write_context_t *);
127 int substate_checkpoint_read_context_init(
128 cbm::io_kcomm_t *, ldate_t
const *,
129 substate_checkpoint_read_context_t *);
130 int substate_checkpoint_read_context_deinit(
131 cbm::io_kcomm_t *, substate_checkpoint_read_context_t *);
133#ifdef _LDNDC_HAVE_ONLINECONTROL
135 virtual int process_request(
136 lreply_t * , lrequest_t
const * );
138 int substate_request_putget(
139 lreply_t * , lrequest_t
const * );
144 cbm::string_t wr_type;
148 MoBiLE_Substate * substates_[SUBSTATE_CNT];
151 MoBiLE_State( MoBiLE_State
const &);
152 MoBiLE_State & operator=( MoBiLE_State
const &);
Spatially explicit groundwater model.
Definition: airchemistryput.h:15