EpicGames.UBA Base interface for all classes that have unmanaged resources. Returns the handle to an unmanaged object An unmanaged handle Struct containing results from artifact fetch Is set to true if succeeded in fetching artifacts Contains log lines if any Struct containing results from artifact fetch Is set to true if succeeded in fetching artifacts Contains log lines if any Is set to true if succeeded in fetching artifacts Contains log lines if any Base interface for a cache client Connect to cache server Cache server address Cache server port Number of tcp connections we want True if successful Disconnect from cache server Register path with string that will be hashed. All files under this path will be ignored and instead refer to this path hash Path that will represent all files under that path String that is unique to the content of data under path Write to cache Bucket to store cache entry Process Input files Input files size Output files Output files size True if successful Fetch from cache handle for roots Bucket to search for cache entry Process start info True if successful Request the connected server to shutdown Reason for shutdown Create a ICacheClient object The session Output reason for cache miss to log. Enable crypto by using a 32 character crypto string (representing a 16 byte value) string that will show in cache server log The ICacheClient Base interface for uba config file Load a config file The name of the config file The IConfig Load a config file The name of the table where the property is added The name of the property The value of the property The verbosity of a log entry Error verbosity Warning verbosity Info verbosity Info verbosity Info verbosity Base interface for logging functionality Begin logging scope End logging scope Log message entry verbosity the message to log Create a ILogger object The Microsoft.Extensions.Logging.ILogger to wrap The ILogger Information needed to create a process Common configs for processes to run MSVC based compiler Clang based compiler The path to the application binary The working directory The command line arguments A text description of the process Which configuration to use The process priority of the created process If input should be tracked A path to a log file, or null for not log file Arbitary user data to pass along with the process RootsHandle for process used to convert paths Base interface for process start info Create a IProcessStartInfo object The start info for the process Set to true if exit callback is used The IProcessStartInfo Event args for exited event The process to pull data from Event args for exited event The process to pull data from Process exit code The remote host that ran the process, if run remotely Captured output lines Total time spent for the processor Total wall time spent Total wall time spent Interface for a process instance Delegate for Exited events The sender object The event args Exited event handler Process exit code The remote host that ran the process, if run remotely Captured output lines Total time spent for the processor Total wall time spent Unique hash for this process (not stable between runs) Arbitary user data Cancel the running process If the process should be force terminated Create a IProcess object unmanaged pointer to the process the processes start info Optional callback when the process exits Arbitary user data The IProcess Type of execution used for process Process executed locally without detouring Process executed locally with detouring enabled Process executed on a remote session Process was never executed and instead downloaded from cache Process was skipped and never executed Type of execution Process exit code Captured output lines The remote host that ran the process, if run remotely Total time spent for the processor Total wall time spent Peak memory used, requires a job object so will only be non-zero for Windows hosts. UserData that was provided in EnqueueProcess Native uba handle to process. None means that nothing should be done RerunLocal means that we want to re-run the process locally with detouring enabled RerunNative means that we want to re-run the process locally without detouring Base interface for uba config file Start the scheduler. It will start processing enqueued processes straight away Queue process. Cancel all active processes and skip queued ones Returns true if no processes are running or queued Accumulated weight of all processes that are Queued and can run right now (dependencies are done) Set callback for when process has finished Allows uba to disable remote execution if running out of processes that can execute remotely Create a scheduler Session List of cache clients Max number of local processes scheduler can run in parallel Force all processes that can to run remote Base interface for a server instance Start the server Ip address or host name The port to use, -1 for default Enable crypto by using a 32 character crypto string (representing a 16 byte value) Stop the server Add a named connection to the server The name of the connection Success Adds a client that server will try to connect one or more tcp connections to The ip of the listening client The port of the listening client Enable crypto by using a 32 character crypto string (representing a 16 byte value) Success Create a IServer object Maximum number of workers Send size in bytes The logger Use Quic protocol instead of tcp for communication between host and helpers The IServer Information needed to create a session server Root directory to store content addressable data Path to a trace file that records the build If the custom allocator should be disabled If the visualizer should be launched If the content addressable storage should be reset If intermediate/output files should be written to disk More detailed trace information Wait for memory before starting new processes Kill processes when close to run out of memory Store .obj files compressed on disk Information needed to create a session server Root directory to store content addressable data Path to a trace file that records the build If the custom allocator should be disabled If the visualizer should be launched If the content addressable storage should be reset If intermediate/output files should be written to disk More detailed trace information Wait for memory before starting new processes Kill processes when close to run out of memory Store .obj files compressed on disk Root directory to store content addressable data Path to a trace file that records the build If the custom allocator should be disabled If the visualizer should be launched If the content addressable storage should be reset If intermediate/output files should be written to disk More detailed trace information Wait for memory before starting new processes Kill processes when close to run out of memory Store .obj files compressed on disk Base interface for session server create info Create a ISessionServerCreateInfo object The storage server The client The logger The session create info The ISessionServerCreateInfo Event args for remote process slot available event Is true if the available remote process slot is on a cross architecture machine Event args for remote process slot available event Is true if the available remote process slot is on a cross architecture machine Is true if the available remote process slot is on a cross architecture machine Event args for remote process returned event The process being returned Event args for remote process returned event The process being returned The remote process that was returned Base interface for a session server instance Degeate for remote process slot available events The sender object The event args Degeate for remote process returned events The sender object The event args Remote process slot available event handler Remote process returned event handler Add more info about session that show in visualizer Will tell all remote machines that they can disconnect once their active processes are done Will also stop listening for new remote machines Set max number of processes that can be executed remotely. Setting this can let the backend disconnect remote workers earlier Run a local process Process start info If the process should be run async Optional callback when the process exits Should be true unless process does not work being detoured (And in that case we need to manually register file system changes) The process being run Run a remote process Process start info Optional callback when the process exits Number of cores this process uses Optionally contains input that we know process will need. Memory block containing zero-terminated strings with an extra termination in the end. Number of strings in known inputs True means that this process can run on a different architecture and expects a mapping to exist The remote process being run Register roots data and get handle back Buffer containing roots used for cache and vfs. Format is multiples of byte/utf8string/utf8string. rootindex/vfspath/localpath Size of buffer in bytes The remote process being run Refresh cached information about directories The directories to refresh Registers external files write to session caches The files to register Registers virtual files that are part of other files (mapped into sections of existing file) Name of the virtual file Name of the source file Offset inside the source file Size of the segment inside the source file Registers the start of an external process The description of the process The process id that should be sent into EndExternalProcess Registers the end of an external process The id returned by BeginExternalProcess The exit code of the external process Writes external status to the uba trace stream which can then be visualized by ubavisualizer Total processes in session Processes done in session Number of errors in session Set a custom cas key for a process's tracked inputs The file to track The working directory The process to get tracked inputs from Cancel all processes Print summary information to the logger Get the trace for this session Create a ISessionServer object The session server create info The ISessionServer Information needed to create a storage server The root directory for the storage The capacity of the storage in bytes If the storage should be stored as compressed The geographical zone this machine belongs to. Can be empty Information needed to create a storage server The root directory for the storage The capacity of the storage in bytes If the storage should be stored as compressed The geographical zone this machine belongs to. Can be empty The root directory for the storage The capacity of the storage in bytes If the storage should be stored as compressed The geographical zone this machine belongs to. Can be empty Base interface for a storage server instance Save tge content addressable storage table Register disallowed paths for clients to download Create a IStorageServer object The server The logger The storage create info The IStorageServer Trace interface Begin task. Will create a bar in uba visualizer Description showing on bar in visualizer Details showing when hovering over bar in visualizer Task id Add hint to task.. will show with milliseconds since start or previous hint Task id returned by TaskBegin Hint text End task. Task id returned by TaskBegin Writes external status to the uba trace stream which can then be visualized by ubavisualizer Row of status text. Reuse one index to show one line in visualizer The identation of status name that will be shown in visualizer The status text that will be shown in visualizer The status type Optional hyperlink that can be used to make text clickable in visualizer Writes trace to file. Only works if created with ITrace.Create Creates a new trace Helper type to track task in scope Will create a bar in uba visualizer Trace used for this task scope Description showing on bar in visualizer Details showing when hovering over bar in visualizer End task Threaded logging for use by UBAExecutor Constructor The logger Destructor Protected dispose Finish logging async Utils Is UBA available? Paths that are not allowed to be transferred over the network for UBA remote agents. IEnumerable of disallowed paths Mapping of binary paths for cross architecture host binaries, to allow for using helpers of a different architecture. IEnumerable of binary mappings, where the key is the binary for the current host architecture Mapping of a folder path to a single hash, to allow for hashing an entire folder so each individual file does not need to be processed. Registers a path that is not allowed to be transferred over the network for UBA remote agents. The paths to add to the disallowed list Registers a path mapping for cross architecture binaries host architecture path cross architecture path Registers a hash for a path The path string The hash string Delegate for registering a remote disallowed path collection that is being changed event args containing which paths were added Delegate for registering a cross architecture path collection that is being changed event args containing which path was added Delegate for registering a path hash collection that is being changed event args containing which path was added Remote disallowed path registered event handler Cross architecture path registered event handler Remote disallowed path registered event handler Get the path to the p/invoke library that would be loaded The path to the library If the operating system is not supported Event args for registering a remote disallowed path Event args for registering a remote disallowed path The paths being registered Event args for registering a cross architecture path Event args for registering a cross architecture path The host architecture path being registered The cross architecture path being registered Event args for registering a path hash Event args for registering a path hash The path being registered The hash for the path being registered