mirror of
https://github.com/pocoproject/poco.git
synced 2025-04-02 09:49:48 +02:00

fix: remove executable flag and change back to 100644 (was 100755) Signed-off-by: Roger Meier <r.meier@siemens.com>
76 lines
1.4 KiB
C++
76 lines
1.4 KiB
C++
//
|
|
// Cursor.cpp
|
|
//
|
|
// $Id$
|
|
//
|
|
// Library: MongoDB
|
|
// Package: MongoDB
|
|
// Module: Cursor
|
|
//
|
|
// Implementation of the Cursor class.
|
|
//
|
|
// Copyright (c) 2012, Applied Informatics Software Engineering GmbH.
|
|
// and Contributors.
|
|
//
|
|
// SPDX-License-Identifier: BSL-1.0
|
|
//
|
|
|
|
|
|
#include "Poco/MongoDB/Cursor.h"
|
|
#include "Poco/MongoDB/GetMoreRequest.h"
|
|
#include "Poco/MongoDB/KillCursorsRequest.h"
|
|
|
|
|
|
namespace Poco {
|
|
namespace MongoDB {
|
|
|
|
|
|
Cursor::Cursor(const std::string& db, const std::string& collection, QueryRequest::Flags flags)
|
|
: _query(db + '.' + collection, flags)
|
|
{
|
|
}
|
|
|
|
|
|
Cursor::Cursor(const std::string& fullCollectionName, QueryRequest::Flags flags)
|
|
: _query(fullCollectionName, flags)
|
|
{
|
|
}
|
|
|
|
|
|
Cursor::~Cursor()
|
|
{
|
|
poco_assert_dbg(!_response.cursorID());
|
|
}
|
|
|
|
|
|
ResponseMessage& Cursor::next(Connection& connection)
|
|
{
|
|
if ( _response.cursorID() == 0 )
|
|
{
|
|
connection.sendRequest(_query, _response);
|
|
}
|
|
else
|
|
{
|
|
Poco::MongoDB::GetMoreRequest getMore(_query.fullCollectionName(), _response.cursorID());
|
|
getMore.setNumberToReturn(_query.getNumberToReturn());
|
|
_response.clear();
|
|
connection.sendRequest(getMore, _response);
|
|
}
|
|
return _response;
|
|
}
|
|
|
|
|
|
void Cursor::kill(Connection& connection)
|
|
{
|
|
if ( _response.cursorID() != 0 )
|
|
{
|
|
KillCursorsRequest killRequest;
|
|
killRequest.cursors().push_back(_response.cursorID());
|
|
connection.sendRequest(killRequest);
|
|
}
|
|
_response.clear();
|
|
}
|
|
|
|
|
|
} } // Namespace Poco::MongoDB
|