Bluenet  5.7.0
Bluenet, firmware for nRF52 smart home devices
Loading...
Searching...
No Matches
cs_AssetFilter.h
Go to the documentation of this file.
1/*
2 * Author: Crownstone Team
3 * Copyright: Crownstone (https://crownstone.rocks)
4 * Date: Sep 27, 2021
5 * License: LGPLv3+, Apache License 2.0, and/or MIT (triple-licensed)
6 */
7
8#pragma once
9
13
20public:
21 uint8_t* _data; // byte representation of this object.
22 AssetFilter(uint8_t* data) : _data(data) {}
23 ~AssetFilter() = default;
24
25 // Accessor methods
26
31
36
37 // FilterInterface
38
42 size_t size() override;
43
44 bool contains(const void* key, size_t keyLengthInBytes) override;
45
46 bool isValid() override;
47
48 // Scan based utils
49
55
63
64private:
72 virtual asset_id_t assetId(const void* key, size_t keyLengthInBytes, uint32_t* startCrc = nullptr);
73
88 template <class ReturnType, class ExpressionType>
90 const scanned_device_t& device,
91 AssetFilterInput filterInputDescription,
92 ExpressionType delegateExpression,
93 ReturnType defaultValue);
94};
Class that contains all persisted data required for an asset filter:
Definition: cs_AssetFilterPacketAccessors.h:148
This file defines several accessor classes for structures that relate to the trackable parser.
Definition: cs_AssetFilterPacketAccessors.h:23
Class that contains all data required for an asset filter:
Definition: cs_AssetFilter.h:19
bool contains(const void *key, size_t keyLengthInBytes) override
bool isValid() override
asset_id_t getAssetId(const scanned_device_t &asset)
Returns a asset_id_t based on the configured selection of data in metadata.outputType....
ReturnType prepareFilterInputAndCallDelegate(const scanned_device_t &device, AssetFilterInput filterInputDescription, ExpressionType delegateExpression, ReturnType defaultValue)
This method extracts the filters 'input description', prepares the input according to that descriptio...
asset_filter_runtime_data_t * runtimedata()
Get the runtime data.
virtual asset_id_t assetId(const void *key, size_t keyLengthInBytes, uint32_t *startCrc=nullptr)
A assetId is generated as crc32 from filtered input data.
AssetFilterData filterdata()
Get the filter data.
bool filterAcceptsScannedDevice(const scanned_device_t &asset)
Returns true if the device passes the filter according to its metadata settings.
~AssetFilter()=default
AssetFilter(uint8_t *data)
Definition: cs_AssetFilter.h:22
size_t size() override
Number of bytes of the data, according to the metadata contained in it.
uint8_t * _data
Definition: cs_AssetFilter.h:21
Used in AssetFiltering as a generic way to query a filter for containment and assetId.
Definition: cs_FilterInterface.h:16
Runtime meta data associated to an asset filter that is not persisted to flash.
Definition: cs_AssetFilterStructs.h:17
Definition: cs_AssetFilterPackets.h:93
Scanned device.
Definition: cs_PacketsInternal.h:107