7#include <unordered_map>
11#ifdef CPPCLIINTEROP_EXPORTS
12#define MT_CONNECTOR_EXPORT __declspec(dllexport)
14#define MT_CONNECTOR_EXPORT __declspec(dllimport)
20namespace MineTrustConnector
287 std::unordered_map<std::string, std::string>
tags;
438 std::vector<ConfigSchemaItem>
items;
480 std::vector<LocalTagRecord>
tags;
504 std::chrono::system_clock::time_point
time;
568 static RegisterServerResultCodes RegisterServer(
const std::string& serverURL,
bool showUI =
false);
573 static concurrency::task<RegisterServerResultCodes> RegisterServerTask(
const std::string& serverURL,
bool showUI =
false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
612 static EnablePackageResultCodes EnablePackage(
const std::string& packageUID,
const std::string& localRoot =
"",
const std::string& serverURL =
"",
bool showUI =
false);
617 static concurrency::task<EnablePackageResultCodes> EnablePackageTask(
const std::string& packageUID,
const std::string& localRoot =
"",
const std::string& serverURL =
"",
bool showUI =
false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
644 static CreateVersionResultCodes CreateVersion(
const std::string& packageUID,
const std::string& comment =
"",
bool showUI =
false);
649 static concurrency::task<CreateVersionResultCodes> CreateVersionTask(
const std::string& packageUID,
const std::string& comment =
"",
bool showUI =
false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
696 static LockPackageResultCodes LockPackage(
const std::string& packageUID,
const int& ownerProcess = 0,
bool showUI =
false);
701 static concurrency::task<LockPackageResultCodes> LockPackageTask(
const std::string& packageUID,
const int& ownerProcess = 0,
bool showUI =
false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
732 static UnlockPackageResultCodes UnlockPackage(
const std::string& packageUID,
bool discardChanges =
false,
bool showUI =
false);
737 static concurrency::task<UnlockPackageResultCodes> UnlockPackageTask(
const std::string& packageUID,
bool discardChanges =
false,
bool showUI =
false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
772 static SyncNowResultCodes SyncNow(
const std::string& packageUID,
bool showUI =
false);
777 static concurrency::task<SyncNowResultCodes> SyncNowTask(
const std::string& packageUID,
bool showUI =
false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
816 static UpdateServerResultCodes UpdateServer(
const std::string& packageUID,
const std::string& filePath,
bool showUI =
false);
821 static concurrency::task<UpdateServerResultCodes> UpdateServerTask(
const std::string& packageUID,
const std::string& filePath,
bool showUI =
false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
856 static UpdateLocalResultCodes UpdateLocal(
const std::string& packageUID,
const std::string& filePath,
bool showUI =
false);
861 static concurrency::task<UpdateLocalResultCodes> UpdateLocalTask(
const std::string& packageUID,
const std::string& filePath,
bool showUI =
false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
884 static PrintDiagnosticsResultCodes PrintDiagnostics(
bool showUI =
false);
889 static concurrency::task<PrintDiagnosticsResultCodes> PrintDiagnosticsTask(
bool showUI =
false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
894 static std::vector<std::string> ListServerURLs();
899 static std::vector<PackageConfiguration> ListServerConfigurations();
904 static std::vector<PackageConfiguration> ListPackageConfigurations();
911 static std::vector<PackageConfiguration> FindPackageConfigurations(
const std::string& jsonPath,
const std::string& testValue,
bool negate =
false);
917 [[deprecated(
"Use FindTags and FindFiles instead")]]
918 static std::unordered_map<std::string, std::vector<std::string>> FindPackageConfigurationItems(
const std::string& tagName,
const std::string& tagValue);
926 [[deprecated(
"Use FindTags and FindFiles instead")]]
927 static std::unordered_map<std::string, std::vector<std::string>> FindPackageConfigurationItems(
const std::unordered_map<std::string, std::string>& tagCriteria);
943 static std::vector<LocalTagRecord> FindTags(
const std::string& nameFilter =
"",
const std::string& valueFilter =
"",
const std::string& serviceUID =
"",
bool fuzzyMatch =
false);
950 static std::vector<LocalFileRecord> FindFiles(
const std::string& tagName,
const std::string& tagValue,
const std::string& serviceUID =
"",
bool fuzzyMatch =
false);
957 static std::vector<LocalFileRecord> FindFiles(
const std::unordered_map<std::string, std::string>& tagCriteria,
const std::string& serviceUID =
"",
bool fuzzyMatch =
false);
963 static std::vector<std::string> GetDeletedPackages(
const std::string& serviceUID =
"");
969 static std::vector<std::string> GetArchivedPackages(
const std::string& serviceUID =
"");
975 static std::string GetShellExtensionName();
984 static PackageMetrics LoadPackageMetrics(
const std::string& packageUID,
const std::string& serviceUID =
"");
990 static ConfigSchema LoadConfigSchema(
const std::string& root);
995 static std::vector<std::string> GetPermittedValues(
const std::string& configPath);
1001 static bool IsMineTrustConnectorInstalled();
1007 static bool IsMineTrustConnectorRunning();
1009 struct RegistrationWrapperImpl;
1010 using RegistrationWrapper = std::unique_ptr<RegistrationWrapperImpl, void(*)(RegistrationWrapperImpl*)>;
1016 static RegistrationWrapper RegisterEvents(std::function<
void(
const MTConnectorEvent&)> callback,
const std::list<LogEvent>& eventIDs = {});
1021 static std::vector<std::string> EnumerateLocalContents(
const std::string& packageUID);
1027 static std::vector<std::string> EnumerateLocalFilesByTag(
const std::string& packageUID,
const std::string& tagName,
const std::string& tagValue);
1032 static bool IsInScope(
const std::string& packageUID,
const std::string& localFilePath);
1040 static void IncludeInPackage(PackageConfiguration& instance,
const std::string& localFilePath, std::function<
void(IncludeConfiguration&)> configureInclusion);
1047 static void ExcludeFromPackage(PackageConfiguration& instance,
const std::string& localFilePath);
1053 static void TagFile(PackageConfiguration& instance,
const std::string& localFilePath,
const std::string& tagName,
const std::string& tagValue);
1062 static concurrency::task<void> ReceiveFiles(
const std::vector<LocalFileRecord>& selection, std::function<
void(
const std::vector<LocalFileRecord>&)> filesReceivedCallback, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
1072 static concurrency::task<void> SendFiles(
const std::vector<LocalFileRecord>& selection, std::function<PackageConfiguration(
const LocalFileRecord&)> packageSelectionCallback, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
Definition CppCliInterop.h:26
UpdateServerResultCodes
Definition CppCliInterop.h:782
@ ServerFileNotFound
Definition CppCliInterop.h:798
@ ServerFileCheckedOut
Definition CppCliInterop.h:802
@ LocalFileNotFound
Definition CppCliInterop.h:794
UpdateLocalResultCodes
Definition CppCliInterop.h:826
RegisterServerResultCodes
Definition CppCliInterop.h:546
@ IncompatibleClient
Definition CppCliInterop.h:562
@ Success
Definition CppCliInterop.h:550
@ GeneralError
Definition CppCliInterop.h:558
@ ServerAlreadyRegistered
Definition CppCliInterop.h:554
UnlockPackageResultCodes
Definition CppCliInterop.h:706
@ PackageNotLocked
Definition CppCliInterop.h:718
CreateVersionResultCodes
Definition CppCliInterop.h:622
PrintDiagnosticsResultCodes
Definition CppCliInterop.h:866
LockPackageResultCodes
Definition CppCliInterop.h:654
@ PackageProcessing
Definition CppCliInterop.h:682
@ FilesCheckedOutElsewhere
Definition CppCliInterop.h:670
@ PackageNotEnabled
Definition CppCliInterop.h:678
@ PackageAlreadyLocked
Definition CppCliInterop.h:666
@ ProcessNotFound
Definition CppCliInterop.h:674
LogEvent
Definition CppCliInterop.h:32
@ PackageDeletionFailed
Definition CppCliInterop.h:256
@ PackageVersionCreated
Definition CppCliInterop.h:68
@ PackageDeleted
Definition CppCliInterop.h:72
@ AllFilesUpToDate
Definition CppCliInterop.h:36
@ ServiceError
Definition CppCliInterop.h:160
@ FileVersionsCleanedUp
Definition CppCliInterop.h:128
@ FileChangesDiscarded
Definition CppCliInterop.h:124
@ SyncCompleted
Definition CppCliInterop.h:44
@ ReplicationStarted
Definition CppCliInterop.h:48
@ CreateVersionFailed
Definition CppCliInterop.h:252
@ GeneralSyncError
Definition CppCliInterop.h:198
@ ServerRegistrationFailed
Definition CppCliInterop.h:220
@ GracefulShutdown
Definition CppCliInterop.h:156
@ SSLErrorDetected
Definition CppCliInterop.h:194
@ FileDownloadInProgress
Definition CppCliInterop.h:136
@ FileUpdatedOnServer
Definition CppCliInterop.h:96
@ AccessTokenSuccess
Definition CppCliInterop.h:168
@ PreparingFileUpload
Definition CppCliInterop.h:140
@ FileConflict
Definition CppCliInterop.h:248
@ GeneralReplicationError
Definition CppCliInterop.h:202
@ FileDiscarded
Definition CppCliInterop.h:108
@ FileCheckedIn
Definition CppCliInterop.h:116
@ FileUncheckedOut
Definition CppCliInterop.h:120
@ UpdateLocalFailed
Definition CppCliInterop.h:236
@ AccessForbidden
Definition CppCliInterop.h:264
@ AccessTokenRequired
Definition CppCliInterop.h:216
@ ProcessOwnedLockRemoved
Definition CppCliInterop.h:64
@ EnablePackageFailed
Definition CppCliInterop.h:232
@ PackageValidationFailed
Definition CppCliInterop.h:244
@ FileCheckedOut
Definition CppCliInterop.h:112
@ FileRemovedOnServer
Definition CppCliInterop.h:100
@ FileUpdatedLocally
Definition CppCliInterop.h:92
@ PackagePreviouslyDeleted
Definition CppCliInterop.h:189
@ PackageEnabled
Definition CppCliInterop.h:172
@ Initialising
Definition CppCliInterop.h:144
@ ClientCompatibilityError
Definition CppCliInterop.h:185
@ FileReplicated
Definition CppCliInterop.h:104
@ ServiceUIDMismatch
Definition CppCliInterop.h:177
@ SyncStarted
Definition CppCliInterop.h:40
@ FileUploaded
Definition CppCliInterop.h:84
@ ConnectionEstablished
Definition CppCliInterop.h:148
@ PackageAutoEnableUndetermined
Definition CppCliInterop.h:181
@ FileDownloaded
Definition CppCliInterop.h:88
@ PackageRestored
Definition CppCliInterop.h:80
@ PackageConfigurationNotFound
Definition CppCliInterop.h:210
@ ReplicationComplete
Definition CppCliInterop.h:52
@ PackageDisabled
Definition CppCliInterop.h:60
@ ConnectionLost
Definition CppCliInterop.h:152
@ ServerRegistered
Definition CppCliInterop.h:164
@ UpdateServerFailed
Definition CppCliInterop.h:240
@ LockPackageFailed
Definition CppCliInterop.h:224
@ FileUploadInProgress
Definition CppCliInterop.h:132
@ Unauthorized
Definition CppCliInterop.h:206
@ PrintDiagnosticsFailed
Definition CppCliInterop.h:260
@ VersionLocked
Definition CppCliInterop.h:56
@ UnlockPackageFailed
Definition CppCliInterop.h:228
@ PackageArchived
Definition CppCliInterop.h:76
static bool LoadPackageConfiguration(const std::string &packageUID, PackageConfiguration &instance)
Definition CppCliInterop.cpp:508
EnablePackageResultCodes
Definition CppCliInterop.h:578
@ ServerURLNotValid
Definition CppCliInterop.h:598
@ PackageAlreadyEnabled
Definition CppCliInterop.h:590
SyncNowResultCodes
Definition CppCliInterop.h:742
@ PackageLocked
Definition CppCliInterop.h:758
static bool SavePackageConfiguration(const PackageConfiguration &instance)
Definition CppCliInterop.cpp:522
Definition CppCliInterop.h:430
std::string root
Definition CppCliInterop.h:434
std::vector< ConfigSchemaItem > items
Definition CppCliInterop.h:438
Definition CppCliInterop.h:406
std::string value
Definition CppCliInterop.h:414
ConfigSchemaItem * parent
Definition CppCliInterop.h:410
std::string fullPath
Definition CppCliInterop.h:422
std::vector< ConfigSchemaItem > children
Definition CppCliInterop.h:418
Definition CppCliInterop.h:271
std::vector< std::string > files
Definition CppCliInterop.h:279
std::vector< std::string > extensions
Definition CppCliInterop.h:283
std::unordered_map< std::string, std::string > tags
Definition CppCliInterop.h:287
std::string retention
Definition CppCliInterop.h:291
std::string packageUID
Definition CppCliInterop.h:275
Definition CppCliInterop.h:468
std::string localFilePath
Definition CppCliInterop.h:488
std::unique_ptr< int > fileID
Definition CppCliInterop.h:484
std::string name
Definition CppCliInterop.h:472
std::string breadcrumb
Definition CppCliInterop.h:476
std::vector< LocalTagRecord > tags
Definition CppCliInterop.h:480
Definition CppCliInterop.h:447
std::string value
Definition CppCliInterop.h:455
std::string name
Definition CppCliInterop.h:451
std::unique_ptr< int > folderID
Definition CppCliInterop.h:459
Definition CppCliInterop.h:495
std::string packageUID
Definition CppCliInterop.h:524
LogEvent eventId
Definition CppCliInterop.h:500
std::unordered_map< std::string, std::string > eventArgs
Definition CppCliInterop.h:528
std::unique_ptr< int64_t > recordId
Definition CppCliInterop.h:512
std::string message
Definition CppCliInterop.h:508
int level
Definition CppCliInterop.h:516
std::chrono::system_clock::time_point time
Definition CppCliInterop.h:504
std::string filePath
Definition CppCliInterop.h:520
Definition CppCliInterop.h:300
std::vector< IncludeConfiguration > include
Definition CppCliInterop.h:348
bool exclusiveCheckOut
Definition CppCliInterop.h:361
std::string mineTrustRoot
Definition CppCliInterop.h:338
std::string owner
Definition CppCliInterop.h:366
int targetVersion
Definition CppCliInterop.h:357
std::string displayName
Definition CppCliInterop.h:321
std::string localRoot
Definition CppCliInterop.h:333
std::string visibility
Definition CppCliInterop.h:372
std::vector< std::string > tagNamingPatterns
Definition CppCliInterop.h:343
static MT_CONNECTOR_EXPORT const std::string PRIVATE_PACKAGE_VISIBILITY
Definition CppCliInterop.h:308
static MT_CONNECTOR_EXPORT const std::string SHARED_PACKAGE_VISIBILITY
Definition CppCliInterop.h:304
std::string serverUrl
Definition CppCliInterop.h:329
std::vector< std::string > exclude
Definition CppCliInterop.h:353
std::string filePath
Definition CppCliInterop.h:312
bool enabled
Definition CppCliInterop.h:317
std::string packageUID
Definition CppCliInterop.h:325
std::string filter
Definition CppCliInterop.h:377
Definition CppCliInterop.h:387
int percentageDownloaded
Definition CppCliInterop.h:399
int totalFiles
Definition CppCliInterop.h:391
int localFiles
Definition CppCliInterop.h:395