aboutsummaryrefslogtreecommitdiff
path: root/src/zencore/include
Commit message (Collapse)AuthorAgeFilesLines
* add trace command to enable/disable tracing at runtime (#416)Dan Engelbrecht2023-09-221-1/+4
| | | | | * add trace command to enable/disable tracing at runtime * rework tracing init/start/stop * changelog
* Improvement: Add names to background jobs for easier debugging (#412)Dan Engelbrecht2023-09-201-11/+11
| | | | Improvement: Background jobs now temporarily sets thread name to background job name while executing Improvement: Background jobs tracks worker thread id used while executing
* VFS implementation for local storage service (#396)Stefan Boberg2023-09-201-0/+8
| | | currently, only Windows (using Projected File System) is supported
* job queue and async oplog-import/export (#395)Dan Engelbrecht2023-09-131-0/+84
| | | | | | | | | | | | | | | | - Feature: New http endpoint for background jobs `/admin/jobs/status` which will return a response listing the currently active background jobs and their status - Feature: New http endpoint for background jobs information `/admin/jobs/status/{jobid}` which will return a response detailing status, pending messages and progress status - GET will return a response detailing status, pending messages and progress status - DELETE will mark the job for cancelling and return without waiting for completion - If status returned is "Complete" or "Aborted" the jobid will be removed from the server and can not be queried again - Feature: New zen command `jobs` to list, get info about and cancel background jobs - If no options are given it will display a list of active background jobs - `--jobid` accepts an id (returned from for example `oplog-export` with `--async`) and will return a response detailing status, pending messages and progress status for that job - `--cancel` can be added when `--jobid` is given which will request zenserver to cancel the background job - Feature: oplog import and export http rpc requests are now async operations that will run in the background - Feature: `oplog-export` and `oplog-import` now reports progress to the console as work progress by default - Feature: `oplog-export` and `oplog-import` can now be cancelled using Ctrl+C - Feature: `oplog-export` and `oplog-import` has a new option `--async` which will only trigger the work and report a background job id back
* Hash utility functions (#385)Stefan Boberg2023-09-133-0/+51
| | | | * added std::hash implementation for Guid and Oid types * Added CombineHashes implementation
* ZenCacheStore is now reference counted (#398)Stefan Boberg2023-09-131-0/+1
| | | this change also adds a GetNamespaces function which may be used to enumerate all currently known cache namespaces
* Make sure error logging or destructors don't throw exception when trying to ↵Dan Engelbrecht2023-09-121-0/+4
| | | | | get file name from handle (#393) - Bugfix: Make sure error logging or destructors don't throw exception when trying to get file name from handle
* Extend http client (#387)Dan Engelbrecht2023-09-081-0/+1
| | | * extend http client with configuration, headers, parameters and disk streaming upload/download
* stream oplog attachments from jupiter (#384)Dan Engelbrecht2023-09-061-6/+6
| | | | | | | | | | * stream large downloads from jupiter to temporary file * rework DeleteOnClose - top level marks file for delete and if lower level parts wants to keep it it clears that flag * changelog * log number of attachments to download * add delay on jupiter request failure when retrying * make sure we upload all attachments even if Needs are empty when ForceUpload is true release TempAttachment as soon as it is used * sort attachments so we get predictable blocks for the same oplog
* fix trace close (#365)Dan Engelbrecht2023-08-211-0/+1
| | | * Make sure we close our trace session properly
* update vcpkg dependencies (#356)Dan Engelbrecht2023-08-112-1/+42
| | | | | | * bump vcpkg version * fmt lib 10 fixes * xmake dependencies (with linux workarounds) * changelog
* Make sure we always write "data" attachment hash for snapshotted oplog ↵Dan Engelbrecht2023-08-111-5/+9
| | | | | | | | | entries (#355) * Make sure we always write "data" attachment hash for snapshotted oplog entries * Make sure to add chunk mappings for files moved to attatchment in snapshot operation * fix inverted timoute for expiration (we don't want time expiry in these cases) * increase timeout for jupiter oplog in project to 3 min * changelog
* * Added Guid::FromStringStefan Boberg2023-06-3013-21/+138
| | | | | | | * Added LoadCompactBinaryObject from file to compactbinaryfile.cpp/h * Added SaveCompactBinary(BinaryWriter& Ar, ...) functions * Added ZEN_PLATFORM_NAME define * Added SystemMetrics functionality to query system properties (see zencore/system.h)
* MakeCloneFromMemory should handle zero sized buffers gracefullyStefan Boberg2023-06-161-2/+9
| | | | we don't currently permit creating zero-length IoBuffer instances to prevent inefficiencies, but this can cause issues since some higher level code now ends up using it for things it was not originally intended for.
* added GetProcessIdStefan Boberg2023-06-161-0/+1
| | | | this enables mapping the result of a CreateProc call to an integer pid
* oplog snapshot (#317)Stefan Boberg2023-05-251-0/+42
| | | | | Added "snapshot" oplog RPC this may be used to bring referenced files into the local store instead of referencing them by filename, thus making the project/oplog transportable
* block destructors from throwing exceptions (#321)Dan Engelbrecht2023-05-241-2/+2
| | | | | | * ~FileMapping() is not allowed to throw exceptions * ~ScopedActivityBase() should not call ZEN_ASSERT (which causes SIGABORT on error) * ProjectStore::Project::WriteAccessTimes() which is called from ProjectStore::~Project() must not throw exceptions * changelog
* use exception when allocations fail rather than asserts (#319)Dan Engelbrecht2023-05-231-1/+4
| | | | * use exception when allocations fail rather than asserts * changelog
* streaming decompression support (#142)Stefan Boberg2023-05-235-4/+185
| | | Added CompressedBufferReader support from UE. This provides some streaming decompression support which can be employed to reduce memory and other resource usage.
* MemoryView::RightChop -> constStefan Boberg2023-05-221-1/+1
|
* added benchmark utility command `bench` (#298)Stefan Boberg2023-05-161-0/+1
| | | currently this implements a way (`zen bench --purge`) to purge the standby lists on Windows. This basically flushes the file system cache and is useful to put your system in a consistent state before running benchmarks
* Moved EnableVTMode function into zencore (#311)Stefan Boberg2023-05-161-12/+6
|
* brought over minor IoBuffer changes from sb/scrubStefan Boberg2023-05-151-0/+2
| | | | no actual code changes, just comments
* disable warning C5105 in ZEN_THIRD_PARTY_INCLUDES_STARTStefan Boberg2023-05-151-6/+7
|
* Merge branch 'main' of https://github.com/EpicGames/zenStefan Boberg2023-05-153-23/+441
|\
| * Remove ATL header usage (#306)Stefan Boberg2023-05-152-14/+404
| | | | | | ATL has been used here and there as a convenience. Given that this is a legacy component and not always something which gets installed along with the compiler we hereby remove the dependency altogether in favour of our own simple wrappers
| * all threads should be named (#304)Stefan Boberg2023-05-151-9/+37
| | | | | | | | | | | | | | * added WorkerThreadPool naming, packaged_task support * name the http.sys thread pool service threads * added http.sys I/O threadpool naming * upstream cache I/O thread naming
* | implemented string conversion for CbValidateError enumStefan Boberg2023-05-151-0/+2
|/
* implemented structured cache logging (#296)Stefan Boberg2023-05-121-2/+2
| | | | | | | | may be used as audit trail to help analyse potential cache pollution/corruption * also added common header with timestamp to all known log targets * made `Oid::operator bool` explicit to avoid logging/text format mishaps * made `HttpClient::operator bool` explicit
* Gracefully exit if Ctrl-C is pressed (#293)Dan Engelbrecht2023-05-111-0/+1
| | | | | * Feature: Gracefully exit if Ctrl-C is pressed * Bugfix: Return error code on exit as set by application * changelog
* allow early logging (#292)Dan Engelbrecht2023-05-111-0/+4
| | | | * if logging is not initialized, just log to console * changelog
* ZEN_LOG_SCOPE compile fixStefan Boberg2023-05-111-1/+1
| | | | previous version would fail with multiple instances in the same scope
* add context to MapViewOfFile errors (#282)Stefan Boberg2023-05-091-0/+5
| | | | * added FileSizeFromHandle function * added file size to error message when MapViewOfFile fails
* fixed merge errorStefan Boberg2023-05-091-4/+4
| | | | EmitScopesForLogging -> EmitActivitiesForLogging
* make logging tests run as part of zencore-testStefan Boberg2023-05-091-0/+2
|
* implemented thread-local activity trackingStefan Boberg2023-05-091-0/+83
| | | includes support for on-demand formatting of scope in error messages
* replace use of cxxopts::OptionParseException in our codeStefan Boberg2023-05-081-0/+8
| | | | later versions of cxxopts changed the signatures of exceptions. This change adds zen::OptionParseException to replace it
* 247 complete httpclient implementation (#269)Stefan Boberg2023-05-051-6/+18
| | | | | | | | | * implemented HttpClient connection pooling * implemented missing verbs * added response helpers (CbObject/CbPackage/text) * added RwLock::WithSharedLock and RwLock::WithExclusiveLock * added some noexcept annotations on RwLock * removed CPR dependency in httpclient.h
* moved source directories into `/src` (#264)Stefan Boberg2023-05-0246-0/+8890
* moved source directories into `/src` * updated bundle.lua for new `src` path * moved some docs, icon * removed old test trees