Ben Marsh
508c144999
Horde: Last batch (hopefully) of static analysis fixes/suppressions.
...
#preflight 623e144c8073508cfc117a87
[CL 19517822 by Ben Marsh in ue5-main branch]
2022-03-25 15:35:47 -04:00
Ben Marsh
cda1b66bba
Reformat EpicGames.Core according to standard coding conventions.
...
#preflight 623cd2e84368f558e30b4a9e
[CL 19502309 by Ben Marsh in ue5-main branch]
2022-03-24 16:35:00 -04:00
Ben Marsh
72dbf9aa4e
Enable code analysis (and fix warnings) for EpicGames.Perforce.
...
#preflight 61b7b75dc65177a67488ca5e
[CL 18449150 by Ben Marsh in ue5-main branch]
2021-12-13 16:50:25 -05:00
Ben Marsh
501bf53ae6
EpicGames.Perforce Fix argument for -x when using child process. Delegate to the connection implementation to write arguments to a response file.
...
[CL 17386176 by Ben Marsh in ue5-main branch]
2021-09-01 10:06:19 -04:00
Ben Marsh
a6e48a24c1
EpicGames.Perforce: Completely fill read buffer before returning to the caller. Linux returns 64k chunks of data and requires multiple calls to fill the buffer. In situations where we want to parse very large records (such as large p4 describe results), this results in attempting to parse the buffer many times more than necessary in order to succeed.
...
[CL 17385591 by Ben Marsh in ue5-main branch]
2021-09-01 09:05:51 -04:00
Ben Marsh
1230c5ed68
Double the size of the P4 response buffer until a limit, then increase it by 32MB chunks. Also improve error reporting for corrupt buffers.
...
[CL 17380649 by Ben Marsh in ue5-main branch]
2021-08-31 20:47:42 -04:00
Ben Marsh
935bd3804d
GitSync: Fix stack overflow when disposing of child process objects.
...
[CL 17377613 by Ben Marsh in ue5-main branch]
2021-08-31 16:58:42 -04:00
Ben Marsh
390c78654c
Add a native implementation of IPerforceConnection, which uses the Perforce C++ API (via a DLL called EpicGames.Perforce.Native) to output records to a buffer shared with managed code (which is double-buffered with the processing thread in managed code). Interaction with the API is lightweight and done on a background thread, with an async API overlaid on top. Prebuilt binaries for the native component are currently tested on Windows and Linux.
...
Performance has been tested against the P4 .NET API and the command line client by performing a fstat of non-deleted files in //UE5/Main.
EpicGames.Perforce (this library): 47s
Command line client piping to file: 59s
P4 .NET API: ~40 minutes
[CL 17347502 by Ben Marsh in ue5-main branch]
2021-08-29 16:35:57 -04:00
Ben Marsh
d0a856c8b7
P4: Add an interface for Perforce responses, and move the record deserialization logic into extension methods on it.
...
[CL 17335637 by Ben Marsh in ue5-main branch]
2021-08-27 12:19:41 -04:00
Ben Marsh
d98420677a
P4: Specify command arguments as a list rather than a concatenated string, for future compatibility with C++ library.
...
[CL 17335163 by Ben Marsh in ue5-main branch]
2021-08-27 11:21:50 -04:00
Ben Marsh
24076d2685
Fix xmldoc markup for EpicGames.Perforce.
...
[CL 17334551 by Ben Marsh in ue5-main branch]
2021-08-27 09:21:43 -04:00
Ben Marsh
a855dca4ea
Rename ReadOnlyUtf8String to Utf8String. Strings are always immutable in C#.
...
[CL 16807051 by Ben Marsh in ue5-main branch]
2021-07-02 12:16:55 -04:00
jonathan adamczewski
0af1ea99af
Add a common C# method for detecting the current host platform to EpicGames.Core, and move many a test to use that code.
...
#jira none
#rb joe.kirchoff
[CL 16593582 by jonathan adamczewski in ue5-main branch]
2021-06-08 17:01:23 -04:00
Ben Marsh
73ca289484
Missing files.
...
[CL 16152992 by Ben Marsh in ue5-main branch]
2021-04-28 23:07:41 -04:00
Ben Marsh
b785e84b4f
P4VUtils: Check the change is non-empty and shelve files before submit
...
#rb none
#rnx
[CL 15254378 by Ben Marsh in ue5-main branch]
2021-01-28 19:49:52 -04:00
Ben Marsh
2545b90045
Make the sink for tracing data pluggable, and remove dependency on Datadog tracing library from shared Perforce library.
...
Fixes long shutdown time for small applications, due to DD library waiting for TCP connection to timeout.
#rb none
[CL 15106602 by Ben Marsh in ue5-main branch]
2021-01-15 10:34:33 -04:00
Ben Marsh
07eb83c555
Fix copyright notices in Perforce library.
...
#rb none
#jira UE-106047
[CL 15100566 by Ben Marsh in ue5-main branch]
2021-01-14 20:19:50 -04:00
Ben Marsh
85154a736f
Merge changes from Horde fork of EpicGames.Perforce (various performance improvements, bug fixes, nullable and async aware)
...
#rb none
#rnx
[CL 15027976 by Ben Marsh in ue5-main branch]
2021-01-08 19:28:15 -04:00
Ben Marsh
6f927647b1
Changing C# code over to using EpicGames.Core over DotNETCommon.
...
#rb none
#rnx
[CL 14962096 by Ben Marsh in ue5-main branch]
2020-12-21 23:07:37 -04:00
Ben Marsh
0b5ff29245
Moving libraries into Shared folder to match Horde/GitSync.
...
#rb none
#rnx
[CL 14962037 by Ben Marsh in ue5-main branch]
2020-12-21 22:16:49 -04:00