Motr  M0
session_internal.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_RPC_SESSION_INT_H__
26 #define __MOTR_RPC_SESSION_INT_H__
27 
28 #include "rpc/session.h"
29 
36 /* Imports */
37 struct m0_rpc_item;
38 
39 enum {
46 };
47 
51 M0_INTERNAL bool m0_rpc_session_invariant(const struct m0_rpc_session *session);
52 
63 M0_INTERNAL void m0_rpc_session_hold_busy(struct m0_rpc_session *session);
64 
74 M0_INTERNAL void m0_rpc_session_release(struct m0_rpc_session *session);
75 
76 M0_INTERNAL void session_state_set(struct m0_rpc_session *session, int state);
77 M0_INTERNAL int session_state(const struct m0_rpc_session *session);
78 
79 M0_INTERNAL int m0_rpc_session_init_locked(struct m0_rpc_session *session,
80  struct m0_rpc_conn *conn);
81 M0_INTERNAL void m0_rpc_session_fini_locked(struct m0_rpc_session *session);
82 
91 M0_INTERNAL int m0_rpc_rcv_session_terminate(struct m0_rpc_session *session);
92 
99  *req);
100 
107  *req);
108 
109 M0_INTERNAL bool m0_rpc_session_is_idle(const struct m0_rpc_session *session);
110 
111 M0_INTERNAL void m0_rpc_session_item_failed(struct m0_rpc_item *item);
112 
113 M0_INTERNAL struct m0_rpc_machine *session_machine(const struct m0_rpc_session
114  *s);
115 
116 M0_TL_DESCR_DECLARE(rpc_session, M0_EXTERN);
117 M0_TL_DECLARE(rpc_session, M0_INTERNAL, struct m0_rpc_session);
118 
120 #endif
121 
122 /*
123  * Local variables:
124  * c-indentation-style: "K&R"
125  * c-basic-offset: 8
126  * tab-width: 8
127  * fill-column: 80
128  * scroll-step: 1
129  * End:
130  */
M0_INTERNAL void m0_rpc_session_fini_locked(struct m0_rpc_session *session)
Definition: session.c:310
static struct io_request req
Definition: file.c:100
static struct m0_rpc_session session
Definition: formation2.c:38
static struct m0_rpc_item * item
Definition: item.c:56
M0_INTERNAL bool m0_rpc_session_invariant(const struct m0_rpc_session *session)
Definition: session.c:155
M0_INTERNAL void session_state_set(struct m0_rpc_session *session, int state)
Definition: session.c:131
M0_INTERNAL void m0_rpc_session_hold_busy(struct m0_rpc_session *session)
Definition: session.c:782
M0_INTERNAL void m0_rpc_session_item_failed(struct m0_rpc_item *item)
Definition: session.c:880
M0_INTERNAL int session_state(const struct m0_rpc_session *session)
Definition: session.c:141
M0_INTERNAL struct m0_rpc_machine * session_machine(const struct m0_rpc_session *s)
Definition: session.c:147
#define UINT64_MAX
Definition: types.h:44
struct m0_rpc_conn conn
Definition: fsync.c:96
M0_TL_DECLARE(rpc_session, M0_INTERNAL, struct m0_rpc_session)
M0_INTERNAL void m0_rpc_session_establish_reply_received(struct m0_rpc_item *item)
Definition: session.c:487
M0_TL_DESCR_DECLARE(rpc_session, M0_EXTERN)
M0_INTERNAL int m0_rpc_session_init_locked(struct m0_rpc_session *session, struct m0_rpc_conn *conn)
Definition: session.c:223
M0_INTERNAL bool m0_rpc_session_is_idle(const struct m0_rpc_session *session)
Definition: session.c:199
M0_INTERNAL void m0_rpc_session_terminate_reply_received(struct m0_rpc_item *item)
Definition: session.c:715
M0_INTERNAL int m0_rpc_rcv_session_terminate(struct m0_rpc_session *session)
Definition: session.c:822
static struct m0_addb2_source * s
Definition: consumer.c:39
M0_INTERNAL void m0_rpc_session_release(struct m0_rpc_session *session)
Definition: session.c:791