aboutsummaryrefslogtreecommitdiff
path: root/zenutil/include
Commit message (Collapse)AuthorAgeFilesLines
* moved source directories into `/src` (#264)Stefan Boberg2023-05-027-881/+0
| | | | | | * moved source directories into `/src` * updated bundle.lua for new `src` path * moved some docs, icon * removed old test trees
* fixed dashboard file serving bug (#255)Stefan Boberg2023-04-241-6/+8
| | | | | a recent change which introduced support for specifying accept: implicitly via the file extension in the URI caused fallout in the dashboard which would fail to serve any content because the extension was stripped from the RelativeUri accessor. This change fixes that by retaining a copy of the Uri string view which includes the suffix additionally, in order to test this change with both asio/http.sys paths I made the path used for all tests configurable in zenserver-test which involved pulling in a change from sb/proto which makes testing configuration a bit more flexible
* send payloads as duplicated handles (#240)Dan Engelbrecht2023-03-141-0/+6
| | | | | | | | | * send payloads as duplicated handles if requestor provides process id and allows local file references. * linux/macos fixes * tests * fix access rights when duplicating handle * fix closing of duplicated handles on error * cleanup * changelog
* Enhanced rpc request recording (#229)Dan Engelbrecht2023-02-171-0/+29
| | | | | | | | | | | | | * rpc replay zen command * fix replay sessions for thread * recording start/stop as zen commands * move rpcrecording code to zenutil to remove code duplication * simplify recording http request threading * added more data logging to rpc replay * NotFound is an acceptable response for an rpc request * fix rpc replay command line parsing * rpc replay stats * Allow spawning of sub-process workers when replaying rpc recording * changelog
* oplog upload/download (#214)Dan Engelbrecht2023-02-091-2/+0
| | | | | | | | | | | | - Feature: Zen server endpoint `prj/{project}/oplog/{log}/chunks` to post multiple attachments in one request. - Feature: Zen server endpoint `prj/{project}/oplog/{log}/save` to save an oplog container. Accepts `CbObject` containing a compressed oplog and attachment references organized in blocks. - Feature: Zen server endpoint `prj/{project}/oplog/{log}/load` to request an oplog container. Responds with an `CbObject` containing a compressed oplog and attachment references organized in blocks. - Feature: Zen server endpoint `{project}/oplog/{log}/rpc` to initiate an import to or export from an external location and other operations. Use either JSon or CbPackage as payload. - CbObject/JSon RPC format for `import` and `export` methods: - CbObject RPC format for `getchunks` method, returns CbPackage with the found chunks, if all chunks are found the number of attachments matches number of chunks requested. - Feature: Zen server `{project}/oplog/{log}/{hash}` now accepts `HttpVerb::kPost` as well as `HttpVerb::kGet`. - Feature: Zen command line tool `oplog-export` to export an oplog to an external target using the zenserver oplog export endpoint. - Feature: Zen command line tool `oplog-import` to import an oplog from an external source using the zenserver oplog import endpoint.
* fix formatting of zenutil/include/zenutil/zenserverprocess.hDan Engelbrecht2023-01-311-1/+1
|
* removed some more mesh related debrisStefan Boberg2023-01-261-2/+0
|
* move BasicFile to zenutil to remove zenstore dependency from zen command (#190)Dan Engelbrecht2022-11-171-0/+113
|
* Add "Accept" field in RPC request to gracefully handle requests from older ↵Dan Engelbrecht2022-10-131-0/+5
| | | | instances (#180)
* Implement proper GetCacheValues upstream (#155)Dan Engelbrecht2022-09-061-0/+6
| | | | * Implement proper GetCacheValues upstream * changelog
* Remove PutCacheRecordRequest::RecordBody and GetCacheRecordResult:RecordBody ↵Dan Engelbrecht2022-07-011-2/+0
| | | | (#140)
* Use cacherequest::* for zenserver tests (#135)Dan Engelbrecht2022-06-301-0/+6
| | | | | * use cacherequests in zcache.rpc * use cacherequests for zcache.rpc.allpolicies
* Add ability to control where in the result array results go in ↵Dan Engelbrecht2022-06-301-2/+2
| | | | GetCacheRecordsResult::Parse and CacheValuesResult::Parse (#138)
* add optional filter when writing GetCacheRecordsRequest and ↵Dan Engelbrecht2022-06-291-3/+3
| | | | GetCacheValuesRequest (#137)
* cache requests API (#134)Dan Engelbrecht2022-06-271-0/+264
|
* Keep Namespace out of CacheKey and store it on request levelDan Engelbrecht2022-05-191-9/+1
| | | | | RPC requests now has a Namespace field under Params instead of one Namespace per cache key Fall back to legacy upstream HTTP URI format if default namespace is requested
* Add caseSensitiveCompareStrings and manual <=> and == operator for CacheKeyDan Engelbrecht2022-05-121-4/+10
| | | | MacOS clang compiler does not implement a default <=> operator for string
* manual <=> calls for strings in CacheKeyDan Engelbrecht2022-05-121-1/+8
|
* use spaceship operator for CacheKey comparisonsDan Engelbrecht2022-05-111-22/+2
|
* parameterize namespace for upstream (first hack)Dan Engelbrecht2022-05-111-6/+12
|
* Simplify HandleRpcGetCacheChunks (#53)mattpetersepic2022-02-091-1/+0
| | | Refactor HandleRpcGetCacheChunks to reduce complexity. Port CacheStore tests from Unreal.
* Remove the backwards compatibility for the Zen CachePolicy changes no… (#49)mattpetersepic2022-02-081-7/+0
| | | Remove the backwards compatibility for the Zen CachePolicy changes now that there has been enough time for all internal users of the old protocol to update.
* removed unnecessary <unordered_map> includeStefan Boberg2022-02-041-1/+0
|
* Cache policy support (#47)mattpetersepic2022-02-012-44/+105
| | | | | | | | Add HandleRpc methods for the remaining ICacheStore requests from unreal: PutCacheValues/GetCacheValues. We now have batched versions for PutCacheRecords,GetCacheRecords,PutCacheValues,GetCacheValues,GetCacheChunks. Add support for CachePolicy flags to all of these batched methods. * Add Batched PutCacheValues/GetCacheValues. Rename old GetCacheValues to GetCacheChunks. * HandleRpcGetCacheRecords: Receive a CacheRecordPolicy with each key, and skipdata on attachments we already have. * Changes to CachePolicy copied from Release-5.0 depot. Change serialization to use the key BasePolicy instead of DefaultValuePolicy. * GetChunks: Read CacheRecords from remote if necessary to find ContentId. Implement QueryLocal, StoreLocal, and SkipData.
* Rename Paylod to Value to match the client side. Rename PayloadId to ↵mattpetersepic2022-01-271-3/+3
| | | | ValueContentId where its a hash instead of an oid.
* Handle HTTP port collisions when initializing server (#40)zousar2022-01-271-4/+5
|
* Implement SkipData,QueryLocal,StoreLocal for HandleRpcGetCacheRecords (#41)mattpetersepic2022-01-261-0/+4
| | | * Implement SkipData,QueryLocal,StoreLocal for HandleRpcGetCacheRecords.
* Cachepolicy (#36)mattpetersepic2022-01-251-36/+101
| | | | | | | | | | | | | | | | | * Copy CachePolicy implementation from UE5/Release-5.0. Add backwards compatability for clients and upstreams that are using the old protocol. * Add RefPtr templated move operator and constructor, so that RefPtr<const Foo*> A = std::move(RefPtr<Foo*>()) will do a move. * Fix broken CachePolicy tests and add tests for new Save/Load. * Remove TODO comments * CachePolicy Save/Load Fixes from codereview * Fix comment to match code change. * Remove backwards compatibility for CachePolicy change. Convert policy string tokens to PascalCase. Fix tests for new policy text. Change ParseCachePolicy to assert string is non-empty and always succeed. * Fix release build: use ZEN_WITH_TESTS define
* Merged mainMartin Ridgers2021-11-151-0/+3
|\
| * Handle 'partial on error' cache policy.Per Larsson2021-11-151-0/+3
| |
* | Merged mainMartin Ridgers2021-11-153-0/+198
|\|
| * Updated cache policy according to UE.Per Larsson2021-11-151-16/+60
| |
| * Format fix.Per Larsson2021-11-121-1/+1
| |
| * Fixed bug when cloning CbObject.Per Larsson2021-11-121-0/+1
| |
| * Movec cache utility types to zenutil and fixed unit tests.Per Larsson2021-11-123-0/+153
| |
* | NamedEvent is no longer an Event-type object.Martin Ridgers2021-11-111-2/+2
|/ | | | | | | Platforms other than Windows do not really have a named event-like primitive or ones that are close are fallible if a process hard-terminates. Separating from Event more clearly conveys the use of NamedEvent objects; to synchronise two processes.
* Lockfile implementation (#24)Stefan Boberg2021-10-271-5/+11
| | | | | Implemented lockfile synchronization To be used instead of or in conjunction with existing events to coordinate launching and discovery of server instances
* Moved more code into zen namespace, for consistencyStefan Boberg2021-09-201-7/+7
| | | | Also removed snapshot_manifest (remnants of vfs prototype)
* Added better handling for read-only modeStefan Boberg2021-09-171-0/+2
|
* clang-formatStefan Boberg2021-09-171-1/+1
|
* Added namespace scopes to more includes for better consistencyStefan Boberg2021-09-171-0/+4
|
* Moved zenserverprocess into zenutil/zenserverprocess.hStefan Boberg2021-09-171-0/+0
|
* Exposed session id in ZenServerStateStefan Boberg2021-09-161-5/+7
|
* Merge branch 'main' of https://github.com/EpicGames/zenStefan Boberg2021-09-161-1/+1
|\
| * Compact binary package caching support (#9)Per Larsson2021-09-161-1/+1
| |
* | Changed how sponsor processes are managedStefan Boberg2021-09-161-2/+10
|/ | | | We can now monitor more than one process and if a new process is started on the same port we will hand over the owner pid to the process which is already executing before exiting. Note that this is only done if there is actually already an owner process in the instance list.
* Changed logging implementationStefan Boberg2021-09-151-1/+1
| | | | | | * Code should no longer directly `#include spdlog/spdlog.h`, instead use `#include <zencore/logging.h>` * Instead of explicit calls to `spdlog::info(...)` and such please use the logging macros defined in `zencore/logging.h`. I.e `ZEN_INFO`, `ZEN_DEBUG`, `ZEN_TRACE`, `ZEN_ERROR`, `ZEN_CRITITCAL` * The macros will pick up the "most local" logger via a `Log()` call to retrieve a logger instance. To override the default logger in a class please implement your own `Log()` function
* Changed direct includes of spdlog/spdlog.h into zencore/logging.h to make it ↵Stefan Boberg2021-09-151-1/+1
| | | | easier to tweak implementation
* Adding ZenServerInstance::GetBaseUri()Stefan Boberg2021-09-081-0/+3
|
* Extended ZenServerInstance life cycle managementStefan Boberg2021-08-091-2/+16
|