7#include <unordered_map>
11#ifdef CPPCLIINTEROP_EXPORTS
12#define MT_CONNECTOR_EXPORT __declspec(dllexport)
14#define MT_CONNECTOR_EXPORT __declspec(dllimport)
20namespace MineTrustConnector
36 AllFilesUpToDate = 1000,
48 ReplicationStarted = 1003,
52 ReplicationComplete = 1004,
60 PackageDisabled = 1006,
64 ProcessOwnedLockRemoved = 1007,
68 PackageVersionCreated = 1008,
72 PackageDeleted = 1009,
76 PackageArchived = 1010,
80 PackageRestored = 1011,
88 FileDownloaded = 1101,
92 FileUpdatedLocally = 1102,
96 FileUpdatedOnServer = 1103,
100 FileRemovedOnServer = 1104,
104 FileReplicated = 1105,
108 FileDiscarded = 1106,
112 FileCheckedOut = 1107,
116 FileCheckedIn = 1108,
120 FileUncheckedOut = 1109,
124 FileChangesDiscarded = 1110,
128 FileVersionsCleanedUp = 1111,
132 FileUploadInProgress = 1112,
136 FileDownloadInProgress = 1113,
140 PreparingFileUpload = 1114,
148 ConnectionEstablished = 2001,
152 ConnectionLost = 2002,
156 GracefulShutdown = 2003,
164 ServerRegistered = 2005,
168 AccessTokenSuccess = 2006,
172 PackageEnabled = 2007,
177 ServiceUIDMismatch = 2008,
181 PackageAutoEnableUndetermined = 2009,
185 ClientCompatibilityError = 2010,
189 PackagePreviouslyDeleted = 2011,
194 SSLErrorDetected = 2012,
198 GeneralSyncError = 4000,
202 GeneralReplicationError = 4001,
210 PackageConfigurationNotFound = 4003,
216 AccessTokenRequired = 4004,
220 ServerRegistrationFailed = 4005,
224 LockPackageFailed = 4006,
228 UnlockPackageFailed = 4007,
232 EnablePackageFailed = 4008,
236 UpdateLocalFailed = 4009,
240 UpdateServerFailed = 4010,
244 PackageValidationFailed = 4011,
252 CreateVersionFailed = 4013,
256 PackageDeletionFailed = 4014,
260 PrintDiagnosticsFailed = 4015,
264 AccessForbidden = 4016,
287 std::unordered_map<std::string, std::string>
tags;
317 bool enabled =
false;
357 int targetVersion = 0;
361 bool exclusiveCheckOut =
false;
399 int percentageDownloaded = 0;
438 std::vector<ConfigSchemaItem>
items;
480 std::vector<LocalTagRecord>
tags;
504 std::chrono::system_clock::time_point
time;
535 static bool LoadPackageConfiguration(
const std::string& packageUID,
PackageConfiguration& instance);
554 ServerAlreadyRegistered = 1,
562 IncompatibleClient = 3
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());
586 PackageConfigurationNotFound = 1,
590 PackageAlreadyEnabled = 2,
594 PackagePreviouslyDeleted = 3,
598 ServerURLNotValid = 4,
606 IncompatibleClient = 6
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());
630 PackageConfigurationNotFound = 1,
638 IncompatibleClient = 3
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());
662 PackageConfigurationNotFound = 1,
666 PackageAlreadyLocked = 2,
670 FilesCheckedOutElsewhere = 3,
678 PackageNotEnabled = 5,
682 PackageProcessing = 6,
690 IncompatibleClient = 8
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());
714 PackageConfigurationNotFound = 1,
718 PackageNotLocked = 2,
726 IncompatibleClient = 4
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());
750 PackageConfigurationNotFound = 1,
754 PackageNotEnabled = 2,
766 IncompatibleClient = 5
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());
790 PackageConfigurationNotFound = 1,
794 LocalFileNotFound = 2,
798 ServerFileNotFound = 3,
802 ServerFileCheckedOut = 4,
810 IncompatibleClient = 6
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());
834 PackageConfigurationNotFound = 1,
838 LocalFileNotFound = 2,
842 ServerFileNotFound = 3,
850 IncompatibleClient = 5
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());
878 IncompatibleClient = 2
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& filter =
"",
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();
982 static PackageMetrics LoadPackageMetrics(
const std::string& packageUID);
988 static ConfigSchema LoadConfigSchema(
const std::string& root);
993 static std::vector<std::string> GetPermittedValues(
const std::string& configPath);
999 static bool IsMineTrustConnectorInstalled();
1005 static bool IsMineTrustConnectorRunning();
1007 struct RegistrationWrapperImpl;
1008 using RegistrationWrapper = std::unique_ptr<RegistrationWrapperImpl, void(*)(RegistrationWrapperImpl*)>;
1014 static RegistrationWrapper RegisterEvents(std::function<
void(
const MTConnectorEvent&)> callback,
const std::list<LogEvent>& eventIDs = {});
1019 static std::vector<std::string> EnumerateLocalContents(
const std::string& packageUID);
1025 static std::vector<std::string> EnumerateLocalFilesByTag(
const std::string& packageUID,
const std::string& tagName,
const std::string& tagValue);
1030 static bool IsInScope(
const std::string& packageUID,
const std::string& localFilePath);
1038 static void IncludeInPackage(PackageConfiguration& instance,
const std::string& localFilePath, std::function<
void(IncludeConfiguration&)> configureInclusion);
1045 static void ExcludeFromPackage(PackageConfiguration& instance,
const std::string& localFilePath);
1051 static void TagFile(PackageConfiguration& instance,
const std::string& localFilePath,
const std::string& tagName,
const std::string& tagValue);
1060 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());
1070 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
UpdateLocalResultCodes
Definition CppCliInterop.h:826
RegisterServerResultCodes
Definition CppCliInterop.h:546
UnlockPackageResultCodes
Definition CppCliInterop.h:706
CreateVersionResultCodes
Definition CppCliInterop.h:622
PrintDiagnosticsResultCodes
Definition CppCliInterop.h:866
LockPackageResultCodes
Definition CppCliInterop.h:654
LogEvent
Definition CppCliInterop.h:32
EnablePackageResultCodes
Definition CppCliInterop.h:578
SyncNowResultCodes
Definition CppCliInterop.h:742
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
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
std::string mineTrustRoot
Definition CppCliInterop.h:338
std::string owner
Definition CppCliInterop.h:366
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
std::string packageUID
Definition CppCliInterop.h:325
std::string filter
Definition CppCliInterop.h:377
Definition CppCliInterop.h:387