Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add replaceable monitoring cluster implemenation #1

Merged
merged 188 commits into from
Jul 18, 2023
Merged

Add replaceable monitoring cluster implemenation #1

merged 188 commits into from
Jul 18, 2023

Conversation

cliffamzn
Copy link
Owner

!!!!!!!!!! Please delete the instructions below and replace with PR description

If you have an issue number, please use a syntax of
Fixes #12345 and a brief change description

If you do not have an issue number, please have a good description of
the problem and the fix. Help the reviewer understand what to expect.

Make sure you delete these instructions (to prove you have read them).

!!!!!!!!!! Instructions end

tobiasgraf and others added 30 commits June 5, 2023 16:03
…eMonitoring defines

- using `using`
- and adding by hand
Add cluster-objects.h / cpp instead of defining it inside the server.h / cpp
- have External Attribute Storage inside Instances
- implement getters and Setters for Attributes
- also clean up some namespaces
Also add basic OnResetCondition implementation.
…e to take the required attribute information directly rather than as a EmberAfAttributeMetadata structure.
…nation

# Conflicts:
#	src/app/zap-templates/zcl/zcl-with-test-extensions.json
#	src/app/zap-templates/zcl/zcl.json
#	zzz_generated/app-common/app-common/zap-generated/callback.h
…r-definition' into add-replaceable-monitoring-cluster-implemenation

# Conflicts:
#	zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp
#	zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h
tobiasgraf and others added 5 commits July 18, 2023 13:34
…itoring-cluster-implemenation

# Conflicts:
#	src/app/chip_data_model.gni
…-chip#28012)

* Refactor struct/event codegen in Darwin a bit.

This makes the cluster and struct/event names into inline partial parameters.
This changeset has been tested to not modify the generated code at all.

* Make our renamed struct/event codegen more backwards compatible.

When we just moved all the members to the super-class, it left the subclass in a
situation where none of its properties are available in the release where the
subclass itself is available.

This change restores those properties on the subclasses.

The @dynamic in implementations is needed to avoid compiler errors.
And put it in resource-monitoring-helper.cpp.
This will use the ClusterInitCallbacks to initialize the instance objects.

This removes the need to have the init code in every example app, just include the helper.cpp file.
@cliffamzn cliffamzn marked this pull request as ready for review July 18, 2023 22:54
@cliffamzn cliffamzn merged commit b01f334 into cliffamzn:add-replaceable-monitoring-cluster-implemenation Jul 18, 2023
cliffamzn added a commit that referenced this pull request Jul 18, 2023
cliffamzn pushed a commit that referenced this pull request Oct 27, 2023
…ist". (project-chip#29666)

The typical failure there looks like this:

==29620==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 88 byte(s) in 1 object(s) allocated from:
    #0 0x106396e12 in calloc+0xa2 (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x51e12)
    #1 0x7ff800dc9789 in map_images_nolock+0x24b (libobjc.A.dylib:x86_64h+0x1789)
    project-chip#2 0x7ff800dc94db in map_images+0x42 (libobjc.A.dylib:x86_64h+0x14db)
    project-chip#3 0x113d721fa in invocation function for block in dyld4::RuntimeState::setObjCNotifiers(void (*)(unsigned int, char const* const*, mach_header const* const*), void (*)(char const*, mach_header const*), void (*)(char const*, mach_header const*))+0x112 (dyld:x86_64+0xf1fa)
    project-chip#4 0x113d6d6c8 in dyld4::RuntimeState::withLoadersReadLock(void () block_pointer)+0x28 (dyld:x86_64+0xa6c8)
    project-chip#5 0x113d720e1 in dyld4::RuntimeState::setObjCNotifiers(void (*)(unsigned int, char const* const*, mach_header const* const*), void (*)(char const*, mach_header const*), void (*)(char const*, mach_header const*))+0x51 (dyld:x86_64+0xf0e1)
    project-chip#6 0x113d85d44 in dyld4::APIs::_dyld_objc_notify_register(void (*)(unsigned int, char const* const*, mach_header const* const*), void (*)(char const*, mach_header const*), void (*)(char const*, mach_header const*))+0x4e (dyld:x86_64+0x22d44)
    project-chip#7 0x7ff800dc9343 in _objc_init+0x4fe (libobjc.A.dylib:x86_64h+0x1343)
    project-chip#8 0x7ff800d83992 in _os_object_init+0xc (libdispatch.dylib:x86_64+0x2992)
    project-chip#9 0x7ff800d911b7 in libdispatch_init+0x136 (libdispatch.dylib:x86_64+0x101b7)
    project-chip#10 0x7ff80bd34894 in libSystem_initializer+0xed (libSystem.B.dylib:x86_64+0x1894)
    project-chip#11 0x113d77e4e in invocation function for block in dyld4::Loader::findAndRunAllInitializers(dyld4::RuntimeState&) const+0xb5 (dyld:x86_64+0x14e4e)
    project-chip#12 0x113d9eaac in invocation function for block in dyld3::MachOAnalyzer::forEachInitializer(Diagnostics&, dyld3::MachOAnalyzer::VMAddrConverter const&, void (unsigned int) block_pointer, void const*) const+0xf1 (dyld:x86_64+0x3baac)
    project-chip#13 0x113d95e25 in invocation function for block in dyld3::MachOFile::forEachSection(void (dyld3::MachOFile::SectionInfo const&, bool, bool&) block_pointer) const+0x22c (dyld:x86_64+0x32e25)
    project-chip#14 0x113d64db2 in dyld3::MachOFile::forEachLoadCommand(Diagnostics&, void (load_command const*, bool&) block_pointer) const+0x80 (dyld:x86_64+0x1db2)
    project-chip#15 0x113d95bb6 in dyld3::MachOFile::forEachSection(void (dyld3::MachOFile::SectionInfo const&, bool, bool&) block_pointer) const+0xb2 (dyld:x86_64+0x32bb6)
    project-chip#16 0x113d9e603 in dyld3::MachOAnalyzer::forEachInitializer(Diagnostics&, dyld3::MachOAnalyzer::VMAddrConverter const&, void (unsigned int) block_pointer, void const*) const+0x1d1 (dyld:x86_64+0x3b603)
    project-chip#17 0x113d77d81 in dyld4::Loader::findAndRunAllInitializers(dyld4::RuntimeState&) const+0x8f (dyld:x86_64+0x14d81)
    project-chip#18 0x113d7e659 in dyld4::PrebuiltLoader::runInitializers(dyld4::RuntimeState&) const+0x1d (dyld:x86_64+0x1b659)
    project-chip#19 0x113d8b76d in dyld4::APIs::runAllInitializersForMain()+0x25 (dyld:x86_64+0x2876d)
    project-chip#20 0x113d6938c in dyld4::prepare(dyld4::APIs&, dyld3::MachOAnalyzer const*)+0xd72 (dyld:x86_64+0x638c)
    project-chip#21 0x113d684e3 in start+0x183 (dyld:x86_64+0x54e3)
cliffamzn pushed a commit that referenced this pull request Jul 15, 2024
* pw_unit_test migration: lib support batch #1

* apply restyled patch

* integrate comments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.