1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 #include "DBusOutputStream.h"
9 DBusOutputStream::DBusOutputStream(DBusMessage dbusMessage) :
10 dbusMessage_(dbusMessage) {
13 DBusOutputStream::~DBusOutputStream() {
16 void DBusOutputStream::flush() {
17 const int toWrite = payload_.size();
18 const bool success = dbusMessage_.setBodyLength(toWrite);
19 char* destinationDataPtr = dbusMessage_.getBodyData();
21 memcpy(destinationDataPtr, payload_.c_str(), toWrite);
24 void DBusOutputStream::reserveMemory(size_t numOfBytes) {
25 assert(numOfBytes >= 0);
27 payload_.reserve(numOfBytes);
30 DBusOutputStream& DBusOutputStream::writeString(const char* cString, const uint32_t& length) {
31 assert(cString != NULL);
32 assert(cString[length] == '\0');
36 writeRawData(cString, length + 1);
42 } // namespace CommonAPI