mirror of
https://github.com/pocoproject/poco.git
synced 2025-04-01 09:24:55 +02:00
backport #2553: Fixed Poco::MongoDB not working on big-endian architecture system
This commit is contained in:
parent
8d95644bad
commit
584482677f
@ -84,7 +84,7 @@ void Document::read(BinaryReader& reader)
|
|||||||
while (type != '\0')
|
while (type != '\0')
|
||||||
{
|
{
|
||||||
Element::Ptr element;
|
Element::Ptr element;
|
||||||
|
|
||||||
std::string name = BSONReader(reader).readCString();
|
std::string name = BSONReader(reader).readCString();
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
@ -198,7 +198,7 @@ void Document::write(BinaryWriter& writer)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::stringstream sstream;
|
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)
|
for (ElementSet::iterator it = _elements.begin(); it != _elements.end(); ++it)
|
||||||
{
|
{
|
||||||
tempWriter << static_cast<unsigned char>((*it)->type());
|
tempWriter << static_cast<unsigned char>((*it)->type());
|
||||||
@ -207,7 +207,7 @@ void Document::write(BinaryWriter& writer)
|
|||||||
element->write(tempWriter);
|
element->write(tempWriter);
|
||||||
}
|
}
|
||||||
tempWriter.flush();
|
tempWriter.flush();
|
||||||
|
|
||||||
Poco::Int32 len = static_cast<Poco::Int32>(5 + sstream.tellp()); /* 5 = sizeof(len) + 0-byte */
|
Poco::Int32 len = static_cast<Poco::Int32>(5 + sstream.tellp()); /* 5 = sizeof(len) + 0-byte */
|
||||||
writer << len;
|
writer << len;
|
||||||
writer.writeRaw(sstream.str());
|
writer.writeRaw(sstream.str());
|
||||||
|
@ -21,7 +21,7 @@ namespace Poco {
|
|||||||
namespace MongoDB {
|
namespace MongoDB {
|
||||||
|
|
||||||
|
|
||||||
RequestMessage::RequestMessage(MessageHeader::OpCode opcode):
|
RequestMessage::RequestMessage(MessageHeader::OpCode opcode):
|
||||||
Message(opcode)
|
Message(opcode)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -35,7 +35,7 @@ RequestMessage::~RequestMessage()
|
|||||||
void RequestMessage::send(std::ostream& ostr)
|
void RequestMessage::send(std::ostream& ostr)
|
||||||
{
|
{
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
BinaryWriter requestWriter(ss);
|
BinaryWriter requestWriter(ss, BinaryWriter::LITTLE_ENDIAN_BYTE_ORDER);
|
||||||
buildRequest(requestWriter);
|
buildRequest(requestWriter);
|
||||||
requestWriter.flush();
|
requestWriter.flush();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user