diff options
| author | Stefan Boberg <[email protected]> | 2021-09-28 21:57:23 +0200 |
|---|---|---|
| committer | Stefan Boberg <[email protected]> | 2021-09-28 21:57:23 +0200 |
| commit | 3d414de23eadccdf85fd1455a0dfcbce10e07cdd (patch) | |
| tree | 2ad07069a5d507017a423aa91b728655ca914389 /zenserver | |
| parent | Removing a bunch of no-longer-useful code from stream.h/cpp in preparation fo... (diff) | |
| download | zen-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.cpp | 10 | ||||
| -rw-r--r-- | zenserver/casstore.cpp | 48 | ||||
| -rw-r--r-- | zenserver/projectstore.cpp | 10 | ||||
| -rw-r--r-- | zenserver/upstream/upstreamcache.cpp | 10 | ||||
| -rw-r--r-- | zenserver/upstream/zen.cpp | 5 | ||||
| -rw-r--r-- | zenserver/windows/service.cpp | 2 |
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> |