File Coverage

blib/lib/MongoDB/Op/_ParallelScan.pm
Criterion Covered Total %
statement 27 33 81.8
branch 0 2 0.0
condition n/a
subroutine 9 10 90.0
pod 0 1 0.0
total 36 46 78.2


line stmt bran cond sub pod time code
1             # Copyright 2015 - present MongoDB, Inc.
2             #
3             # Licensed under the Apache License, Version 2.0 (the "License");
4             # you may not use this file except in compliance with the License.
5             # You may obtain a copy of the License at
6             #
7             # http://www.apache.org/licenses/LICENSE-2.0
8             #
9             # Unless required by applicable law or agreed to in writing, software
10             # distributed under the License is distributed on an "AS IS" BASIS,
11             # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12             # See the License for the specific language governing permissions and
13             # limitations under the License.
14              
15 58     58   433 use strict;
  58         173  
  58         1848  
16 58     58   330 use warnings;
  58         135  
  58         2160  
17             package MongoDB::Op::_ParallelScan;
18              
19             # Encapsulate code path for parallelCollectionScan commands
20              
21 58     58   359 use version;
  58         124  
  58         373  
22             our $VERSION = 'v2.2.0';
23              
24 58     58   4456 use Moo;
  58         133  
  58         413  
25              
26 58     58   19569 use MongoDB::Op::_Command;
  58         178  
  58         1460  
27 58     58   340 use MongoDB::Error;
  58         154  
  58         7022  
28              
29 58         488 use Types::Standard qw(
30             HashRef
31             Int
32 58     58   446 );
  58         182  
33              
34 58     58   55716 use BSON::Types qw/bson_int64/;
  58         143  
  58         2884  
35              
36 58     58   395 use namespace::clean;
  58         134  
  58         434  
37              
38             has num_cursors => (
39             is => 'ro',
40             required => 1,
41             isa => Int,
42             );
43              
44             has options => (
45             is => 'ro',
46             required => 1,
47             isa => HashRef,
48             );
49              
50             with $_ for qw(
51             MongoDB::Role::_PrivateConstructor
52             MongoDB::Role::_CollectionOp
53             MongoDB::Role::_ReadOp
54             );
55              
56             sub execute {
57 0     0 0   my ( $self, $link, $topology ) = @_;
58              
59             my $command = [
60             parallelCollectionScan => $self->coll_name,
61             numCursors => bson_int64($self->num_cursors),
62             ($link->supports_read_concern ?
63 0           @{ $self->read_concern->as_args() } : () ),
64 0 0         %{$self->options},
  0            
65             ];
66              
67 0           my $op = MongoDB::Op::_Command->_new(
68             db_name => $self->db_name,
69             query => $command,
70             query_flags => {},
71             bson_codec => $self->bson_codec,
72             read_preference => $self->read_preference,
73             monitoring_callback => $self->monitoring_callback,
74             );
75              
76 0           return $op->execute( $link, $topology );
77             }
78              
79             1;