3.1.1 Abstract Data Model
This section describes a conceptual model of a possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.
Provider Manifest Table: A set of provider manifests for available event providers that can be added to a session. This metadata can be expressed in any implementation-dependent<2> format.
Session Table: A set of event sessions, where each event session contains the following properties:
Session ID: A GUID that uniquely identifies the event session.
Session Name: A human-readable event session name assigned by the client when the event session was created.
Session State: The session's state, either Stopped or Running, where the initial value is Stopped.
Associated Provider List: A list of event providers associated with the event session, where each entry contains the following properties:
Event Provider: An event provider that has an entry in the provider manifest table.
Level: The maximum level (as defined in the associated provider manifest) of events to include in the event session.
Match Any Keyword: A set of keywords defined in the associated provider manifest, where at least one keyword is required to match a keyword of an event in order for the event to be included in the event session.
Match All Keywords: A set of keywords defined in the associated provider manifest, where all keywords are required to be present in an event in order for the event to be included in the event session.
Session Handle: An RPC Session Handle allocated by the RpcNetEventOpenSession (section 3.1.4.2.1) method.
Queued Event List: A list of events waiting to be returned by a call to the RpcNetEventReceiveData (section 3.1.4.2.2) method.
Lost Event Count: The number of events between two sequential calls to the RpcNetEventReceiveData method that were lost due to overflow of the Queued Event List.
Outstanding RpcNetEventReceiveData Call: Either empty, or holds a pending call to the RpcNetEventReceiveData method to be completed later.