aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/projectstore/httpprojectstore.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2024-03-20 15:13:03 +0100
committerGitHub Enterprise <[email protected]>2024-03-20 15:13:03 +0100
commitd6071e029b7cb9eec6abfa612b16abc16c84e6a3 (patch)
tree21745ab3bb73594a56b2fc548022d900df8ea62f /src/zenserver/projectstore/httpprojectstore.cpp
parentremove hv tags on actions since they are no longer useful (diff)
downloadzen-d6071e029b7cb9eec6abfa612b16abc16c84e6a3.tar.xz
zen-d6071e029b7cb9eec6abfa612b16abc16c84e6a3.zip
non memory copy compressed range (#13)
* Add CompressedBuffer::GetRange that references source data rather than make a memory copy * Use Compressed.CopyRange in project store GetChunkRange * docs for CompressedBuffer::CopyRange and CompressedBuffer::GetRange
Diffstat (limited to 'src/zenserver/projectstore/httpprojectstore.cpp')
-rw-r--r--src/zenserver/projectstore/httpprojectstore.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/zenserver/projectstore/httpprojectstore.cpp b/src/zenserver/projectstore/httpprojectstore.cpp
index 0ba49cf8a..bc71e2fa0 100644
--- a/src/zenserver/projectstore/httpprojectstore.cpp
+++ b/src/zenserver/projectstore/httpprojectstore.cpp
@@ -768,14 +768,15 @@ HttpProjectService::HandleChunkByIdRequest(HttpRouterRequest& Req)
HttpContentType AcceptType = HttpReq.AcceptContentType();
- IoBuffer Chunk;
+ CompositeBuffer Chunk;
+ HttpContentType ContentType;
std::pair<HttpResponseCode, std::string> Result =
- m_ProjectStore->GetChunkRange(ProjectId, OplogId, ChunkId, Offset, Size, AcceptType, Chunk);
+ m_ProjectStore->GetChunkRange(ProjectId, OplogId, ChunkId, Offset, Size, AcceptType, Chunk, ContentType);
if (Result.first == HttpResponseCode::OK)
{
m_ProjectStats.ChunkHitCount++;
- ZEN_DEBUG("chunk - '{}/{}/{}' '{}'", ProjectId, OplogId, ChunkId, ToString(Chunk.GetContentType()));
- return HttpReq.WriteResponse(HttpResponseCode::OK, Chunk.GetContentType(), Chunk);
+ ZEN_DEBUG("chunk - '{}/{}/{}' '{}'", ProjectId, OplogId, ChunkId, ToString(ContentType));
+ return HttpReq.WriteResponse(HttpResponseCode::OK, ContentType, Chunk);
}
else if (Result.first == HttpResponseCode::NotFound)
{