Skip to content

Is it intended that create_pi() does not trigger on_add events? #568

Open
@marcelwa

Description

@marcelwa

Describe the bug
First of all, I'm not sure whether this is a bug or intended behavior.

I have noticed that the default network implementations do not trigger the on_add events when their create_pi() function is called.

I found this behavior misleading as, e.g., depth_view makes explicit usage of this event type to recompute levels on creation of new nodes. There is a test case in depth_view.cpp that tests this feature which of course works because PIs are placed in level 0 anyway, i.e., the default-constructed value for the level data type (uint32_t). To be more precise, PIs show their intended level on creation even though on_add was never called on them.

I'm currently implementing a view that's similar to depth_view and I wanted to rely on this event to process new nodes (including PIs) on creation. @lee30sonia recommended to override the create_pi function and manually call on_add (many thanks for this idea!). While that provides intended behavior for my use case, it would break as soon as someone introduced a new network type that did trigger on_add events on create_pi() because it'd then process PIs twice.

Any input on this matter is welcome. Many thanks in advance!

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussionDiscussions on design decisions with open conclusions

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions