Ice::OperationMode
Overview
enum OperationMode
The OperationMode determines the retry behavior an
invocation in case of a (potentially) recoverable error.
Used By
- Current::mode
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.