34 size_t y = size_t(key) >>
sizeof(
void *);
64 msg_lnk = msg_lnk_next)
66 msg_lnk_next = msg_lnk->
next;
78 const char *none =
"<none>";
82 "%s.%s values_len=%d\n",
110 msg_lnk = msg_lnk_next)
112 msg_lnk_next = msg_lnk->next;
113 if (msg_lnk->params.is_persistent ==
false) {
114 if (msg_lnk->params.tag) {
151 msg_lnk = msg_lnk_next)
153 msg_lnk_next = msg_lnk->
next;
154 if (msg_lnk->params.is_persistent ==
false) {
155 if (msg_lnk->params.tag) {
191 msg_lnk = msg_lnk_next)
193 msg_lnk_next = msg_lnk->next;
194 if (msg_lnk->params.tag) {
238 const char *none =
"<none>";
241 "rna(id='%s', %s.%s)",
257 if (msg_key_params_anon.
prop !=
nullptr) {
259 msg_key_params_anon.
prop =
nullptr;
263 msg_key_params_anon.
prop = msg_key_params->
prop;
267 msg_key_params_anon.
ptr.
data =
nullptr;
273 if (msg_key_params->
prop) {
274 msg_key_params_anon.
prop =
nullptr;
301 msg_key_test.
msg.
params = *msg_key_params;
303 const char *none =
"<none>";
306 "rna(id='%s', %s.%s, info='%s')",
314 mbus, &msg_key_test.
head, msg_val_params);
317 if (msg_key->msg.params.data_path ==
nullptr) {
318 if (msg_key->msg.params.ptr.data != msg_key->msg.params.ptr.owner_id) {
321 &msg_key->msg.params.ptr);
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 struct ListBase *lb)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
int BLI_listbase_count(const struct 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_INFO(clg_ref, level,...)
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
struct wmMsgTypeInfo::@1392 gset
void(* remove_by_id)(wmMsgBus *mbus, const ID *id)
void(* update_by_id)(wmMsgBus *mbus, ID *id_src, ID *id_dst)
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_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)