1
0
mirror of https://github.com/pocoproject/poco.git synced 2025-03-30 15:45:55 +02:00

backport : Fixed Poco::MongoDB not working on big-endian architecture system

This commit is contained in:
Günter Obiltschnig 2018-11-23 08:34:21 +01:00
parent 8d95644bad
commit 584482677f
2 changed files with 5 additions and 5 deletions

@ -84,7 +84,7 @@ void Document::read(BinaryReader& reader)
while (type != '\0')
{
Element::Ptr element;
std::string name = BSONReader(reader).readCString();
switch (type)
@ -198,7 +198,7 @@ void Document::write(BinaryWriter& writer)
else
{
std::stringstream sstream;
Poco::BinaryWriter tempWriter(sstream);
Poco::BinaryWriter tempWriter(sstream, BinaryWriter::LITTLE_ENDIAN_BYTE_ORDER);
for (ElementSet::iterator it = _elements.begin(); it != _elements.end(); ++it)
{
tempWriter << static_cast<unsigned char>((*it)->type());
@ -207,7 +207,7 @@ void Document::write(BinaryWriter& writer)
element->write(tempWriter);
}
tempWriter.flush();
Poco::Int32 len = static_cast<Poco::Int32>(5 + sstream.tellp()); /* 5 = sizeof(len) + 0-byte */
writer << len;
writer.writeRaw(sstream.str());

@ -21,7 +21,7 @@ namespace Poco {
namespace MongoDB {
RequestMessage::RequestMessage(MessageHeader::OpCode opcode):
RequestMessage::RequestMessage(MessageHeader::OpCode opcode):
Message(opcode)
{
}
@ -35,7 +35,7 @@ RequestMessage::~RequestMessage()
void RequestMessage::send(std::ostream& ostr)
{
std::stringstream ss;
BinaryWriter requestWriter(ss);
BinaryWriter requestWriter(ss, BinaryWriter::LITTLE_ENDIAN_BYTE_ORDER);
buildRequest(requestWriter);
requestWriter.flush();