forked from pocoproject/poco
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQueryRequest.h
More file actions
156 lines (113 loc) · 2.99 KB
/
QueryRequest.h
File metadata and controls
156 lines (113 loc) · 2.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
//
// QueryRequest.h
//
// $Id$
//
// Library: MongoDB
// Package: MongoDB
// Module: QueryRequest
//
// Definition of the QueryRequest class.
//
// Copyright (c) 2012, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef MongoDB_QueryRequest_INCLUDED
#define MongoDB_QueryRequest_INCLUDED
#include "Poco/MongoDB/MongoDB.h"
#include "Poco/MongoDB/RequestMessage.h"
#include "Poco/MongoDB/Document.h"
namespace Poco {
namespace MongoDB {
class MongoDB_API QueryRequest : public RequestMessage
/// Class for creating an OP_QUERY client request. This request
/// is used to query documents from the database.
{
public:
typedef enum
{
QUERY_NONE = 0,
QUERY_TAILABLECURSOR = 2,
QUERY_SLAVE_OK = 4,
//QUERY_OPLOG_REPLAY = 8 (internal replication use only - drivers should not implement)
QUERY_NOCUROSR_TIMEOUT = 16,
QUERY_AWAIT_DATA = 32,
QUERY_EXHAUST = 64,
QUERY_PARTIAL = 128
} Flags;
QueryRequest(const std::string& collectionName, Flags flags = QUERY_NONE);
/// Constructor.
/// The full collection name is the concatenation of the database
/// name with the collection name, using a "." for the concatenation. For example,
/// for the database "foo" and the collection "bar", the full collection name is
/// "foo.bar".
virtual ~QueryRequest();
/// Destructor
Flags getFlags() const;
/// Returns the flags
void setFlags(Flags flag);
/// Set the flags
std::string fullCollectionName() const;
/// Returns the <db>.<collection> used for this query
Int32 getNumberToSkip() const;
/// Returns the number of documents to skip
void setNumberToSkip(Int32 n);
/// Sets the number of documents to skip
Int32 getNumberToReturn() const;
/// Returns the number to return
void setNumberToReturn(Int32 n);
/// Sets the number to return (limit)
Document& selector();
/// Returns the selector document
Document& returnFieldSelector();
/// Returns the field selector document
protected:
void buildRequest(BinaryWriter& writer);
private:
Flags _flags;
std::string _fullCollectionName;
Int32 _numberToSkip;
Int32 _numberToReturn;
Document _selector;
Document _returnFieldSelector;
};
inline QueryRequest::Flags QueryRequest::getFlags() const
{
return _flags;
}
inline void QueryRequest::setFlags(QueryRequest::Flags flags)
{
_flags = flags;
}
inline std::string QueryRequest::fullCollectionName() const
{
return _fullCollectionName;
}
inline Document& QueryRequest::selector()
{
return _selector;
}
inline Document& QueryRequest::returnFieldSelector()
{
return _returnFieldSelector;
}
inline Int32 QueryRequest::getNumberToSkip() const
{
return _numberToSkip;
}
inline void QueryRequest::setNumberToSkip(Int32 n)
{
_numberToSkip = n;
}
inline Int32 QueryRequest::getNumberToReturn() const
{
return _numberToReturn;
}
inline void QueryRequest::setNumberToReturn(Int32 n)
{
_numberToReturn = n;
}
} } // namespace Poco::MongoDB
#endif //MongoDB_QueryRequest_INCLUDED