Documentation for Ice 3.4. The latest release is Ice 3.7. Refer to the space directory for other releases.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »


Ice::OperationMode

Overview

enum OperationMode

The OperationMode determines the retry behavior an invocation in case of a (potentially) recoverable error.

Used By

Enumerator Index

Normal — Ordinary operations have Normal mode.
Nonmutating — Operations that use the Slice nonmutating keyword must not modify object state.
Idempotent — Operations that use the Slice idempotent keyword can modify object state, but invoking an operation twice in a row must result in the same object state as invoking it once.

Enumerators

Normal

Ordinary operations have Normal mode. These operations modify object state; invoking such an operation twice in a row has different semantics than invoking it once. The Ice run time guarantees that it will not violate at-most-once semantics for Normal operations.

Nonmutating

Operations that use the Slice nonmutating keyword must not modify object state. For C++, nonmutating operations generate const member functions in the skeleton. In addition, the Ice run time will attempt to transparently recover from certain run-time errors by re-issuing a failed request and propagate the failure to the application only if the second attempt fails.

Nonmutating is deprecated; Use the idempotent keyword instead. For C++, to retain the mapping of nonmutating operations to C++ const member functions, use the ["cpp:const"] metadata directive.

Idempotent

Operations that use the Slice idempotent keyword can modify object state, but invoking an operation twice in a row must result in the same object state as invoking it once. For example, x = 1 is an idempotent statement, whereas x += 1 is not. For idempotent operations, the Ice run-time uses the same retry behavior as for nonmutating operations in case of a potentially recoverable error.


  • No labels