33 size_t y = size_t(key) >>
sizeof(
void *);
60 return MEM_new<wmMsgSubscribeKey_RNA>(__func__, *key_src);
69 msg_lnk = msg_lnk_next)
71 msg_lnk_next = msg_lnk->
next;
83 const char *none =
"<none>";
87 "%s.%s values_len=%d\n",
115 msg_lnk = msg_lnk_next)
117 msg_lnk_next = msg_lnk->next;
118 if (msg_lnk->params.is_persistent ==
false) {
119 if (msg_lnk->params.tag) {
156 msg_lnk = msg_lnk_next)
158 msg_lnk_next = msg_lnk->next;
159 if (msg_lnk->params.is_persistent ==
false) {
160 if (msg_lnk->params.tag) {
196 msg_lnk = msg_lnk_next)
198 msg_lnk_next = msg_lnk->next;
199 if (msg_lnk->params.tag) {
242 const char *none =
"<none>";
244 "rna(id='%s', %s.%s)",
260 if (msg_key_params_anon.
prop !=
nullptr) {
262 msg_key_params_anon.
prop =
nullptr;
266 msg_key_params_anon.
prop = msg_key_params->
prop;
270 msg_key_params_anon.
ptr.
data =
nullptr;
276 if (msg_key_params->
prop) {
277 msg_key_params_anon.
prop =
nullptr;
304 msg_key_test.
msg.
params = *msg_key_params;
306 const char *none =
"<none>";
308 "rna(id='%s', %s.%s, info='%s')",
316 mbus, &msg_key_test.
head, msg_val_params);
bool BLI_gset_haskey(const GSet *gs, const void *key) ATTR_WARN_UNUSED_RESULT
void * BLI_gset_lookup(const GSet *gs, const void *key) ATTR_WARN_UNUSED_RESULT
BLI_INLINE bool BLI_gsetIterator_done(const GSetIterator *gsi)
BLI_INLINE void * BLI_gsetIterator_getKey(GSetIterator *gsi)
BLI_INLINE void BLI_gsetIterator_init(GSetIterator *gsi, GSet *gs)
BLI_INLINE void BLI_gsetIterator_step(GSetIterator *gsi)
bool BLI_gset_add(GSet *gs, void *key)
bool BLI_gset_remove(GSet *gs, const void *key, GSetKeyFreeFP keyfreefp)
BLI_INLINE bool BLI_listbase_is_empty(const ListBase *lb)
void BLI_remlink(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
int BLI_listbase_count(const ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
char * BLI_strdupn(const char *str, size_t len) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
#define CLOG_DEBUG(clg_ref,...)
#define CLOG_TRACE(clg_ref,...)
ID and Library types, which are fundamental for SDNA.
Read Guarded memory(de)allocation.
CLG_LogRef * WM_LOG_MSGBUS_PUB
CLG_LogRef * WM_LOG_MSGBUS_SUB
void MEM_freeN(void *vmemh)
const char * RNA_struct_identifier(const StructRNA *type)
const char * RNA_property_identifier(const PropertyRNA *prop)
PointerRNA RNA_id_pointer_create(ID *id)
std::optional< std::string > RNA_path_from_ID_to_struct(const PointerRNA *ptr)
bool RNA_path_resolve(const PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop)
GSet * messages_gset[WM_MSG_TYPE_NUM]
wmMsgSubscribeValueLink * next
void(* remove_by_id)(wmMsgBus *mbus, const ID *id)
void(* update_by_id)(wmMsgBus *mbus, ID *id_src, ID *id_dst)
struct wmMsgTypeInfo::@062176151244273150215163026361115361006314120344 gset
void *(* key_duplicate_fn)(const void *key)
void(* repr)(FILE *stream, const wmMsgSubscribeKey *msg_key)
unsigned int(* hash_fn)(const void *msg)
void(* key_free_fn)(void *key)
bool(* cmp_fn)(const void *a, const void *b)
void WM_msg_publish_with_key(wmMsgBus *mbus, wmMsgSubscribeKey *msg_key)
void wm_msg_subscribe_value_free(wmMsgSubscribeKey *msg_key, wmMsgSubscribeValueLink *msg_lnk)
wmMsgSubscribeKey * WM_msg_subscribe_with_key(wmMsgBus *mbus, const wmMsgSubscribeKey *msg_key_test, const wmMsgSubscribeValue *msg_val_params)
void WM_msg_subscribe_rna_params(wmMsgBus *mbus, const wmMsgParams_RNA *msg_key_params, const wmMsgSubscribeValue *msg_val_params, const char *id_repr)
wmMsgSubscribeKey_RNA * WM_msg_lookup_rna(wmMsgBus *mbus, const wmMsgParams_RNA *msg_key_params)
void WM_msg_subscribe_rna(wmMsgBus *mbus, PointerRNA *ptr, const PropertyRNA *prop, const wmMsgSubscribeValue *msg_val_params, const char *id_repr)
BLI_INLINE uint void_hash_uint(const void *key)
void WM_msg_publish_rna_params(wmMsgBus *mbus, const wmMsgParams_RNA *msg_key_params)
void WM_msgtypeinfo_init_rna(wmMsgTypeInfo *msgtype_info)
static void wm_msg_rna_repr(FILE *stream, const wmMsgSubscribeKey *msg_key)
static bool wm_msg_rna_gset_cmp(const void *key_a_p, const void *key_b_p)
void WM_msg_publish_ID(wmMsgBus *mbus, ID *id)
void WM_msg_publish_rna(wmMsgBus *mbus, PointerRNA *ptr, PropertyRNA *prop)
static void wm_msg_rna_remove_by_id(wmMsgBus *mbus, const ID *id)
static void wm_msg_rna_update_by_id(wmMsgBus *mbus, ID *id_src, ID *id_dst)
static void * wm_msg_rna_gset_key_duplicate(const void *key_p)
static void wm_msg_rna_gset_key_free(void *key_p)
static uint wm_msg_rna_gset_hash(const void *key_p)
void WM_msg_subscribe_ID(wmMsgBus *mbus, ID *id, const wmMsgSubscribeValue *msg_val_params, const char *id_repr)