<commit_before>syntax = "proto3";

package hedgehog.protocol.proto;

option java_package = "at.pria.hedgehog.protocol.proto";
option java_outer_classname = "SubscriptionP";

// Describes a subscription to a value.
// Generally, a value may change, and subscribers are informed about these changes.
// Limits on the granularity in the time- and value domains might be set.
// An update is sent
// - at the earliest `timeout` milliseconds after the previous update
// - when the value is different from the value in the last update (if there was one already)
// but, if a (type-specific) value granularity is specified, only if
// - the change is big enough, determined in a type-specific way; or
// - the `granularity_timeout` has run out
//
// A subscription is identified by its subscription details (i.e. timeout, granularity, and
// granularity timeout), plus any value-specific identifying information (e.g. a sensor port).
// Updates to a subscription contain the same identifying information.
// Subscriptions that differ in either receive separate updates, and can be cancelled
// separately by sending a subscription message with `subscribe = False`.
//<commit_msg>add to doc of subscription<commit_after>syntax = "proto3";

package hedgehog.protocol.proto;

option java_package = "at.pria.hedgehog.protocol.proto";
option java_outer_classname = "SubscriptionP";

// Describes a subscription to a value.
// Generally, a value may change, and subscribers are informed about these changes.
// Limits on the granularity in the time- and value domains might be set.
// An update is sent
// - at the earliest `timeout` milliseconds after the previous update
// - when the value is different from the value in the last update (if there was one already)
// but, if a (type-specific) value granularity is specified, only if
// - the change is big enough, determined in a type-specific way; or
// - the `granularity_timeout` has run out
// for values that show spurious small changes (e.g. sensor noise), at least one kind of
// timeout should be greater than zero.
//
// A subscription is identified by its subscription details (i.e. timeout, granularity, and
// granularity timeout), plus any value-specific identifying information (e.g. a sensor port).
// Updates to a subscription contain the same identifying information.
// Subscriptions that differ in either receive separate updates, and can be cancelled
// separately by sending a subscription message with `subscribe = False`.
//
{'fraction_non_alphanumeric': 0.0819935691318328, 'fraction_numerical': 0.0008038585209003215, 'mean_word_length': 3.987975951903808, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6021319', 'n_tokens_mistral': 641, 'n_tokens_neox': 615, 'n_words': 325}