Motr  M0
item_source.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 
23 
24 #pragma once
25 
26 #ifndef __MOTR_RPC_ITEM_SOURCE_H__
27 #define __MOTR_RPC_ITEM_SOURCE_H__
28 
29 
36 struct m0_rpc_item_source;
38 
61  uint64_t ris_magic;
62  const char *ris_name;
69 };
70 
85  bool (*riso_has_item)(const struct m0_rpc_item_source *ris);
86 
99  struct m0_rpc_item *(*riso_get_item)(struct m0_rpc_item_source *ris,
100  m0_bcount_t max_payload_size);
101 
112 };
113 
120  const char *name,
121  const struct m0_rpc_item_source_ops *ops);
122 
127 
132 
140  struct m0_rpc_item_source *ris);
141 
152  struct m0_rpc_item_source *ris);
153 
163 
166 #endif /* __MOTR_RPC_ITEM_SOURCE_H__ */
167 
168 
169 /*
170  * Local variables:
171  * c-indentation-style: "K&R"
172  * c-basic-offset: 8
173  * tab-width: 8
174  * fill-column: 80
175  * scroll-step: 1
176  * End:
177  */
178 /*
179  * vim: tabstop=8 shiftwidth=8 noexpandtab textwidth=80 nowrap
180  */
void m0_rpc_item_source_fini(struct m0_rpc_item_source *ris)
Definition: item_source.c:70
void m0_rpc_item_source_register(struct m0_rpc_conn *conn, struct m0_rpc_item_source *ris)
Definition: item_source.c:95
const struct m0_rpc_item_source_ops * ris_ops
Definition: item_source.h:63
const char * ris_name
Definition: item_source.h:62
struct m0_rpc_conn * ris_conn
Definition: item_source.h:64
uint64_t ris_magic
Definition: item_source.h:61
void m0_rpc_item_source_deregister(struct m0_rpc_item_source *ris)
Definition: item_source.c:107
void m0_rpc_item_source_init(struct m0_rpc_item_source *ris, const char *name, const struct m0_rpc_item_source_ops *ops)
Definition: item_source.c:52
uint64_t m0_bcount_t
Definition: types.h:77
const char * name
Definition: trace.c:110
struct m0_tlink ris_tlink
Definition: item_source.h:68
struct m0_rpc_conn conn
Definition: fsync.c:96
void(* riso_conn_terminating)(struct m0_rpc_item_source *ris)
Definition: item_source.h:111
struct m0_fom_ops ops
Definition: io_foms.c:623
bool m0_rpc_item_source_is_registered(const struct m0_rpc_item_source *ris)
Definition: item_source.c:77
void m0_rpc_item_source_register_locked(struct m0_rpc_conn *conn, struct m0_rpc_item_source *ris)
Definition: item_source.c:83
bool(* riso_has_item)(const struct m0_rpc_item_source *ris)
Definition: item_source.h:85