Share via


States and State Transitions in Providers

The following diagram shows the events that take place within a rowset method, such as IRowsetChange::SetData, when the method is implemented in a provider that supports notifications.

Provider state/state transition diagram

states and transitions for notification providers

States

  • Enter Method and Exit Method are conceptual states representing the initial and final states of a method issuing notifications.

  • OKTODO, ABOUTTODO, SYNCHAFTER, DIDEVENT, and FAILEDTODO are states representing notifications sent by the method to consumers. These states are represented by the values of DBEVENTPHASE.

  • Preliminary Work, Permanent Work, and Undo Work are internal states representing work done by the provider between notifications.

Transitions

  • Arrows with a heavy continuous line represent transitions within states when all consumers return S_OK as a result of the notification sent by the state at the start of the arrow. In general, a transition through a heavy continuous line represents an acceptance path by the consumer on the notification.

  • Arrows with a light continuous line represent transitions within states when at least one consumer returns S_FALSE as a result of the notification sent by the state at the start of the arrow. In general, a transition through a light continuous line represents a cancellation path by the consumer on the notification.

  • Arrows with a dashed line represent internal transitions within the method. The transitions from Preliminary Work or Permanent Work to FAILEDTODO are transitions that result from some error in the execution of the method. A transition from Enter Method to Exit Method represents a path where the method detects some error condition that implies no notification work.