Skip to content

Commit

Permalink
switch to ptr to z_xxx_moved_t (#597)
Browse files Browse the repository at this point in the history
* switch to ptr to z_xxx_moved_t

* clang format

* clang format

* restored default values
  • Loading branch information
milyin authored Aug 20, 2024
1 parent c6ab9ab commit 51c0491
Show file tree
Hide file tree
Showing 9 changed files with 230 additions and 234 deletions.
60 changes: 30 additions & 30 deletions include/zenoh-pico/api/macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -96,36 +96,36 @@
* x: The instance to drop.
*/
#define z_drop(x) _Generic((x), \
z_moved_keyexpr_t : z_keyexpr_drop, \
z_moved_config_t : z_config_drop, \
z_moved_session_t : z_session_drop, \
z_moved_subscriber_t : z_subscriber_drop, \
z_moved_publisher_t : z_publisher_drop, \
z_moved_queryable_t : z_queryable_drop, \
z_moved_reply_t : z_reply_drop, \
z_moved_hello_t : z_hello_drop, \
z_moved_string_t : z_string_drop, \
z_moved_string_array_t : z_string_array_drop, \
z_moved_sample_t : z_sample_drop, \
z_moved_query_t : z_query_drop, \
z_moved_encoding_t : z_encoding_drop, \
z_moved_slice_t : z_slice_drop, \
z_moved_bytes_t : z_bytes_drop, \
z_moved_closure_sample_t : z_closure_sample_drop, \
z_moved_closure_query_t : z_closure_query_drop, \
z_moved_closure_reply_t : z_closure_reply_drop, \
z_moved_closure_hello_t : z_closure_hello_drop, \
z_moved_closure_zid_t : z_closure_zid_drop, \
z_moved_task_t : z_task_join, \
z_moved_mutex_t : z_mutex_drop, \
z_moved_condvar_t : z_condvar_drop, \
z_moved_fifo_handler_query_t : z_fifo_handler_query_drop, \
z_moved_fifo_handler_reply_t : z_fifo_handler_reply_drop, \
z_moved_fifo_handler_sample_t : z_fifo_handler_sample_drop, \
z_moved_ring_handler_query_t : z_ring_handler_query_drop, \
z_moved_ring_handler_reply_t : z_ring_handler_reply_drop, \
z_moved_ring_handler_sample_t : z_ring_handler_sample_drop, \
z_moved_reply_err_t : z_reply_err_drop \
z_moved_keyexpr_t* : z_keyexpr_drop, \
z_moved_config_t* : z_config_drop, \
z_moved_session_t* : z_session_drop, \
z_moved_subscriber_t* : z_subscriber_drop, \
z_moved_publisher_t* : z_publisher_drop, \
z_moved_queryable_t* : z_queryable_drop, \
z_moved_reply_t* : z_reply_drop, \
z_moved_hello_t* : z_hello_drop, \
z_moved_string_t* : z_string_drop, \
z_moved_string_array_t* : z_string_array_drop, \
z_moved_sample_t* : z_sample_drop, \
z_moved_query_t* : z_query_drop, \
z_moved_encoding_t* : z_encoding_drop, \
z_moved_slice_t* : z_slice_drop, \
z_moved_bytes_t* : z_bytes_drop, \
z_moved_closure_sample_t* : z_closure_sample_drop, \
z_moved_closure_query_t* : z_closure_query_drop, \
z_moved_closure_reply_t* : z_closure_reply_drop, \
z_moved_closure_hello_t* : z_closure_hello_drop, \
z_moved_closure_zid_t* : z_closure_zid_drop, \
z_moved_task_t* : z_task_join, \
z_moved_mutex_t* : z_mutex_drop, \
z_moved_condvar_t* : z_condvar_drop, \
z_moved_fifo_handler_query_t* : z_fifo_handler_query_drop, \
z_moved_fifo_handler_reply_t* : z_fifo_handler_reply_drop, \
z_moved_fifo_handler_sample_t* : z_fifo_handler_sample_drop, \
z_moved_ring_handler_query_t* : z_ring_handler_query_drop, \
z_moved_ring_handler_reply_t* : z_ring_handler_reply_drop, \
z_moved_ring_handler_sample_t* : z_ring_handler_sample_drop, \
z_moved_reply_err_t* : z_reply_err_drop \
)(x)

