As all cursor methods may be called either by the addressbook service or
directly by a client in Direct Read Access mode, it is important that the
operation be an atomic transaction with the underlying database.
The revision_guard, if specified, will be set to the %CLIENT_BACKEND_PROPERTY_REVISION
value at the time which the given client issued the call to move the cursor.
If the revision_guard provided by the client does not match the stored addressbook
revision, then an %E_CLIENT_ERROR_OUT_OF_SYNC error should be set to indicate
that the revision was out of sync while attempting to move the cursor.
If the addressbook backend supports direct read access, then the
revision comparison and reading of the data store must be coupled into a
single atomic operation (the data read back from the store must be the correct
data for the given addressbook revision).
See e_data_book_cursor_step() for more details on the expected behaviour of this method.
Method type for #EDataBookCursorClass.step()
As all cursor methods may be called either by the addressbook service or directly by a client in Direct Read Access mode, it is important that the operation be an atomic transaction with the underlying database.
The
revision_guard,
if specified, will be set to the %CLIENT_BACKEND_PROPERTY_REVISION value at the time which the given client issued the call to move the cursor. If therevision_guard
provided by the client does not match the stored addressbook revision, then an %E_CLIENT_ERROR_OUT_OF_SYNC error should be set to indicate that the revision was out of sync while attempting to move the cursor.See e_data_book_cursor_step() for more details on the expected behaviour of this method.