Classes | |
class | ArrayAttribute< T > |
Attribute that is an array (ordered list possibly with duplication) of other values. More... | |
class | ByteCountAttribute |
specialized attribute; wraps a call to count the number of packets in an aggregate More... | |
class | HistogramAttribute< T > |
Attribute that is a histogram. More... | |
class | PacketCountAttribute |
specialized attribute; wraps a call to count the number of packets in an aggregate More... | |
class | SetAttribute |
An attribute that is a set (unordered list without duplication) of other values. More... | |
class | SumAttribute< T > |
Computes a summary of the specified property. More... | |
class | Attribute |
Base class for representing data attributes of packet aggregates. More... | |
class | AttributeFunction |
A function used in the computation of an attribute value. More... | |
class | ScalarAttribute< T > |
A calculation or observation that resolves to a single value. More... | |
class | PacketAttributeValue |
Class containing a value for a PacketAttribute. More... | |
class | ConcretePacketAttributeValue< T > |
A set of templated attribute value types. More... | |
class | PacketAttribute |
An attribute of a packet; the available attributes depends on the type of the packet. More... |
Attributes can be computed in two modes: online and offline. Online computation generally means that the Attribute will be associated with an Aggregate before the Aggregate is populated, and will compute its value incrementally with each packet (or possibly each Aggregate) that is added to the Aggregate. Offline computation means that the Attribute will be given a populated Aggregate and will compute its value based on the members of the Aggregate. Attributes MUST support offline computation, and MAY support online computation if feasible. It is understood that for some attributes, it may not be technically possible to compute the value online.
Sliding window aggregates are a special case; it is not likely to be desirable to create instances of the Attribute for each window. <insert brilliant plan for handling sliding windows here...>