/**
Expand Down
92 changes: 46 additions & 46 deletions include/zenoh-pico/api/olv_macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@

#define _Z_MOVED_TYPE(name) \
typedef struct { \
z_owned_##name##_t *_ptr; \
z_owned_##name##_t _this; \
} z_moved_##name##_t;

#define _Z_LOANED_TYPE(type, name) typedef type z_loaned_##name##_t;
Expand Down Expand Up @@ -60,38 +60,38 @@
_Bool _z_owned_##name##_check(const z_owned_##name##_t *obj); \
const z_loaned_##name##_t *z_##name##_loan(const z_owned_##name##_t *obj); \
z_loaned_##name##_t *z_##name##_loan_mut(z_owned_##name##_t *obj); \
z_moved_##name##_t z_##name##_move(z_owned_##name##_t *obj); \
void z_##name##_take(z_owned_##name##_t *obj, z_moved_##name##_t src); \
z_moved_##name##_t *z_##name##_move(z_owned_##name##_t *obj); \
void z_##name##_take(z_owned_##name##_t *obj, z_moved_##name##_t *src); \
int8_t z_##name##_clone(z_owned_##name##_t *obj, const z_loaned_##name##_t *src); \
void z_##name##_drop(z_moved_##name##_t obj);
void z_##name##_drop(z_moved_##name##_t *obj);

#define _Z_OWNED_FUNCTIONS_NO_COPY_DEF(name) \
void _z_owned_##name##_null(z_owned_##name##_t *obj); \
_Bool _z_owned_##name##_check(const z_owned_##name##_t *obj); \
const z_loaned_##name##_t *z_##name##_loan(const z_owned_##name##_t *obj); \
z_loaned_##name##_t *z_##name##_loan_mut(z_owned_##name##_t *obj); \
z_moved_##name##_t z_##name##_move(z_owned_##name##_t *obj); \
void z_##name##_take(z_owned_##name##_t *obj, z_moved_##name##_t src); \
void z_##name##_drop(z_moved_##name##_t obj);
z_moved_##name##_t *z_##name##_move(z_owned_##name##_t *obj); \
void z_##name##_take(z_owned_##name##_t *obj, z_moved_##name##_t *src); \
void z_##name##_drop(z_moved_##name##_t *obj);

#define _Z_OWNED_FUNCTIONS_SYSTEM_DEF(name) \
void _z_owned_##name##_null(z_owned_##name##_t *obj); \
void z_##name##_take(z_owned_##name##_t *obj, z_moved_##name##_t src); \
void z_##name##_take(z_owned_##name##_t *obj, z_moved_##name##_t *src); \
const z_loaned_##name##_t *z_##name##_loan(const z_owned_##name##_t *obj); \
z_loaned_##name##_t *z_##name##_loan_mut(z_owned_##name##_t *obj); \
z_moved_##name##_t z_##name##_move(z_owned_##name##_t *obj);
z_moved_##name##_t *z_##name##_move(z_owned_##name##_t *obj);

#define _Z_VIEW_FUNCTIONS_DEF(name) \
_Bool z_view_##name##_is_empty(const z_view_##name##_t *obj); \
const z_loaned_##name##_t *z_view_##name##_loan(const z_view_##name##_t *name); \
z_loaned_##name##_t *z_view_##name##_loan_mut(z_view_##name##_t *name); \
void _z_view_##name##_empty(z_view_##name##_t *name);

#define _Z_OWNED_FUNCTIONS_IMPL_MOVE_TAKE(name) \
z_moved_##name##_t z_##name##_move(z_owned_##name##_t *obj) { return (z_moved_##name##_t){obj}; } \
void z_##name##_take(z_owned_##name##_t *obj, z_moved_##name##_t src) { \
*obj = *src._ptr; \
_z_owned_##name##_null(src._ptr); \
#define _Z_OWNED_FUNCTIONS_IMPL_MOVE_TAKE(name) \
z_moved_##name##_t *z_##name##_move(z_owned_##name##_t *obj) { return (z_moved_##name##_t *)(obj); } \
void z_##name##_take(z_owned_##name##_t *obj, z_moved_##name##_t *src) { \
*obj = src->_this; \
_z_owned_##name##_null(&src->_this); \
}

#define _Z_OWNED_FUNCTIONS_PTR_IMPL(type, name, f_copy, f_free) \
Expand All @@ -110,9 +110,9 @@
} \
return ret; \
} \
void z_##name##_drop(z_moved_##name##_t obj) { \
if ((obj._ptr != NULL) && (obj._ptr->_val != NULL)) { \
f_free(&obj._ptr->_val); \
void z_##name##_drop(z_moved_##name##_t *obj) { \
if ((obj != NULL) && (obj->_this._val != NULL)) { \
f_free(obj->_this._val); \
} \
}

Expand All @@ -125,22 +125,22 @@
int8_t z_##name##_clone(z_owned_##name##_t *obj, const z_loaned_##name##_t *src) { \
return f_copy((&obj->_val), src); \
} \
void z_##name##_drop(z_moved_##name##_t obj) { \
if (obj._ptr != NULL) f_drop((&obj._ptr->_val)); \
void z_##name##_drop(z_moved_##name##_t *obj) { \
if (obj != NULL) f_drop((&obj->_this._val)); \
}

#define _Z_OWNED_FUNCTIONS_VALUE_NO_COPY_IMPL_INNER(type, name, f_check, f_null, f_drop, attribute) \
attribute void _z_owned_##name##_null(z_owned_##name##_t *obj) { obj->_val = f_null(); } \
attribute _Bool _z_owned_##name##_check(const z_owned_##name##_t *obj) { return f_check((&obj->_val)); } \
attribute const z_loaned_##name##_t *z_##name##_loan(const z_owned_##name##_t *obj) { return &obj->_val; } \
attribute z_loaned_##name##_t *z_##name##_loan_mut(z_owned_##name##_t *obj) { return &obj->_val; } \
attribute z_moved_##name##_t z_##name##_move(z_owned_##name##_t *obj) { return (z_moved_##name##_t){obj}; } \
attribute void z_##name##_take(z_owned_##name##_t *obj, z_moved_##name##_t src) { \
*obj = *src._ptr; \
_z_owned_##name##_null(src._ptr); \
} \
attribute void z_##name##_drop(z_moved_##name##_t obj) { \
if (obj._ptr != NULL) f_drop((&obj._ptr->_val)); \
#define _Z_OWNED_FUNCTIONS_VALUE_NO_COPY_IMPL_INNER(type, name, f_check, f_null, f_drop, attribute) \
attribute void _z_owned_##name##_null(z_owned_##name##_t *obj) { obj->_val = f_null(); } \
attribute _Bool _z_owned_##name##_check(const z_owned_##name##_t *obj) { return f_check((&obj->_val)); } \
attribute const z_loaned_##name##_t *z_##name##_loan(const z_owned_##name##_t *obj) { return &obj->_val; } \
attribute z_loaned_##name##_t *z_##name##_loan_mut(z_owned_##name##_t *obj) { return &obj->_val; } \
attribute z_moved_##name##_t *z_##name##_move(z_owned_##name##_t *obj) { return (z_moved_##name##_t *)(obj); } \
attribute void z_##name##_take(z_owned_##name##_t *obj, z_moved_##name##_t *src) { \
*obj = src->_this; \
_z_owned_##name##_null(&src->_this); \
} \
attribute void z_##name##_drop(z_moved_##name##_t *obj) { \
if (obj != NULL) f_drop((&obj->_this._val)); \
}

#define _ZP_NOTHING
Expand All @@ -165,9 +165,9 @@
} \
return ret; \
} \
void z_##name##_drop(z_moved_##name##_t val) { \
if (!_Z_RC_IS_NULL(&val._ptr->_rc)) { \
_z_##name##_rc_drop(&val._ptr->_rc); \
void z_##name##_drop(z_moved_##name##_t *obj) { \
if (!_Z_RC_IS_NULL(&obj->_this._rc)) { \
_z_##name##_rc_drop(&obj->_this._rc); \
} \
}

Expand All @@ -183,12 +183,12 @@
z_loaned_##name##_t *z_view_##name##_loan_mut(z_view_##name##_t *obj) { return &obj->_val; } \
void z_view_##name##_empty(z_view_##name##_t *obj) { obj->_val = f_null(); }

#define _Z_OWNED_FUNCTIONS_CLOSURE_DEF(name) \
void _z_owned_##name##_null(z_owned_##name##_t *name); \
_Bool _z_owned_##name##_check(const z_owned_##name##_t *val); \
z_moved_##name##_t z_##name##_move(z_owned_##name##_t *val); \
void z_##name##_take(z_owned_##name##_t *obj, z_moved_##name##_t src); \
void z_##name##_drop(z_moved_##name##_t val); \
#define _Z_OWNED_FUNCTIONS_CLOSURE_DEF(name) \
void _z_owned_##name##_null(z_owned_##name##_t *name); \
_Bool _z_owned_##name##_check(const z_owned_##name##_t *val); \
z_moved_##name##_t *z_##name##_move(z_owned_##name##_t *val); \
void z_##name##_take(z_owned_##name##_t *obj, z_moved_##name##_t *src); \
void z_##name##_drop(z_moved_##name##_t *obj); \
const z_loaned_##name##_t *z_##name##_loan(const z_owned_##name##_t *val);

#define _Z_OWNED_FUNCTIONS_CLOSURE_IMPL(name, f_call, f_drop) \
Expand All @@ -199,13 +199,13 @@
val->_val.context = NULL; \
} \
_Bool _z_owned_##name##_check(const z_owned_##name##_t *val) { return val->_val.call != NULL; } \
void z_##name##_drop(z_moved_##name##_t val) { \
if (val._ptr->_val.drop != NULL) { \
(val._ptr->_val.drop)(val._ptr->_val.context); \
val._ptr->_val.drop = NULL; \
void z_##name##_drop(z_moved_##name##_t *obj) { \
if (obj->_this._val.drop != NULL) { \
(obj->_this._val.drop)(obj->_this._val.context); \
obj->_this._val.drop = NULL; \
} \
val._ptr->_val.call = NULL; \
val._ptr->_val.context = NULL; \
obj->_this._val.call = NULL; \
obj->_this._val.context = NULL; \
} \
const z_loaned_##name##_t *z_##name##_loan(const z_owned_##name##_t *val) { return &val->_val; } \
int8_t z_##name(z_owned_##name##_t *closure, f_call call, f_drop drop, void *context) { \
Expand Down
Loading

0 comments on commit 51c0491

Please sign in to comment.