%PDF- %PDF-
Direktori : /home/opti/optisoftcom-new/perl/usr/lib/perl5/MongoDB/ |
Current File : /home/opti/optisoftcom-new/perl/usr/lib/perl5/MongoDB/ReadConcern.pm |
# Copyright 2015 - present MongoDB, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. use strict; use warnings; package MongoDB::ReadConcern; # ABSTRACT: Encapsulate and validate a read concern use version; our $VERSION = 'v2.0.2'; use Moo; use MongoDB::Error; use Types::Standard qw( Maybe Str ArrayRef ); use namespace::clean; #pod =attr level #pod #pod The read concern level determines the consistency level required #pod of data being read. #pod #pod The default level is C<undef>, which means the server will use its configured #pod default. #pod #pod If the level is set to "local", reads will return the latest data a server has #pod locally. #pod #pod Additional levels are storage engine specific. See L<Read #pod Concern|http://docs.mongodb.org/manual/search/?query=readConcern> in the MongoDB #pod documentation for more details. #pod #pod This may be set in a connection string with the the C<readConcernLevel> option. #pod #pod =cut has level => ( is => 'ro', isa => Maybe [Str], predicate => 'has_level', ); sub BUILD { my $self = shift; if ( defined $self->{level} ) { $self->{level} = lc $self->{level}; } } # public interface for compatibility, but undocumented sub as_args { my ( $self, $session ) = @_; # if session is defined and operation_time is not, then either the # operation_time was not sent on the response from the server for this # session or the session has causal consistency disabled. if ( $self->{level} ) { return [ readConcern => { level => $self->{level}, ( defined $session && defined $session->operation_time ? ( afterClusterTime => $session->operation_time ) : () ), } ]; } else { return [ ( defined $session && defined $session->operation_time ? ( readConcern => { afterClusterTime => $session->operation_time } ) : () ) ]; } } 1; __END__ =pod =encoding UTF-8 =head1 NAME MongoDB::ReadConcern - Encapsulate and validate a read concern =head1 VERSION version v2.0.2 =head1 SYNOPSIS $rc = MongoDB::ReadConcern->new(); # no defaults $rc = MongoDB::ReadConcern->new( level => 'local', ); =head1 DESCRIPTION A Read Concern describes the constraints that MongoDB must satisfy when reading data. Read Concern was introduced in MongoDB 3.2. =head1 ATTRIBUTES =head2 level The read concern level determines the consistency level required of data being read. The default level is C<undef>, which means the server will use its configured default. If the level is set to "local", reads will return the latest data a server has locally. Additional levels are storage engine specific. See L<Read Concern|http://docs.mongodb.org/manual/search/?query=readConcern> in the MongoDB documentation for more details. This may be set in a connection string with the the C<readConcernLevel> option. =head1 AUTHORS =over 4 =item * David Golden <david@mongodb.com> =item * Rassi <rassi@mongodb.com> =item * Mike Friedman <friedo@friedo.com> =item * Kristina Chodorow <k.chodorow@gmail.com> =item * Florian Ragwitz <rafl@debian.org> =back =head1 COPYRIGHT AND LICENSE This software is Copyright (c) 2018 by MongoDB, Inc. This is free software, licensed under: The Apache License, Version 2.0, January 2004 =cut