EpicGames.UBA
Base interface for all classes that have unmanaged resources.
Returns the handle to an unmanaged object
An unmanaged handle
Base interface for root paths used by cache system to normalize paths
Register roots used to normalize paths in caches
Path of root
set this to false if you want to ignore all files under this folder (you know they are _always_ the same for all machines)
Id of root. On windows these numbers need to increase two at the time since double backslash paths are added automatically under the hood
True if successful
Register system roots used to normalize paths in caches
Start id for system roots. On windows these take up 10 entries
True if successful
Create root paths instance
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 client
Cache server address
Cache server port
True if successful
Write to cache
RootPath instance
Bucket to store cache entry
Process
Input files
Input files size
Output files
Output files size
True if successful
Fetch from cache
RootPath instance
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)
The ICacheClient
Base interface for uba config file
Load a config file
The name of the config file
The IConfig
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
Threshold in which to report output stats
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
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
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
Constructor
The process to pull data from
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
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
Constructor
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
Event args for remote process returned event
Constructor
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
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
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 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
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
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
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
Constructor
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 addressabale storage table
Register disallowed paths for clients to download
Create a IStorageServer object
The server
The logger
The storage create info
The IStorageServer
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.
enumerable of disallowed paths
Registers a path that is not allowed to be transferred over the network for UBA remote agents.
The paths to add to thie disallowed list
Get the path to the p/invoke library that would be loaded
The path to the library
If the operating system is not supported