Motr  M0
domain.h
Go to the documentation of this file.
1 /* -*- C -*- */
2 /*
3  * Copyright (c) 2013-2020 Seagate Technology LLC and/or its Affiliates
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * For any questions about this software or licensing,
18  * please email opensource@seagate.com or cortx-questions@seagate.com.
19  *
20  */
21 
22 #pragma once
23 
24 #ifndef __MOTR___DTM0_DOMAIN_H__
25 #define __MOTR___DTM0_DOMAIN_H__
26 
27 #include "dtm0/log.h" /* m0_dtm0_log */
28 #include "dtm0/pruner.h" /* m0_dtm0_pruner */
29 #include "dtm0/pmach.h" /* m0_dtm0_pmach */
30 #include "dtm0/remach.h" /* m0_dtm0_remach */
31 #include "dtm0/net.h" /* m0_dtm0_net */
32 #include "module/module.h" /* m0_module */
33 
40 /*
41  * DTM0 domain overview
42  * --------------------
43  *
44  * DTM0 domain is a container for DTM0 log, pruner, recovery machine,
45  * persistent machine, network. It serves as an entry point for any
46  * other component that wants to interact with DTM0. For example,
47  * distributed transactions are created within the scope of DTM0 domain.
48  */
49 
56 };
57 
60 };
61 
70  uint64_t dod_magix;
71 };
72 
73 M0_INTERNAL int m0_dtm0_domain_init(struct m0_dtm0_domain *dod,
74  struct m0_dtm0_domain_cfg *dod_cfg);
75 
76 M0_INTERNAL void m0_dtm0_domain_fini(struct m0_dtm0_domain *dod);
77 
78 M0_INTERNAL int
80  struct m0_dtm0_domain_create_cfg *dcc_cfg);
81 
82 M0_INTERNAL void m0_dtm0_domain_destroy(struct m0_dtm0_domain *dod);
83 
84 
85 
86 
88 #endif /* __MOTR___DTM0_DOMAIN_H__ */
89 
90 /*
91  * Local variables:
92  * c-indentation-style: "K&R"
93  * c-basic-offset: 8
94  * tab-width: 8
95  * fill-column: 80
96  * scroll-step: 1
97  * End:
98  */
99 /*
100  * vim: tabstop=8 shiftwidth=8 noexpandtab textwidth=80 nowrap
101  */
struct m0_dtm0_log dod_log
Definition: domain.h:63
struct m0_module dod_module
Definition: domain.h:69
struct m0_dtm0_domain_cfg dod_cfg
Definition: domain.h:68
M0_INTERNAL int m0_dtm0_domain_create(struct m0_dtm0_domain *dod, struct m0_dtm0_domain_create_cfg *dc_cfg)
Definition: domain.c:209
M0_INTERNAL int m0_dtm0_domain_init(struct m0_dtm0_domain *dod, struct m0_dtm0_domain_cfg *dod_cfg)
Definition: domain.c:183
struct m0_dtm0_net dod_net
Definition: domain.h:67
struct m0_dtm0_log_create_cfg dcc_log
Definition: domain.h:59
struct m0_dtm0_pruner dod_pruner
Definition: domain.h:64
M0_INTERNAL void m0_dtm0_domain_destroy(struct m0_dtm0_domain *dod)
Definition: domain.c:215
struct m0_dtm0_net_cfg dodc_net
Definition: domain.h:55
struct m0_dtm0_log_cfg dodc_log
Definition: domain.h:51
struct m0_dtm0_remach_cfg dodc_remach
Definition: domain.h:53
struct m0_dtm0_pmach dod_pmach
Definition: domain.h:66
struct m0_dtm0_pruner_cfg dodc_pruner
Definition: domain.h:52
struct m0_dtm0_remach dod_remach
Definition: domain.h:65
M0_INTERNAL void m0_dtm0_domain_fini(struct m0_dtm0_domain *dod)
Definition: domain.c:203
uint64_t dod_magix
Definition: domain.h:70
struct m0_dtm0_pmach_cfg dodc_pmach
Definition: domain.h:54