Motr
M0
service.h
Go to the documentation of this file.
1
/* -*- C -*- */
2
/*
3
* Copyright (c) 2012-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
23
#pragma once
24
25
#ifndef __MOTR_NET_TEST_SERVICE_H__
26
#define __MOTR_NET_TEST_SERVICE_H__
27
28
#include "
lib/time.h
"
/* m0_time_t */
29
#include "
lib/thread.h
"
/* m0_thread */
30
31
#include "
net/test/commands.h
"
/* m0_net_test_cmd_ctx */
32
47
struct
m0_net_test_service
;
48
50
struct
m0_net_test_service_cmd_handler
{
52
enum
m0_net_test_cmd_type
ntsch_type
;
54
int
(*
ntsch_handler
)(
void
*
ctx
,
55
const
struct
m0_net_test_cmd
*cmd,
56
struct
m0_net_test_cmd
*
reply
);
57
};
58
60
enum
m0_net_test_service_state
{
62
M0_NET_TEST_SERVICE_UNINITIALIZED
= 0,
64
M0_NET_TEST_SERVICE_READY
,
66
M0_NET_TEST_SERVICE_FINISHED
,
68
M0_NET_TEST_SERVICE_FAILED
,
70
M0_NET_TEST_SERVICE_NR
71
};
72
74
struct
m0_net_test_service_ops
{
76
void
*(*ntso_init)(
struct
m0_net_test_service
*
svc
);
78
void (*
ntso_fini
)(
void
*
ctx
);
80
int
(*
ntso_step
)(
void
*
ctx
);
82
struct
m0_net_test_service_cmd_handler
*
ntso_cmd_handler
;
84
size_t
ntso_cmd_handler_nr
;
85
};
86
88
struct
m0_net_test_service
{
90
void
*
nts_svc_ctx
;
92
struct
m0_net_test_service_ops
*
nts_ops
;
94
enum
m0_net_test_service_state
nts_state
;
96
int
nts_errno
;
97
};
98
123
int
m0_net_test_service_init
(
struct
m0_net_test_service
*
svc
,
124
struct
m0_net_test_service_ops
*
ops
);
125
134
void
m0_net_test_service_fini
(
struct
m0_net_test_service
*
svc
);
135
137
bool
m0_net_test_service_invariant
(
struct
m0_net_test_service
*
svc
);
138
144
int
m0_net_test_service_step
(
struct
m0_net_test_service
*
svc
);
145
151
int
m0_net_test_service_cmd_handle
(
struct
m0_net_test_service
*
svc
,
152
struct
m0_net_test_cmd
*cmd,
153
struct
m0_net_test_cmd
*
reply
);
154
160
void
m0_net_test_service_state_change
(
struct
m0_net_test_service
*
svc
,
161
enum
m0_net_test_service_state
state);
162
167
enum
m0_net_test_service_state
168
m0_net_test_service_state_get
(
struct
m0_net_test_service
*
svc
);
169
174
#endif
/* __MOTR_NET_TEST_SERVICE_H__ */
175
176
/*
177
* Local variables:
178
* c-indentation-style: "K&R"
179
* c-basic-offset: 8
180
* tab-width: 8
181
* fill-column: 79
182
* scroll-step: 1
183
* End:
184
*/
m0_net_test_service_cmd_handler::ntsch_type
enum m0_net_test_cmd_type ntsch_type
Definition:
service.h:52
M0_NET_TEST_SERVICE_UNINITIALIZED
Definition:
service.h:62
M0_NET_TEST_SERVICE_READY
Definition:
service.h:64
m0_net_test_service_cmd_handler
Definition:
service.h:50
error_injection.int
int
Definition:
error_injection.py:50
m0_net_test_service_ops::ntso_step
int(* ntso_step)(void *ctx)
Definition:
service.h:80
m0_net_test_service_state_get
enum m0_net_test_service_state m0_net_test_service_state_get(struct m0_net_test_service *svc)
Definition:
service.c:159
m0_net_test_service_state_change
void m0_net_test_service_state_change(struct m0_net_test_service *svc, enum m0_net_test_service_state state)
Definition:
service.c:147
time.h
m0_net_test_service::nts_ops
struct m0_net_test_service_ops * nts_ops
Definition:
service.h:92
m0_net_test_cmd_type
m0_net_test_cmd_type
Definition:
commands.h:78
m0_net_test_service_init
int m0_net_test_service_init(struct m0_net_test_service *svc, struct m0_net_test_service_ops *ops)
Definition:
service.c:68
m0_net_test_service_ops
Definition:
service.h:74
m0_net_test_service
Definition:
service.h:88
thread.h
m0_net_test_service_ops::ntso_cmd_handler
struct m0_net_test_service_cmd_handler * ntso_cmd_handler
Definition:
service.h:82
commands.h
m0_net_test_service::nts_errno
int nts_errno
Definition:
service.h:96
M0_NET_TEST_SERVICE_FINISHED
Definition:
service.h:66
m0_net_test_service::nts_state
enum m0_net_test_service_state nts_state
Definition:
service.h:94
ctx
static struct fdmi_ctx ctx
Definition:
main.c:80
m0_net_test_service_ops::ntso_cmd_handler_nr
size_t ntso_cmd_handler_nr
Definition:
service.h:84
m0_net_test_service_step
int m0_net_test_service_step(struct m0_net_test_service *svc)
Definition:
service.c:107
m0_net_test_service_cmd_handle
int m0_net_test_service_cmd_handle(struct m0_net_test_service *svc, struct m0_net_test_cmd *cmd, struct m0_net_test_cmd *reply)
Definition:
service.c:121
m0_net_test_service_fini
void m0_net_test_service_fini(struct m0_net_test_service *svc)
Definition:
service.c:88
M0_NET_TEST_SERVICE_NR
Definition:
service.h:70
m0_net_test_service_state
m0_net_test_service_state
Definition:
service.h:60
m0_net_test_service_cmd_handler::ntsch_handler
int(* ntsch_handler)(void *ctx, const struct m0_net_test_cmd *cmd, struct m0_net_test_cmd *reply)
Definition:
service.h:54
svc
static struct m0_net_test_service svc
Definition:
service.c:34
m0_net_test_service::nts_svc_ctx
void * nts_svc_ctx
Definition:
service.h:90
m0_net_test_cmd
Definition:
commands.h:202
m0_net_test_service_ops::ntso_fini
void(* ntso_fini)(void *ctx)
Definition:
service.h:78
m0_net_test_service_invariant
bool m0_net_test_service_invariant(struct m0_net_test_service *svc)
Definition:
service.c:98
M0_NET_TEST_SERVICE_FAILED
Definition:
service.h:68
ops
struct m0_fom_ops ops
Definition:
io_foms.c:623
reply
static struct m0_dtm_oper_descr reply
Definition:
transmit.c:94
net
test
service.h
Generated on Thu Apr 14 2022 14:02:51 for Motr by
1.8.14