aboutsummaryrefslogtreecommitdiff
path: root/zenserver
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2021-09-28 21:57:23 +0200
committerStefan Boberg <[email protected]>2021-09-28 21:57:23 +0200
commit3d414de23eadccdf85fd1455a0dfcbce10e07cdd (patch)
tree2ad07069a5d507017a423aa91b728655ca914389 /zenserver
parentRemoving a bunch of no-longer-useful code from stream.h/cpp in preparation fo... (diff)
downloadzen-3d414de23eadccdf85fd1455a0dfcbce10e07cdd.tar.xz
zen-3d414de23eadccdf85fd1455a0dfcbce10e07cdd.zip
Removed MemoryOutStream, MemoryInStream
BinaryWriter/BinaryReader now implements memory buffer functionality which previously needed two chained instances of a Buffer/Reader. This was originally expected to be an abstraction for file and other stream access but this is not going to be useful so may as well collapse the functionality. This also eliminates the need for stack-aware ref-counting which is the real reason for wanting to get rid of this code. This was a very old experimental feature which turned out to be a bad idea. This also removes the /cas/batch endpoint
Diffstat (limited to 'zenserver')
-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
6 files changed, 16 insertions, 69 deletions
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>