nx_server_plugin_sdk  1.0
Server Plugin SDK
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
nx::sdk::cloud_storage::AttributeSearchCondition Struct Reference

#include <data.h>

Public Types

enum  Type { attributePresenceCheck, attributeValueMatch, textMatch, numericRangeMatch }
 

Public Member Functions

 AttributeSearchCondition (const nx::kit::Json &json) noexcept(false)
 
 AttributeSearchCondition (const char *jsonData) noexcept(false)
 
template<typename T >
 AttributeSearchCondition (const T &)=delete
 
bool operator== (const AttributeSearchCondition &) const
 
nx::kit::Json to_json () const
 

Static Public Member Functions

static ValueOrError< AttributeSearchConditionfromJson (const char *jsonStr) noexcept
 
static ValueOrError< AttributeSearchConditionfromJson (const nx::kit::Json &json) noexcept
 
static std::string typeToString (Type type)
 
static Type typeFromString (const std::string &s)
 

Public Attributes

Type type
 
std::string name
 
std::string value
 
std::string text
 
bool isNegative = false
 
bool matchesFromStart = false
 
bool matchesTillEnd = false
 
NumericRange range
 

Detailed Description

A search condition representation specifying how exactly to filter queried object tracks by their attributes.

Multiple condition match results are joined using AND logic. So for object track to be included in the result its attributes (any of them) should match every condition present in the Filter. I.e., bool objectTrackMatch = atLeastOneAttrMatch(condition_1) && ... && atLeastOneAttrMatch(condition_N)

Member Enumeration Documentation

◆ Type

All search types except 'textMatch' assume that ObjectTrack attribute name matches the condition name only if the match starts from the beginning and lasts till the end or the point separator.

For example, let one of the ObjectTrack Attribute equals to car.color=blue. Then the Search conditions with the following names should match: car, car.color. But not the ca, car.co, carxx or car.colov. In case of the textMatch for the Attribute to match search condition it's enough that either Attribute name or value contain AttributeSearchCondition::text. Condition name and value should be ignored in this case.

numericRangeMatch assumes that the Attribute value contains a valid NumericRange, and it it intersects with AttributeSearchCondition::range.

Member Data Documentation

◆ isNegative

bool nx::sdk::cloud_storage::AttributeSearchCondition::isNegative = false

If it is set to true than the ObjectTrack should be included in the result only if it does not match the given condition.

◆ matchesFromStart

bool nx::sdk::cloud_storage::AttributeSearchCondition::matchesFromStart = false

If it is set to true, then the value should be matched from the beginning.

◆ matchesTillEnd

bool nx::sdk::cloud_storage::AttributeSearchCondition::matchesTillEnd = false

If it is set to true, then the value should be matched till the end.

◆ range

NumericRange nx::sdk::cloud_storage::AttributeSearchCondition::range

Used when type == numericRangeMatch. Object track attribute value should contain numeric range value and it should intersect the given condition value for the Object track to be included in the result.


The documentation for this struct was generated from the following files: