QueryRequest.cpp 957 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. //
  2. // QueryRequest.cpp
  3. //
  4. // $Id$
  5. //
  6. // Library: MongoDB
  7. // Package: MongoDB
  8. // Module: QueryRequest
  9. //
  10. // Copyright (c) 2012, Applied Informatics Software Engineering GmbH.
  11. // and Contributors.
  12. //
  13. // SPDX-License-Identifier: BSL-1.0
  14. //
  15. #include "Poco/MongoDB/QueryRequest.h"
  16. namespace Poco {
  17. namespace MongoDB {
  18. QueryRequest::QueryRequest(const std::string& collectionName, QueryRequest::Flags flags):
  19. RequestMessage(MessageHeader::OP_QUERY),
  20. _flags(flags),
  21. _fullCollectionName(collectionName),
  22. _numberToSkip(0),
  23. _numberToReturn(100),
  24. _selector(),
  25. _returnFieldSelector()
  26. {
  27. }
  28. QueryRequest::~QueryRequest()
  29. {
  30. }
  31. void QueryRequest::buildRequest(BinaryWriter& writer)
  32. {
  33. writer << _flags;
  34. BSONWriter(writer).writeCString(_fullCollectionName);
  35. writer << _numberToSkip;
  36. writer << _numberToReturn;
  37. _selector.write(writer);
  38. if (!_returnFieldSelector.empty())
  39. {
  40. _returnFieldSelector.write(writer);
  41. }
  42. }
  43. } } // namespace Poco::MongoDB