Couchbase C++ SDK 1.0.1 (rev. 58d46d7)
Loading...
Searching...
No Matches
mutate_in_options Struct Reference

Options for collection::mutate_in(). More...

#include <couchbase/mutate_in_options.hxx>

Inheritance diagram for mutate_in_options:
Inheritance graph

Classes

struct  built
 Immutable value object representing consistent options. More...
 

Public Member Functions

auto build () const -> built
 Validates options and returns them as an immutable value.
 
auto preserve_expiry (bool preserve) -> mutate_in_options &
 Specifies whether an existing document's expiry should be preserved.
 
auto expiry (std::chrono::seconds duration) -> mutate_in_options &
 Sets the expiry for the document.
 
auto expiry (std::chrono::system_clock::time_point time_point) -> mutate_in_options &
 Sets the expiry for the document.
 
auto cas (couchbase::cas cas) -> mutate_in_options &
 Specifies a CAS value that will be taken into account on the server side for optimistic concurrency.
 
auto store_semantics (couchbase::store_semantics semantics) -> mutate_in_options &
 Changes the storing semantics of the outer/enclosing document.
 
auto access_deleted (bool value) -> mutate_in_options &
 For internal use only: allows access to deleted documents that are in 'tombstone' form.
 
auto create_as_deleted (bool value) -> mutate_in_options &
 For internal use only: allows creating documents in 'tombstone' form.
 
- Public Member Functions inherited from common_durability_options< mutate_in_options >
auto durability (durability_level level) -> mutate_in_options &
 Allows to customize the enhanced durability requirements for this operation.
 
auto durability (persist_to persist_to_nodes, replicate_to replicate_to_nodes) -> mutate_in_options &
 Allows to customize the poll-based durability requirements for this operation.
 
- Public Member Functions inherited from common_options< derived_class >
auto timeout (const std::chrono::milliseconds timeout) -> derived_class &
 Specifies a custom per-operation timeout.
 
auto retry_strategy (const std::shared_ptr< retry_strategy > strategy) -> derived_class &
 Specifies a custom couchbase::retry_strategy for this operation.
 

Additional Inherited Members

- Protected Member Functions inherited from common_durability_options< mutate_in_options >
auto build_common_durability_options () const -> built
 
- Protected Member Functions inherited from common_options< derived_class >
auto build_common_options () const -> built
 
auto self () -> derived_class &
 Allows to return the right options builder instance for child implementations.
 

Detailed Description

Options for collection::mutate_in().

Since
1.0.0
Committed
Generally available API and should be preferred in production

Member Function Documentation

◆ access_deleted()

auto access_deleted ( bool value) -> mutate_in_options&
inline

For internal use only: allows access to deleted documents that are in 'tombstone' form.

Since
1.0.0
Internal
Internal interface

◆ build()

auto build ( ) const -> built
inline

Validates options and returns them as an immutable value.

Returns
consistent options as an immutable value
Exceptions
std::system_errorwith code errc::common::invalid_argument if the options are not valid
Since
1.0.0
Internal
Internal interface

◆ cas()

auto cas ( couchbase::cas cas) -> mutate_in_options&
inline

Specifies a CAS value that will be taken into account on the server side for optimistic concurrency.

The CAS value is an opaque identifier which is associated with a specific state of the document on the server. The CAS value is received on read operations (or after mutations) and can be used during a subsequent mutation to make sure that the document has not been modified in the meantime.

If document on the server has been modified in the meantime the SDK will raise a errc::common::cas_mismatch. In this case the caller is expected to re-do the whole "fetch-modify-update" cycle again. Please refer to the SDK documentation for more information on CAS mismatches and subsequent retries.

Parameters
casthe opaque CAS identifier to use for this operation.
Returns
the mutate_in_options for chaining purposes.
Since
1.0.0
Committed
Generally available API and should be preferred in production

◆ create_as_deleted()

auto create_as_deleted ( bool value) -> mutate_in_options&
inline

For internal use only: allows creating documents in 'tombstone' form.

Since
1.0.0
Internal
Internal interface

◆ expiry() [1/2]

auto expiry ( std::chrono::seconds duration) -> mutate_in_options&
inline

Sets the expiry for the document.

By default the document will never expire.

The duration must be less than 50 years. For expiry further in the future, use expiry(std::chrono::system_clock::time_point).

Parameters
durationthe duration after which the document will expire (zero duration means never expire).
Returns
this options class for chaining purposes.
Since
1.0.0
Committed
Generally available API and should be preferred in production

◆ expiry() [2/2]

auto expiry ( std::chrono::system_clock::time_point time_point) -> mutate_in_options&
inline

Sets the expiry for the document.

By default the document will never expire.

Parameters
time_pointthe point in time when the document will expire (epoch second zero means never expire).
Returns
this options class for chaining purposes.
Since
1.0.0
Committed
Generally available API and should be preferred in production

◆ preserve_expiry()

auto preserve_expiry ( bool preserve) -> mutate_in_options&
inline

Specifies whether an existing document's expiry should be preserved.

Defaults to false.

If true, and the document exists, its expiry will not be modified. Otherwise the document's expiry is determined by expiry(std::chrono::seconds) or expiry(std::chrono::system_clock::time_point).

Requires Couchbase Server 7.0 or later.

Parameters
preservetrue to preserve expiry, false to set new expiry
Returns
this options class for chaining purposes.
Since
1.0.0
Committed
Generally available API and should be preferred in production

◆ store_semantics()

Changes the storing semantics of the outer/enclosing document.

While each individual mutate_in_specs describes the semantics of the respective sub-document section, the store_semantics are applied to the outer enclosing document as a whole. You can think of using the same verb for a store_semantics aligns with the corresponding full document. So for example a store_semantics::insert works semantically similar to a collection#insert() and will fail if the document as a whole already exists.

Parameters
semanticsthe store semantics to apply to the document.
Returns
this mutate_in_options for chaining purposes.

The documentation for this struct was generated from the following file: