@@ -8,7 +8,7 @@ typedef enum sr_error_e {
8
8
SR_ERR_INVAL_ARG ,
9
9
SR_ERR_LY ,
10
10
SR_ERR_SYS ,
11
- SR_ERR_NOMEM ,
11
+ SR_ERR_NO_MEMORY ,
12
12
SR_ERR_NOT_FOUND ,
13
13
SR_ERR_EXISTS ,
14
14
SR_ERR_INTERNAL ,
@@ -45,8 +45,7 @@ typedef struct sr_conn_ctx_s sr_conn_ctx_t;
45
45
typedef struct sr_session_ctx_s sr_session_ctx_t ;
46
46
typedef enum sr_conn_flag_e {
47
47
SR_CONN_CACHE_RUNNING ,
48
- SR_CONN_NO_SCHED_CHANGES ,
49
- SR_CONN_ERR_ON_SCHED_FAIL ,
48
+ SR_CONN_CTX_SET_PRIV_PARSED ,
50
49
...
51
50
} sr_conn_flag_t ;
52
51
typedef uint32_t sr_conn_options_t ;
@@ -57,25 +56,32 @@ typedef enum sr_datastore_e {
57
56
SR_DS_OPERATIONAL ,
58
57
...
59
58
} sr_datastore_t ;
60
- typedef struct sr_error_info_msg_s {
59
+ typedef struct sr_error_info_err_s {
60
+ sr_error_t err_code ;
61
61
char * message ;
62
- char * xpath ;
63
- } sr_error_info_msg_t ;
62
+ char * error_format ;
63
+ void * error_data ;
64
+ } sr_error_info_err_t ;
64
65
typedef struct sr_error_info_s {
65
- sr_error_t err_code ;
66
- sr_error_info_msg_t * err ;
67
- size_t err_count ;
66
+ sr_error_info_err_t * err ;
67
+ uint32_t err_count ;
68
68
} sr_error_info_t ;
69
69
70
70
/* forward declarations from libyang */
71
71
struct ly_ctx ;
72
72
struct lyd_node ;
73
+ typedef int ... time_t ;
74
+ struct timespec {
75
+ time_t tv_sec ;
76
+ long tv_nsec ;
77
+ };
73
78
74
79
int sr_connect (const sr_conn_options_t , sr_conn_ctx_t * * );
75
80
int sr_disconnect (sr_conn_ctx_t * );
76
- const struct ly_ctx * sr_get_context (sr_conn_ctx_t * );
77
- int sr_install_module (sr_conn_ctx_t * , const char * , const char * , const char * * , int );
78
- int sr_remove_module (sr_conn_ctx_t * , const char * );
81
+ const struct ly_ctx * sr_acquire_context (sr_conn_ctx_t * );
82
+ void sr_release_context (sr_conn_ctx_t * );
83
+ int sr_install_module (sr_conn_ctx_t * , const char * , const char * , const char * * );
84
+ int sr_remove_module (sr_conn_ctx_t * , const char * , int );
79
85
int sr_update_module (sr_conn_ctx_t * , const char * , const char * );
80
86
int sr_enable_module_feature (sr_conn_ctx_t * , const char * , const char * );
81
87
int sr_disable_module_feature (sr_conn_ctx_t * , const char * , const char * );
@@ -85,12 +91,14 @@ int sr_session_stop(sr_session_ctx_t *);
85
91
int sr_session_switch_ds (sr_session_ctx_t * , sr_datastore_t );
86
92
sr_datastore_t sr_session_get_ds (sr_session_ctx_t * );
87
93
sr_conn_ctx_t * sr_session_get_connection (sr_session_ctx_t * );
88
- uint32_t sr_session_get_event_nc_id (sr_session_ctx_t * );
89
- const char * sr_session_get_event_user (sr_session_ctx_t * );
90
- int sr_get_error (sr_session_ctx_t * , const sr_error_info_t * * );
91
- int sr_set_error (sr_session_ctx_t * , const char * , const char * , ...);
94
+ int sr_session_get_error (sr_session_ctx_t * , const sr_error_info_t * * );
95
+ int sr_session_set_error_message (sr_session_ctx_t * , const char * , ...);
96
+ const char * sr_session_get_orig_name (sr_session_ctx_t * session );
97
+ int sr_session_set_orig_name (sr_session_ctx_t * session , const char * );
98
+ int sr_session_get_orig_data (sr_session_ctx_t * session , uint32_t idx , uint32_t * size , const void * * data );
99
+ int sr_session_push_orig_data (sr_session_ctx_t * session , uint32_t size , const void * data );
92
100
93
- typedef enum sr_type_e {
101
+ typedef enum sr_val_type_e {
94
102
SR_UNKNOWN_T ,
95
103
SR_LIST_T ,
96
104
SR_CONTAINER_T ,
@@ -115,11 +123,11 @@ typedef enum sr_type_e {
115
123
SR_ANYXML_T ,
116
124
SR_ANYDATA_T ,
117
125
...
118
- } sr_type_t ;
119
- typedef union sr_data_u {
126
+ } sr_val_type_t ;
127
+ typedef union sr_val_data_u {
120
128
char * binary_val ;
121
129
char * bits_val ;
122
- bool bool_val ;
130
+ int bool_val ;
123
131
double decimal64_val ;
124
132
char * enum_val ;
125
133
char * identityref_val ;
@@ -136,11 +144,11 @@ typedef union sr_data_u {
136
144
char * anyxml_val ;
137
145
char * anydata_val ;
138
146
...;
139
- } sr_data_t ;
147
+ } sr_val_data_t ;
140
148
typedef struct sr_val_s {
141
149
char * xpath ;
142
- sr_type_t type ;
143
- sr_data_t data ;
150
+ sr_val_type_t type ;
151
+ sr_val_data_t data ;
144
152
...;
145
153
} sr_val_t ;
146
154
typedef enum sr_edit_flag_e {
@@ -159,42 +167,46 @@ typedef enum sr_get_oper_flag_e {
159
167
} sr_get_oper_flag_t ;
160
168
typedef uint32_t sr_get_oper_options_t ;
161
169
170
+ struct sr_data_s {
171
+ const sr_conn_ctx_t * conn ;
172
+ struct lyd_node * tree ;
173
+ };
174
+ typedef struct sr_data_s sr_data_t ;
175
+
162
176
void sr_free_val (sr_val_t * );
163
177
void sr_free_values (sr_val_t * , size_t );
164
178
165
179
int sr_get_item (sr_session_ctx_t * , const char * , uint32_t , sr_val_t * * );
166
180
int sr_get_items (sr_session_ctx_t * , const char * , uint32_t ,
167
181
const sr_get_oper_options_t , sr_val_t * * , size_t * );
168
182
int sr_get_data (sr_session_ctx_t * , const char * , uint32_t , uint32_t ,
169
- const sr_get_oper_options_t , struct lyd_node * * );
170
- int sr_rpc_send_tree (
171
- sr_session_ctx_t * , struct lyd_node * , uint32_t , struct lyd_node * * );
183
+ const sr_get_oper_options_t , sr_data_t * * );
184
+ void sr_release_data ( sr_data_t * );
185
+ int sr_rpc_send_tree ( sr_session_ctx_t * , struct lyd_node * , uint32_t , sr_data_t * * );
172
186
173
187
int sr_set_item_str (sr_session_ctx_t * , const char * , const char * , const char * , const sr_edit_options_t );
174
188
int sr_delete_item (sr_session_ctx_t * , const char * , const sr_edit_options_t );
175
189
int sr_edit_batch (sr_session_ctx_t * , const struct lyd_node * , const char * );
176
- int sr_replace_config (sr_session_ctx_t * , const char * , struct lyd_node * , uint32_t , int );
190
+ int sr_replace_config (sr_session_ctx_t * , const char * , struct lyd_node * , uint32_t );
177
191
int sr_validate (sr_session_ctx_t * , const char * , uint32_t );
178
- int sr_apply_changes (sr_session_ctx_t * , uint32_t , int );
192
+ int sr_apply_changes (sr_session_ctx_t * , uint32_t );
179
193
int sr_discard_changes (sr_session_ctx_t * );
180
194
181
195
typedef enum sr_subscr_flag_e {
182
- SR_SUBSCR_CTX_REUSE ,
183
196
SR_SUBSCR_NO_THREAD ,
184
197
SR_SUBSCR_PASSIVE ,
185
198
SR_SUBSCR_DONE_ONLY ,
186
199
SR_SUBSCR_ENABLED ,
187
200
SR_SUBSCR_UPDATE ,
188
- SR_SUBSCR_UNLOCKED ,
201
+ SR_SUBSCR_OPER_MERGE ,
189
202
...
190
203
} sr_subscr_flag_t ;
191
204
192
205
typedef struct sr_subscription_ctx_s sr_subscription_ctx_t ;
193
206
typedef uint32_t sr_subscr_options_t ;
194
207
195
208
int sr_get_event_pipe (sr_subscription_ctx_t * , int * );
196
- typedef int ... time_t ;
197
- int sr_process_events (sr_subscription_ctx_t * , sr_session_ctx_t * , time_t * );
209
+ int sr_subscription_process_events (sr_subscription_ctx_t * , sr_session_ctx_t * , struct timespec * );
198
210
int sr_unsubscribe (sr_subscription_ctx_t * );
199
211
200
212
typedef enum sr_event_e {
@@ -221,50 +233,50 @@ int sr_get_change_next(
221
233
int sr_get_change_tree_next (
222
234
sr_session_ctx_t * , sr_change_iter_t * , sr_change_oper_t * ,
223
235
const struct lyd_node * * , const char * * prev_val ,
224
- const char * * prev_list , bool * prev_dflt );
236
+ const char * * prev_list , int * prev_dflt );
225
237
void sr_free_change_iter (sr_change_iter_t * );
226
238
227
239
228
240
extern "Python" int srpy_module_change_cb (
229
- sr_session_ctx_t * , const char * module , const char * xpath ,
241
+ sr_session_ctx_t * , uint32_t sub_id , const char * module , const char * xpath ,
230
242
sr_event_t , uint32_t req_id , void * priv );
231
243
int sr_module_change_subscribe (
232
244
sr_session_ctx_t * , const char * module , const char * xpath ,
233
- int (* )(sr_session_ctx_t * , const char * , const char * , sr_event_t , uint32_t , void * ),
245
+ int (* )(sr_session_ctx_t * , uint32_t , const char * , const char * , sr_event_t , uint32_t , void * ),
234
246
void * priv , uint32_t priority , sr_subscr_options_t , sr_subscription_ctx_t * * );
235
247
236
248
extern "Python" int srpy_rpc_tree_cb (
237
- sr_session_ctx_t * , const char * , const struct lyd_node * input ,
249
+ sr_session_ctx_t * , uint32_t sub_id , const char * , const struct lyd_node * input ,
238
250
sr_event_t , uint32_t req_id , struct lyd_node * output , void * priv );
239
251
int sr_rpc_subscribe_tree (
240
252
sr_session_ctx_t * , const char * xpath ,
241
- int (* )(sr_session_ctx_t * , const char * , const struct lyd_node * , sr_event_t , uint32_t , struct lyd_node * , void * ),
253
+ int (* )(sr_session_ctx_t * , uint32_t , const char * , const struct lyd_node * , sr_event_t , uint32_t , struct lyd_node * , void * ),
242
254
void * priv , uint32_t priority , sr_subscr_options_t , sr_subscription_ctx_t * * );
243
255
244
256
extern "Python" int srpy_oper_data_cb (
245
- sr_session_ctx_t * , const char * module , const char * xpath ,
257
+ sr_session_ctx_t * , uint32_t sub_id , const char * module , const char * xpath ,
246
258
const char * req_xpath , uint32_t req_id , struct lyd_node * * , void * priv );
247
- int sr_oper_get_items_subscribe (
259
+ int sr_oper_get_subscribe (
248
260
sr_session_ctx_t * , const char * module , const char * xpath ,
249
- int (* )(sr_session_ctx_t * , const char * , const char * , const char * , uint32_t , struct lyd_node * * , void * ),
261
+ int (* )(sr_session_ctx_t * , uint32_t , const char * , const char * , const char * , uint32_t , struct lyd_node * * , void * ),
250
262
void * priv , sr_subscr_options_t , sr_subscription_ctx_t * * );
251
263
252
264
typedef enum sr_ev_notif_type_e {
253
265
SR_EV_NOTIF_REALTIME ,
254
266
SR_EV_NOTIF_REPLAY ,
255
267
SR_EV_NOTIF_REPLAY_COMPLETE ,
256
- SR_EV_NOTIF_STOP ,
268
+ SR_EV_NOTIF_TERMINATED ,
257
269
SR_EV_NOTIF_SUSPENDED ,
258
270
SR_EV_NOTIF_RESUMED ,
259
271
...
260
272
} sr_ev_notif_type_t ;
261
273
262
274
extern "Python" void srpy_event_notif_tree_cb (
263
- sr_session_ctx_t * , const sr_ev_notif_type_t notif_type , const struct lyd_node * notif ,
264
- time_t timestamp , void * priv );
275
+ sr_session_ctx_t * , uint32_t sub_id , const sr_ev_notif_type_t notif_type , const struct lyd_node * notif ,
276
+ struct timespec * timestamp , void * priv );
265
277
266
- int sr_event_notif_subscribe_tree (sr_session_ctx_t * , const char * module_name , const char * xpath , time_t start_time , time_t stop_time ,
267
- void (* )(sr_session_ctx_t * , const sr_ev_notif_type_t , const struct lyd_node * , time_t , void * ),
278
+ int sr_notif_subscribe_tree (sr_session_ctx_t * , const char * module_name , const char * xpath , struct timespec * start_time , struct timespec * stop_time ,
279
+ void (* )(sr_session_ctx_t * , uint32_t , const sr_ev_notif_type_t , const struct lyd_node * , struct timespec * , void * ),
268
280
void * priv , sr_subscr_options_t , sr_subscription_ctx_t * * );
269
281
270
- int sr_event_notif_send_tree (sr_session_ctx_t * , struct lyd_node * notif );
282
+ int sr_notif_send_tree (sr_session_ctx_t * , struct lyd_node * notif , uint32_t timeout_ms , int wait );
0 commit comments