aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zen/cmds/run.cpp5
-rw-r--r--zencore/compactbinarypackage.cpp47
-rw-r--r--zencore/include/zencore/stream.h149
-rw-r--r--zencore/include/zencore/streamutil.h69
-rw-r--r--zencore/stream.cpp36
-rw-r--r--zencore/zencore.vcxproj1
-rw-r--r--zencore/zencore.vcxproj.filters1
-rw-r--r--zenhttp/httpclient.cpp5
-rw-r--r--zenserver-test/zenserver-test.cpp37
-rw-r--r--zenserver/cache/structuredcache.cpp10
-rw-r--r--zenserver/casstore.cpp48
-rw-r--r--zenserver/projectstore.cpp10
-rw-r--r--zenserver/upstream/upstreamcache.cpp10
-rw-r--r--zenserver/upstream/zen.cpp5
-rw-r--r--zenserver/windows/service.cpp2
15 files changed, 87 insertions, 348 deletions
diff --git a/zen/cmds/run.cpp b/zen/cmds/run.cpp
index 4ffbf820c..94eb7ef6d 100644
--- a/zen/cmds/run.cpp
+++ b/zen/cmds/run.cpp
@@ -139,9 +139,8 @@ RunCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv)
}
PrepReq.EndArray();
- zen::MemoryOutStream MemOut;
- zen::BinaryWriter MemWriter(MemOut);
- PrepReq.Save(MemWriter);
+ zen::BinaryWriter MemOut;
+ PrepReq.Save(MemOut);
Zen1.WaitUntilReady();
diff --git a/zencore/compactbinarypackage.cpp b/zencore/compactbinarypackage.cpp
index fbdcd24e9..88757d47f 100644
--- a/zencore/compactbinarypackage.cpp
+++ b/zencore/compactbinarypackage.cpp
@@ -83,8 +83,7 @@ CbAttachment::CbAttachment(const CbObject& InValue, const IoHash* const InHash)
bool
CbAttachment::TryLoad(IoBuffer& InBuffer, BufferAllocator Allocator)
{
- MemoryInStream InStream(InBuffer.Data(), InBuffer.Size());
- BinaryReader Reader(InStream);
+ BinaryReader Reader(InBuffer.Data(), InBuffer.Size());
return TryLoad(Reader, Allocator);
}
@@ -427,8 +426,7 @@ CbPackage::GatherAttachments(const CbObject& Value, AttachmentResolver Resolver)
bool
CbPackage::TryLoad(IoBuffer InBuffer, BufferAllocator Allocator, AttachmentResolver* Mapper)
{
- MemoryInStream InStream(InBuffer.Data(), InBuffer.Size());
- BinaryReader Reader(InStream);
+ BinaryReader Reader(InBuffer.Data(), InBuffer.Size());
return TryLoad(Reader, Allocator, Mapper);
}
@@ -670,8 +668,7 @@ namespace legacy {
bool TryLoadCbPackage(CbPackage& Package, IoBuffer InBuffer, BufferAllocator Allocator, CbPackage::AttachmentResolver* Mapper)
{
- MemoryInStream InStream(InBuffer.Data(), InBuffer.Size());
- BinaryReader Reader(InStream);
+ BinaryReader Reader(InBuffer.Data(), InBuffer.Size());
return TryLoadCbPackage(Package, Reader, Allocator, Mapper);
}
@@ -764,24 +761,22 @@ TEST_CASE("usonpackage")
Attachment.Save(Writer);
CbFieldIterator Fields = Writer.Save();
- MemoryOutStream WriteStream;
- BinaryWriter StreamWriter{WriteStream};
+ BinaryWriter StreamWriter;
Attachment.Save(StreamWriter);
- CHECK(MakeMemoryView(WriteStream).EqualBytes(Fields.GetRangeBuffer().GetView()));
- CHECK(ValidateCompactBinaryRange(MakeMemoryView(WriteStream), CbValidateMode::All) == CbValidateError::None);
- CHECK(ValidateObjectAttachment(MakeMemoryView(WriteStream), CbValidateMode::All) == CbValidateError::None);
+ CHECK(MakeMemoryView(StreamWriter).EqualBytes(Fields.GetRangeBuffer().GetView()));
+ CHECK(ValidateCompactBinaryRange(MakeMemoryView(StreamWriter), CbValidateMode::All) == CbValidateError::None);
+ CHECK(ValidateObjectAttachment(MakeMemoryView(StreamWriter), CbValidateMode::All) == CbValidateError::None);
CbAttachment FromFields;
FromFields.TryLoad(Fields);
CHECK(!bool(Fields));
CHECK(FromFields == Attachment);
- CbAttachment FromArchive;
- MemoryInStream InStream(MakeMemoryView(WriteStream));
- BinaryReader Reader(InStream);
+ CbAttachment FromArchive;
+ BinaryReader Reader(MakeMemoryView(StreamWriter));
FromArchive.TryLoad(Reader);
- CHECK(Reader.CurrentOffset() == InStream.Size());
+ CHECK(Reader.CurrentOffset() == Reader.Size());
CHECK(FromArchive == Attachment);
};
@@ -956,9 +951,8 @@ TEST_CASE("usonpackage.serialization")
Package.Save(Writer);
CbFieldIterator Fields = Writer.Save();
- MemoryOutStream MemStream;
- BinaryWriter WriteAr(MemStream);
- Package.Save(WriteAr);
+ BinaryWriter MemStream;
+ Package.Save(MemStream);
CHECK(MakeMemoryView(MemStream).EqualBytes(Fields.GetRangeBuffer().GetView()));
CHECK(ValidateCompactBinaryRange(MakeMemoryView(MemStream), CbValidateMode::All) == CbValidateError::None);
@@ -969,11 +963,10 @@ TEST_CASE("usonpackage.serialization")
CHECK_FALSE(bool(Fields));
CHECK(FromFields == Package);
- CbPackage FromArchive;
- MemoryInStream ReadMemStream(MakeMemoryView(MemStream));
- BinaryReader ReadAr(ReadMemStream);
+ CbPackage FromArchive;
+ BinaryReader ReadAr(MakeMemoryView(MemStream));
FromArchive.TryLoad(ReadAr);
- CHECK(ReadAr.CurrentOffset() == ReadMemStream.Size());
+ CHECK(ReadAr.CurrentOffset() == ReadAr.Size());
CHECK(FromArchive == Package);
};
@@ -1195,12 +1188,10 @@ TEST_CASE("usonpackage.serialization")
CHECK(FieldsOuterBufferView.Contains(Level4Attachment->AsBinary().GetView()));
CHECK(Level4Attachment->GetHash() == Level4Hash);
- MemoryOutStream WriteStream;
- BinaryWriter WriteAr(WriteStream);
- Writer.Save(WriteAr);
- CbPackage FromArchive;
- MemoryInStream ReadStream(MakeMemoryView(WriteStream));
- BinaryReader ReadAr(ReadStream);
+ BinaryWriter WriteStream;
+ Writer.Save(WriteStream);
+ CbPackage FromArchive;
+ BinaryReader ReadAr(MakeMemoryView(WriteStream));
FromArchive.TryLoad(ReadAr);
Writer.Reset();
diff --git a/zencore/include/zencore/stream.h b/zencore/include/zencore/stream.h
index bab349068..9d1a7628c 100644
--- a/zencore/include/zencore/stream.h
+++ b/zencore/include/zencore/stream.h
@@ -5,85 +5,49 @@
#include "zencore.h"
#include <zencore/memory.h>
-#include <zencore/refcount.h>
#include <zencore/thread.h>
-#include <string_view>
#include <vector>
namespace zen {
/**
- * Stream which writes into a growing memory buffer
- */
-class MemoryOutStream : public RefCounted
-{
-public:
- MemoryOutStream() = default;
- ~MemoryOutStream() = default;
-
- void Write(const void* DataPtr, size_t ByteCount, uint64_t Offset);
- void Flush();
- inline const uint8_t* Data() const { return m_Buffer.data(); }
- inline const uint8_t* GetData() const { return m_Buffer.data(); }
- inline uint64_t Size() const { return m_Buffer.size(); }
- inline uint64_t GetSize() const { return m_Buffer.size(); }
-
-private:
- RwLock m_Lock;
- std::vector<uint8_t> m_Buffer;
-};
-
-inline MemoryView
-MakeMemoryView(const MemoryOutStream& Stream)
-{
- return MemoryView(Stream.Data(), Stream.Size());
-}
-
-/**
* Binary stream writer
*/
class BinaryWriter
{
public:
- inline BinaryWriter(MemoryOutStream& Stream) : m_Stream(&Stream) {}
- ~BinaryWriter() = default;
+ inline BinaryWriter() = default;
+ ~BinaryWriter() = default;
inline void Write(const void* DataPtr, size_t ByteCount)
{
- m_Stream->Write(DataPtr, ByteCount, m_Offset);
+ Write(DataPtr, ByteCount, m_Offset);
m_Offset += ByteCount;
}
inline uint64_t CurrentOffset() const { return m_Offset; }
-private:
- RefPtr<MemoryOutStream> m_Stream;
- uint64_t m_Offset = 0;
-};
-
-/**
- * Stream which reads from a memory buffer
- */
-class MemoryInStream : public RefCounted
-{
-public:
- MemoryInStream(const void* Buffer, size_t Size);
- MemoryInStream(MemoryView View) : MemoryInStream(View.GetData(), View.GetSize()) {}
- ~MemoryInStream() = default;
-
- void Read(void* DataPtr, size_t ByteCount, uint64_t ReadOffset);
- uint64_t Size() const { return m_Buffer.size(); }
- uint64_t GetSize() const { return Size(); }
inline const uint8_t* Data() const { return m_Buffer.data(); }
inline const uint8_t* GetData() const { return m_Buffer.data(); }
+ inline uint64_t Size() const { return m_Buffer.size(); }
+ inline uint64_t GetSize() const { return m_Buffer.size(); }
private:
RwLock m_Lock;
std::vector<uint8_t> m_Buffer;
+ uint64_t m_Offset = 0;
+
+ void Write(const void* DataPtr, size_t ByteCount, uint64_t Offset);
};
+inline MemoryView
+MakeMemoryView(const BinaryWriter& Stream)
+{
+ return MemoryView(Stream.Data(), Stream.Size());
+}
+
/**
* Binary stream reader
*/
@@ -91,90 +55,29 @@ private:
class BinaryReader
{
public:
- inline BinaryReader(MemoryInStream& Stream) : m_Stream(&Stream) {}
- ~BinaryReader() = default;
-
- inline void Read(void* DataPtr, size_t ByteCount)
- {
- m_Stream->Read(DataPtr, ByteCount, m_Offset);
- m_Offset += ByteCount;
- }
-
- void Seek(uint64_t Offset)
+ inline BinaryReader(const void* Buffer, uint64_t Size) : m_BufferBase(reinterpret_cast<const uint8_t*>(Buffer)), m_BufferSize(Size) {}
+ inline BinaryReader(MemoryView Buffer)
+ : m_BufferBase(reinterpret_cast<const uint8_t*>(Buffer.GetData()))
+ , m_BufferSize(Buffer.GetSize())
{
- ZEN_ASSERT(Offset <= m_Stream->Size());
- m_Offset = Offset;
}
- void Skip(uint64_t SkipOffset)
+ inline void Read(void* DataPtr, size_t ByteCount)
{
- ZEN_ASSERT((m_Offset + SkipOffset) <= m_Stream->Size());
- m_Offset += SkipOffset;
+ memcpy(DataPtr, m_BufferBase + m_Offset, ByteCount);
+ m_Offset += ByteCount;
}
+ inline uint64_t Size() const { return m_BufferSize; }
+ inline uint64_t GetSize() const { return Size(); }
inline uint64_t CurrentOffset() const { return m_Offset; }
- inline uint64_t AvailableBytes() const { return m_Stream->Size() - m_Offset; }
private:
- RefPtr<MemoryInStream> m_Stream;
- uint64_t m_Offset = 0;
+ const uint8_t* m_BufferBase;
+ uint64_t m_BufferSize;
+ uint64_t m_Offset = 0;
};
-inline BinaryReader&
-operator>>(BinaryReader& Reader, bool& Value)
-{
- Reader.Read(&Value, sizeof Value);
- return Reader;
-}
-inline BinaryReader&
-operator>>(BinaryReader& Reader, int8_t& Value)
-{
- Reader.Read(&Value, sizeof Value);
- return Reader;
-}
-inline BinaryReader&
-operator>>(BinaryReader& Reader, int16_t& Value)
-{
- Reader.Read(&Value, sizeof Value);
- return Reader;
-}
-inline BinaryReader&
-operator>>(BinaryReader& Reader, int32_t& Value)
-{
- Reader.Read(&Value, sizeof Value);
- return Reader;
-}
-inline BinaryReader&
-operator>>(BinaryReader& Reader, int64_t& Value)
-{
- Reader.Read(&Value, sizeof Value);
- return Reader;
-}
-inline BinaryReader&
-operator>>(BinaryReader& Reader, uint8_t& Value)
-{
- Reader.Read(&Value, sizeof Value);
- return Reader;
-}
-inline BinaryReader&
-operator>>(BinaryReader& Reader, uint16_t& Value)
-{
- Reader.Read(&Value, sizeof Value);
- return Reader;
-}
-inline BinaryReader&
-operator>>(BinaryReader& Reader, uint32_t& Value)
-{
- Reader.Read(&Value, sizeof Value);
- return Reader;
-}
-inline BinaryReader&
-operator>>(BinaryReader& Reader, uint64_t& Value)
-{
- Reader.Read(&Value, sizeof Value);
- return Reader;
-}
-
void stream_forcelink(); // internal
} // namespace zen
diff --git a/zencore/include/zencore/streamutil.h b/zencore/include/zencore/streamutil.h
deleted file mode 100644
index d9b6b5167..000000000
--- a/zencore/include/zencore/streamutil.h
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-
-#pragma once
-
-#include <fmt/format.h>
-#include <zencore/string.h>
-#include <string>
-#include <string_view>
-
-#include "blake3.h"
-#include "iohash.h"
-#include "sha1.h"
-#include "stream.h"
-
-namespace zen {
-
-} // namespace zen
-
-//////////////////////////////////////////////////////////////////////////
-
-template<>
-struct fmt::formatter<zen::IoHash>
-{
- constexpr auto parse(format_parse_context& ctx)
- {
- // Parse the presentation format and store it in the formatter:
- auto it = ctx.begin(), end = ctx.end();
-
- // Check if reached the end of the range:
- if (it != end && *it != '}')
- throw format_error("invalid format");
-
- // Return an iterator past the end of the parsed range:
- return it;
- }
-
- template<typename FormatContext>
- auto format(const zen::IoHash& h, FormatContext& ctx)
- {
- zen::ExtendableStringBuilder<48> String;
- h.ToHexString(String);
- return format_to(ctx.out(), std::string_view(String));
- }
-};
-
-template<>
-struct fmt::formatter<zen::BLAKE3>
-{
- constexpr auto parse(format_parse_context& ctx)
- {
- // Parse the presentation format and store it in the formatter:
- auto it = ctx.begin(), end = ctx.end();
-
- // Check if reached the end of the range:
- if (it != end && *it != '}')
- throw format_error("invalid format");
-
- // Return an iterator past the end of the parsed range:
- return it;
- }
-
- template<typename FormatContext>
- auto format(const zen::BLAKE3& h, FormatContext& ctx)
- {
- zen::ExtendableStringBuilder<80> String;
- h.ToHexString(String);
- return format_to(ctx.out(), std::string_view(String));
- }
-};
diff --git a/zencore/stream.cpp b/zencore/stream.cpp
index b9a88de66..aa9705764 100644
--- a/zencore/stream.cpp
+++ b/zencore/stream.cpp
@@ -10,41 +10,19 @@
namespace zen {
-MemoryInStream::MemoryInStream(const void* buffer, size_t size)
-: m_Buffer(reinterpret_cast<const uint8_t*>(buffer), reinterpret_cast<const uint8_t*>(buffer) + size)
-{
-}
-
void
-MemoryInStream::Read(void* buffer, size_t byteCount, uint64_t offset)
+BinaryWriter::Write(const void* data, size_t ByteCount, uint64_t Offset)
{
RwLock::ExclusiveLockScope _(m_Lock);
- const size_t needEnd = offset + byteCount;
-
- if (needEnd > m_Buffer.size())
- throw std::runtime_error("read past end of file!"); // TODO: better exception
+ const size_t NeedEnd = Offset + ByteCount;
- memcpy(buffer, m_Buffer.data() + offset, byteCount);
-}
+ if (NeedEnd > m_Buffer.size())
+ {
+ m_Buffer.resize(NeedEnd);
+ }
-void
-MemoryOutStream::Write(const void* data, size_t byteCount, uint64_t offset)
-{
- RwLock::ExclusiveLockScope _(m_Lock);
-
- const size_t needEnd = offset + byteCount;
-
- if (needEnd > m_Buffer.size())
- m_Buffer.resize(needEnd);
-
- memcpy(m_Buffer.data() + offset, data, byteCount);
-}
-
-void
-MemoryOutStream::Flush()
-{
- // No-op
+ memcpy(m_Buffer.data() + Offset, data, ByteCount);
}
//////////////////////////////////////////////////////////////////////////
diff --git a/zencore/zencore.vcxproj b/zencore/zencore.vcxproj
index 947ae9f10..421802d3f 100644
--- a/zencore/zencore.vcxproj
+++ b/zencore/zencore.vcxproj
@@ -141,7 +141,6 @@
<ClInclude Include="include\zencore\sharedbuffer.h" />
<ClInclude Include="include\zencore\stats.h" />
<ClInclude Include="include\zencore\stream.h" />
- <ClInclude Include="include\zencore\streamutil.h" />
<ClInclude Include="include\zencore\string.h" />
<ClInclude Include="include\zencore\targetver.h" />
<ClInclude Include="include\zencore\testing.h" />
diff --git a/zencore/zencore.vcxproj.filters b/zencore/zencore.vcxproj.filters
index e3d1f6c67..e701e9354 100644
--- a/zencore/zencore.vcxproj.filters
+++ b/zencore/zencore.vcxproj.filters
@@ -12,7 +12,6 @@
<ClInclude Include="include\zencore\timer.h" />
<ClInclude Include="include\zencore\thread.h" />
<ClInclude Include="include\zencore\string.h" />
- <ClInclude Include="include\zencore\streamutil.h" />
<ClInclude Include="include\zencore\stream.h" />
<ClInclude Include="include\zencore\stats.h" />
<ClInclude Include="include\zencore\blake3.h" />
diff --git a/zenhttp/httpclient.cpp b/zenhttp/httpclient.cpp
index 20550b0c9..6e915e613 100644
--- a/zenhttp/httpclient.cpp
+++ b/zenhttp/httpclient.cpp
@@ -66,12 +66,11 @@ HttpClient::TransactPackage(std::string_view Url, CbPackage Package)
Writer.EndArray();
- MemoryOutStream MemOut;
- BinaryWriter MemWriter(MemOut);
+ BinaryWriter MemWriter;
Writer.Save(MemWriter);
Sess.SetHeader({{"Content-Type", "application/x-ue-offer"}, {"UE-Session", m_SessionId}, {"UE-Request", RequestIdString}});
- Sess.SetBody(cpr::Body{(const char*)MemOut.Data(), MemOut.Size()});
+ Sess.SetBody(cpr::Body{(const char*)MemWriter.Data(), MemWriter.Size()});
cpr::Response FilterResponse = Sess.Post();
diff --git a/zenserver-test/zenserver-test.cpp b/zenserver-test/zenserver-test.cpp
index 794a5fe94..9b5a48128 100644
--- a/zenserver-test/zenserver-test.cpp
+++ b/zenserver-test/zenserver-test.cpp
@@ -968,9 +968,8 @@ TEST_CASE("project.basic")
Body << "engine"
<< "/zooom";
- zen::MemoryOutStream MemOut;
- zen::BinaryWriter Writer{MemOut};
- Body.Save(Writer);
+ zen::BinaryWriter MemOut;
+ Body.Save(MemOut);
auto Response = cpr::Post(cpr::Url{BaseUri.c_str()}, cpr::Body{(const char*)MemOut.Data(), MemOut.Size()});
CHECK(Response.status_code == 201);
@@ -1035,11 +1034,10 @@ TEST_CASE("project.basic")
zen::CbObject Op = OpWriter.Save();
- zen::MemoryOutStream MemOut;
- zen::BinaryWriter Writer(MemOut);
- zen::CbPackage OpPackage(Op);
+ zen::BinaryWriter MemOut;
+ zen::CbPackage OpPackage(Op);
OpPackage.AddAttachment(Attach);
- OpPackage.Save(Writer);
+ OpPackage.Save(MemOut);
{
zen::StringBuilder<64> PostUri;
@@ -1130,9 +1128,8 @@ TEST_CASE("zcache.basic")
zen::CbObjectWriter Cbo;
Cbo << "index" << i;
- zen::MemoryOutStream MemOut;
- zen::BinaryWriter Writer{MemOut};
- Cbo.Save(Writer);
+ zen::BinaryWriter MemOut;
+ Cbo.Save(MemOut);
zen::IoHash Key = HashKey(i);
@@ -1160,9 +1157,8 @@ TEST_CASE("zcache.basic")
zen::CbObjectWriter Cbo;
Cbo << "index" << 42;
- zen::MemoryOutStream MemOut;
- zen::BinaryWriter Writer{MemOut};
- Cbo.Save(Writer);
+ zen::BinaryWriter MemOut;
+ Cbo.Save(MemOut);
zen::IoHash Key = HashKey(442);
@@ -1218,10 +1214,9 @@ TEST_CASE("zcache.cbpackage")
};
auto SerializeToBuffer = [](zen::CbPackage Package) -> zen::IoBuffer {
- zen::MemoryOutStream MemStream;
- zen::BinaryWriter Writer(MemStream);
+ zen::BinaryWriter MemStream;
- Package.Save(Writer);
+ Package.Save(MemStream);
return zen::IoBuffer(zen::IoBuffer::Clone, MemStream.Data(), MemStream.Size());
};
@@ -1469,9 +1464,8 @@ TEST_CASE("zcache.policy")
};
auto ToBuffer = [](zen::CbPackage Package) -> zen::IoBuffer {
- zen::MemoryOutStream MemStream;
- zen::BinaryWriter Writer(MemStream);
- Package.Save(Writer);
+ zen::BinaryWriter MemStream;
+ Package.Save(MemStream);
return zen::IoBuffer(zen::IoBuffer::Clone, MemStream.Data(), MemStream.Size());
};
@@ -1828,8 +1822,7 @@ struct RemoteExecutionRequest
}
PrepReq.EndArray();
- zen::BinaryWriter MemWriter(m_MemOut);
- PrepReq.Save(MemWriter);
+ PrepReq.Save(m_MemOut);
}
void Prep()
@@ -1931,7 +1924,7 @@ private:
const std::string m_BaseUri = "http://{}:{}/exec/jobs"_format(m_HostName, m_PortNumber);
const std::string m_CasUri = "http://{}:{}/cas"_format(m_HostName, m_PortNumber);
Visitor m_Visit{m_TreePath};
- zen::MemoryOutStream m_MemOut;
+ zen::BinaryWriter m_MemOut;
};
TEST_CASE("exec.basic")
diff --git a/zenserver/cache/structuredcache.cpp b/zenserver/cache/structuredcache.cpp
index 3ac1ec37f..e4af2a5b2 100644
--- a/zenserver/cache/structuredcache.cpp
+++ b/zenserver/cache/structuredcache.cpp
@@ -370,9 +370,8 @@ HttpStructuredCacheService::HandleGetCacheRecord(zen::HttpServerRequest& Request
CbPackage PackageWithoutAttachments;
PackageWithoutAttachments.SetObject(CacheRecord);
- MemoryOutStream MemStream;
- BinaryWriter Writer(MemStream);
- PackageWithoutAttachments.Save(Writer);
+ BinaryWriter MemStream;
+ PackageWithoutAttachments.Save(MemStream);
Value.Value = IoBuffer(IoBuffer::Clone, MemStream.Data(), MemStream.Size());
}
@@ -453,9 +452,8 @@ HttpStructuredCacheService::HandleGetCacheRecord(zen::HttpServerRequest& Request
NiceBytes(AttachmentBytes + Value.Value.Size()),
AttachmentCount);
- MemoryOutStream MemStream;
- BinaryWriter Writer(MemStream);
- Package.Save(Writer);
+ BinaryWriter MemStream;
+ Package.Save(MemStream);
IoBuffer Response(IoBuffer::Clone, MemStream.Data(), MemStream.Size());
diff --git a/zenserver/casstore.cpp b/zenserver/casstore.cpp
index b36dcc09f..88525bd36 100644
--- a/zenserver/casstore.cpp
+++ b/zenserver/casstore.cpp
@@ -2,8 +2,8 @@
#include "casstore.h"
+#include <zencore/fmtutils.h>
#include <zencore/logging.h>
-#include <zencore/streamutil.h>
#include <gsl/gsl-lite.hpp>
@@ -14,52 +14,6 @@ HttpCasService::HttpCasService(CasStore& Store) : m_CasStore(Store)
m_Router.AddPattern("cas", "([0-9A-Fa-f]{40})");
m_Router.RegisterRoute(
- "batch",
- [this](HttpRouterRequest& Req) {
- HttpServerRequest& ServerRequest = Req.ServerRequest();
-
- IoBuffer Payload = ServerRequest.ReadPayload();
- uint64_t EntryCount = Payload.Size() / sizeof(IoHash);
-
- if ((EntryCount * sizeof(IoHash)) != Payload.Size())
- {
- return ServerRequest.WriteResponse(HttpResponseCode::BadRequest);
- }
-
- const IoHash* Hashes = reinterpret_cast<const IoHash*>(Payload.Data());
- std::vector<IoBuffer> Values;
-
- MemoryOutStream HeaderStream;
- BinaryWriter HeaderWriter(HeaderStream);
-
- Values.emplace_back(); // Placeholder for header
-
- // Build response header
- HeaderWriter << uint32_t(0x12340000) << uint32_t(0);
-
- for (uint64_t i = 0; i < EntryCount; ++i)
- {
- IoHash ChunkHash = Hashes[i];
- IoBuffer Value = m_CasStore.FindChunk(ChunkHash);
-
- if (Value)
- {
- Values.emplace_back(std::move(Value));
- HeaderWriter << ChunkHash << uint64_t(Value.Size());
- }
- }
-
- // Make real header
-
- const_cast<uint32_t*>(reinterpret_cast<const uint32_t*>(HeaderStream.Data()))[1] = uint32_t(Values.size() - 1);
-
- Values[0] = IoBufferBuilder::MakeCloneFromMemory(HeaderStream.Data(), HeaderStream.Size());
-
- ServerRequest.WriteResponse(HttpResponseCode::OK, HttpContentType::kBinary, Values);
- },
- HttpVerb::kPost);
-
- m_Router.RegisterRoute(
"{cas}",
[this](HttpRouterRequest& Req) {
IoHash Hash = IoHash::FromHexString(Req.GetCapture(1));
diff --git a/zenserver/projectstore.cpp b/zenserver/projectstore.cpp
index 1f4239b23..1a9eb2c67 100644
--- a/zenserver/projectstore.cpp
+++ b/zenserver/projectstore.cpp
@@ -635,8 +635,7 @@ ProjectStore::Project::Read()
void
ProjectStore::Project::Write()
{
- MemoryOutStream Mem;
- BinaryWriter Writer(Mem);
+ BinaryWriter Mem;
CbObjectWriter Cfg;
Cfg << "id" << Identifier;
@@ -644,7 +643,7 @@ ProjectStore::Project::Write()
Cfg << "project" << ProjectRootDir;
Cfg << "engine" << EngineRootDir;
- Cfg.Save(Writer);
+ Cfg.Save(Mem);
CreateDirectories(m_OplogStoragePath);
@@ -951,9 +950,8 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects)
// Parse Request
- IoBuffer Payload = HttpReq.ReadPayload();
- MemoryInStream MemIn(Payload.Data(), Payload.Size());
- BinaryReader Reader(MemIn);
+ IoBuffer Payload = HttpReq.ReadPayload();
+ BinaryReader Reader(Payload);
struct RequestHeader
{
diff --git a/zenserver/upstream/upstreamcache.cpp b/zenserver/upstream/upstreamcache.cpp
index f056c1c76..0dd16cd06 100644
--- a/zenserver/upstream/upstreamcache.cpp
+++ b/zenserver/upstream/upstreamcache.cpp
@@ -172,9 +172,8 @@ namespace detail {
if (Result.Success)
{
- MemoryOutStream MemStream;
- BinaryWriter Writer(MemStream);
- Package.Save(Writer);
+ BinaryWriter MemStream;
+ Package.Save(MemStream);
Result.Response = IoBuffer(IoBuffer::Clone, MemStream.Data(), MemStream.Size());
}
@@ -420,9 +419,8 @@ namespace detail {
}
}
- MemoryOutStream MemStream;
- BinaryWriter Writer(MemStream);
- Package.Save(Writer);
+ BinaryWriter MemStream;
+ Package.Save(MemStream);
IoBuffer PackagePayload(IoBuffer::Wrap, MemStream.Data(), MemStream.Size());
for (int32_t Attempt = 0; Attempt < MaxAttempts && !Result.Success; Attempt++)
diff --git a/zenserver/upstream/zen.cpp b/zenserver/upstream/zen.cpp
index 530bed32a..c988a6b0b 100644
--- a/zenserver/upstream/zen.cpp
+++ b/zenserver/upstream/zen.cpp
@@ -181,10 +181,9 @@ Mesh::BroadcastPacket(CbObjectWriter& Obj)
detail::MessageHeader* Message = reinterpret_cast<detail::MessageHeader*>(MessageBuffer);
*Message = {};
- MemoryOutStream MemOut;
- BinaryWriter Writer(MemOut);
+ BinaryWriter MemOut;
- Obj.Save(Writer);
+ Obj.Save(MemOut);
// TODO: check that it fits in a packet!
diff --git a/zenserver/windows/service.cpp b/zenserver/windows/service.cpp
index b7b3b9bc1..23cefb7b5 100644
--- a/zenserver/windows/service.cpp
+++ b/zenserver/windows/service.cpp
@@ -2,8 +2,8 @@
#include "service.h"
-#include <zencore/zencore.h>
#include <zencore/except.h>
+#include <zencore/zencore.h>
#include <stdio.h>
#include <tchar.h>