engage-engine 1.249.90890017 → 1.251.90910019
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/engage.cpp +18 -1
- package/include/ConfigurationObjects.h +480 -29
- package/include/EngageInterface.h +22 -0
- package/lib/darwin.arm64/libengage-shared.dylib +0 -0
- package/lib/darwin.x64/libengage-shared.dylib +0 -0
- package/lib/linux.arm64/libengage-shared.so +0 -0
- package/lib/linux.x64/libengage-shared.so +0 -0
- package/lib/win32.ia32/engage-shared.dll +0 -0
- package/lib/win32.ia32/engage-shared.lib +0 -0
- package/lib/win32.ia32/rts-fips.dll +0 -0
- package/lib/win32.x64/engage-shared.dll +0 -0
- package/lib/win32.x64/engage-shared.lib +0 -0
- package/lib/win32.x64/rts-fips.dll +0 -0
- package/package.json +1 -1
package/engage.cpp
CHANGED
|
@@ -1201,6 +1201,20 @@ NAN_METHOD(getRiffDescriptor)
|
|
|
1201
1201
|
}
|
|
1202
1202
|
|
|
1203
1203
|
|
|
1204
|
+
//--------------------------------------------------------
|
|
1205
|
+
NAN_METHOD(beginGroupPcmPowerTracking)
|
|
1206
|
+
{
|
|
1207
|
+
NANRETI(engageBeginGroupPcmPowerTracking(STRVAL(0)));
|
|
1208
|
+
}
|
|
1209
|
+
|
|
1210
|
+
|
|
1211
|
+
//--------------------------------------------------------
|
|
1212
|
+
NAN_METHOD(endGroupPcmPowerTracking)
|
|
1213
|
+
{
|
|
1214
|
+
NANRETI(engageEndGroupPcmPowerTracking(STRVAL(0)));
|
|
1215
|
+
}
|
|
1216
|
+
|
|
1217
|
+
|
|
1204
1218
|
//--------------------------------------------------------
|
|
1205
1219
|
NAN_MODULE_INIT(Init)
|
|
1206
1220
|
{
|
|
@@ -1279,7 +1293,10 @@ NAN_MODULE_INIT(Init)
|
|
|
1279
1293
|
ENGAGE_BINDING(getDeviceId);
|
|
1280
1294
|
|
|
1281
1295
|
ENGAGE_BINDING(verifyRiff);
|
|
1282
|
-
ENGAGE_BINDING(getRiffDescriptor);
|
|
1296
|
+
ENGAGE_BINDING(getRiffDescriptor);
|
|
1297
|
+
|
|
1298
|
+
ENGAGE_BINDING(beginGroupPcmPowerTracking);
|
|
1299
|
+
ENGAGE_BINDING(endGroupPcmPowerTracking);
|
|
1283
1300
|
}
|
|
1284
1301
|
|
|
1285
1302
|
NODE_MODULE(engage, Init)
|
|
@@ -449,6 +449,52 @@ namespace AppConfigurationObjects
|
|
|
449
449
|
}
|
|
450
450
|
}
|
|
451
451
|
|
|
452
|
+
//-----------------------------------------------------------
|
|
453
|
+
JSON_SERIALIZED_CLASS(KvPair)
|
|
454
|
+
/**
|
|
455
|
+
* @brief Holds a key/value pair
|
|
456
|
+
*
|
|
457
|
+
* Helper C++ class to serialize and de-serialize KvPair JSON
|
|
458
|
+
*
|
|
459
|
+
*/
|
|
460
|
+
class KvPair : public ConfigurationObjectBase
|
|
461
|
+
{
|
|
462
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
463
|
+
IMPLEMENT_JSON_DOCUMENTATION(KvPair)
|
|
464
|
+
|
|
465
|
+
public:
|
|
466
|
+
/** @brief Key */
|
|
467
|
+
std::string key;
|
|
468
|
+
|
|
469
|
+
/** @brief Value */
|
|
470
|
+
std::string value;
|
|
471
|
+
|
|
472
|
+
KvPair()
|
|
473
|
+
{
|
|
474
|
+
clear();
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
void clear()
|
|
478
|
+
{
|
|
479
|
+
key.clear();
|
|
480
|
+
value.clear();
|
|
481
|
+
}
|
|
482
|
+
};
|
|
483
|
+
|
|
484
|
+
static void to_json(nlohmann::json& j, const KvPair& p)
|
|
485
|
+
{
|
|
486
|
+
j = nlohmann::json{
|
|
487
|
+
TOJSON_IMPL(key),
|
|
488
|
+
TOJSON_IMPL(value)
|
|
489
|
+
};
|
|
490
|
+
}
|
|
491
|
+
static void from_json(const nlohmann::json& j, KvPair& p)
|
|
492
|
+
{
|
|
493
|
+
p.clear();
|
|
494
|
+
getOptional<std::string>("key", p.key, j, EMPTY_STRING);
|
|
495
|
+
getOptional<std::string>("tags", p.value, j, EMPTY_STRING);
|
|
496
|
+
}
|
|
497
|
+
|
|
452
498
|
//-----------------------------------------------------------
|
|
453
499
|
JSON_SERIALIZED_CLASS(TuningSettings)
|
|
454
500
|
class TuningSettings : public ConfigurationObjectBase
|
|
@@ -2781,9 +2827,9 @@ namespace AppConfigurationObjects
|
|
|
2781
2827
|
certificateKey.clear();
|
|
2782
2828
|
caCertificates.clear();
|
|
2783
2829
|
verifyPeer = false;
|
|
2784
|
-
transactionTimeoutMs =
|
|
2830
|
+
transactionTimeoutMs = 0;
|
|
2785
2831
|
disableMessageSigning = false;
|
|
2786
|
-
connectionTimeoutSecs =
|
|
2832
|
+
connectionTimeoutSecs = 0;
|
|
2787
2833
|
tcpTxOptions.clear();
|
|
2788
2834
|
}
|
|
2789
2835
|
|
|
@@ -2877,9 +2923,9 @@ namespace AppConfigurationObjects
|
|
|
2877
2923
|
getOptional<bool>("verifyPeer", p.verifyPeer, j, true);
|
|
2878
2924
|
getOptional<bool>("allowSelfSignedCertificate", p.allowSelfSignedCertificate, j, false);
|
|
2879
2925
|
getOptional<std::vector<std::string>>("caCertificates", p.caCertificates, j);
|
|
2880
|
-
getOptional<int>("transactionTimeoutMs", p.transactionTimeoutMs, j,
|
|
2926
|
+
getOptional<int>("transactionTimeoutMs", p.transactionTimeoutMs, j, 0);
|
|
2881
2927
|
getOptional<bool>("disableMessageSigning", p.disableMessageSigning, j, false);
|
|
2882
|
-
getOptional<int>("connectionTimeoutSecs", p.connectionTimeoutSecs, j,
|
|
2928
|
+
getOptional<int>("connectionTimeoutSecs", p.connectionTimeoutSecs, j, 0);
|
|
2883
2929
|
getOptional<TcpNetworkTxOptions>("tcpTxOptions", p.tcpTxOptions, j);
|
|
2884
2930
|
}
|
|
2885
2931
|
|
|
@@ -2927,6 +2973,9 @@ namespace AppConfigurationObjects
|
|
|
2927
2973
|
/** @brief [Optional, Default: 0] Default connection timeout in seconds to any RP in the cluster */
|
|
2928
2974
|
int connectionTimeoutSecs;
|
|
2929
2975
|
|
|
2976
|
+
/** @brief [Optional, Default: 0] Default transaction time in milliseconds to any RP in the cluster */
|
|
2977
|
+
int transactionTimeoutMs;
|
|
2978
|
+
|
|
2930
2979
|
RallypointCluster()
|
|
2931
2980
|
{
|
|
2932
2981
|
clear();
|
|
@@ -2937,7 +2986,8 @@ namespace AppConfigurationObjects
|
|
|
2937
2986
|
connectionStrategy = csRoundRobin;
|
|
2938
2987
|
rallypoints.clear();
|
|
2939
2988
|
rolloverSecs = 10;
|
|
2940
|
-
connectionTimeoutSecs =
|
|
2989
|
+
connectionTimeoutSecs = 0;
|
|
2990
|
+
transactionTimeoutMs = 0;
|
|
2941
2991
|
}
|
|
2942
2992
|
};
|
|
2943
2993
|
|
|
@@ -2947,7 +2997,8 @@ namespace AppConfigurationObjects
|
|
|
2947
2997
|
TOJSON_IMPL(connectionStrategy),
|
|
2948
2998
|
TOJSON_IMPL(rallypoints),
|
|
2949
2999
|
TOJSON_IMPL(rolloverSecs),
|
|
2950
|
-
TOJSON_IMPL(connectionTimeoutSecs)
|
|
3000
|
+
TOJSON_IMPL(connectionTimeoutSecs),
|
|
3001
|
+
TOJSON_IMPL(transactionTimeoutMs)
|
|
2951
3002
|
};
|
|
2952
3003
|
}
|
|
2953
3004
|
static void from_json(const nlohmann::json& j, RallypointCluster& p)
|
|
@@ -2956,7 +3007,8 @@ namespace AppConfigurationObjects
|
|
|
2956
3007
|
getOptional<RallypointCluster::ConnectionStrategy_t>("connectionStrategy", p.connectionStrategy, RallypointCluster::ConnectionStrategy_t::csRoundRobin);
|
|
2957
3008
|
getOptional<std::vector<Rallypoint>>("rallypoints", p.rallypoints, j);
|
|
2958
3009
|
getOptional<int>("rolloverSecs", p.rolloverSecs, j, 10);
|
|
2959
|
-
getOptional<int>("connectionTimeoutSecs", p.connectionTimeoutSecs, j,
|
|
3010
|
+
getOptional<int>("connectionTimeoutSecs", p.connectionTimeoutSecs, j, 0);
|
|
3011
|
+
getOptional<int>("transactionTimeoutMs", p.connectionTimeoutSecs, j, 0);
|
|
2960
3012
|
}
|
|
2961
3013
|
|
|
2962
3014
|
|
|
@@ -6850,6 +6902,9 @@ namespace AppConfigurationObjects
|
|
|
6850
6902
|
/** @brief [Optional, Default: 5] Connection timeout in seconds to RP */
|
|
6851
6903
|
int rpConnectionTimeoutSecs;
|
|
6852
6904
|
|
|
6905
|
+
/** @brief [Optional, Default: 5] Transaction timeout with RP */
|
|
6906
|
+
int rpTransactionTimeoutMs;
|
|
6907
|
+
|
|
6853
6908
|
/** @brief [Optional, Default: 10] The number of seconds after which "sticky" transmission IDs expire. */
|
|
6854
6909
|
int stickyTidHangSecs;
|
|
6855
6910
|
|
|
@@ -6875,7 +6930,8 @@ namespace AppConfigurationObjects
|
|
|
6875
6930
|
rpClusterStrategy = RallypointCluster::ConnectionStrategy_t::csRoundRobin;
|
|
6876
6931
|
rpClusterRolloverSecs = 10;
|
|
6877
6932
|
rtpExpirationCheckIntervalMs = 250;
|
|
6878
|
-
rpConnectionTimeoutSecs =
|
|
6933
|
+
rpConnectionTimeoutSecs = 0;
|
|
6934
|
+
rpTransactionTimeoutMs = 0;
|
|
6879
6935
|
stickyTidHangSecs = 10;
|
|
6880
6936
|
uriStreamingIntervalMs = 60;
|
|
6881
6937
|
delayedMicrophoneClosureSecs = 15;
|
|
@@ -6896,6 +6952,7 @@ namespace AppConfigurationObjects
|
|
|
6896
6952
|
TOJSON_IMPL(rpClusterRolloverSecs),
|
|
6897
6953
|
TOJSON_IMPL(rtpExpirationCheckIntervalMs),
|
|
6898
6954
|
TOJSON_IMPL(rpConnectionTimeoutSecs),
|
|
6955
|
+
TOJSON_IMPL(rpTransactionTimeoutMs),
|
|
6899
6956
|
TOJSON_IMPL(stickyTidHangSecs),
|
|
6900
6957
|
TOJSON_IMPL(uriStreamingIntervalMs),
|
|
6901
6958
|
TOJSON_IMPL(delayedMicrophoneClosureSecs),
|
|
@@ -6914,7 +6971,8 @@ namespace AppConfigurationObjects
|
|
|
6914
6971
|
getOptional<RallypointCluster::ConnectionStrategy_t>("rpClusterStrategy", p.rpClusterStrategy, j, RallypointCluster::ConnectionStrategy_t::csRoundRobin);
|
|
6915
6972
|
getOptional<int>("rpClusterRolloverSecs", p.rpClusterRolloverSecs, j, 10);
|
|
6916
6973
|
getOptional<int>("rtpExpirationCheckIntervalMs", p.rtpExpirationCheckIntervalMs, j, 250);
|
|
6917
|
-
getOptional<int>("rpConnectionTimeoutSecs", p.rpConnectionTimeoutSecs, j,
|
|
6974
|
+
getOptional<int>("rpConnectionTimeoutSecs", p.rpConnectionTimeoutSecs, j, 0);
|
|
6975
|
+
getOptional<int>("rpTransactionTimeoutMs", p.rpTransactionTimeoutMs, j, 0);
|
|
6918
6976
|
getOptional<int>("stickyTidHangSecs", p.stickyTidHangSecs, j, 10);
|
|
6919
6977
|
getOptional<int>("uriStreamingIntervalMs", p.uriStreamingIntervalMs, j, 60);
|
|
6920
6978
|
getOptional<int>("delayedMicrophoneClosureSecs", p.delayedMicrophoneClosureSecs, j, 15);
|
|
@@ -7565,6 +7623,18 @@ namespace AppConfigurationObjects
|
|
|
7565
7623
|
IMPLEMENT_JSON_DOCUMENTATION(RallypointPeer)
|
|
7566
7624
|
|
|
7567
7625
|
public:
|
|
7626
|
+
typedef enum
|
|
7627
|
+
{
|
|
7628
|
+
/** @brief Use the RP's configuration */
|
|
7629
|
+
olpUseRpConfiguration = 0,
|
|
7630
|
+
|
|
7631
|
+
/** @brief Mark as a domain leaf */
|
|
7632
|
+
olpIsMeshLeaf = 1,
|
|
7633
|
+
|
|
7634
|
+
/** @brief Do not mark as a domain leaf */
|
|
7635
|
+
olpNotMeshLeaf = 2
|
|
7636
|
+
} OutboundLeafPolicy_t;
|
|
7637
|
+
|
|
7568
7638
|
/** @brief Internal ID. */
|
|
7569
7639
|
std::string id;
|
|
7570
7640
|
|
|
@@ -7583,6 +7653,8 @@ namespace AppConfigurationObjects
|
|
|
7583
7653
|
/** @brief Internal enablement setting. */
|
|
7584
7654
|
bool forceIsMeshLeaf;
|
|
7585
7655
|
|
|
7656
|
+
OutboundLeafPolicy_t outboundLeafPolicy;
|
|
7657
|
+
|
|
7586
7658
|
RallypointPeer()
|
|
7587
7659
|
{
|
|
7588
7660
|
clear();
|
|
@@ -7596,6 +7668,7 @@ namespace AppConfigurationObjects
|
|
|
7596
7668
|
certificate.clear();
|
|
7597
7669
|
connectionTimeoutSecs = 0;
|
|
7598
7670
|
forceIsMeshLeaf = false;
|
|
7671
|
+
outboundLeafPolicy = OutboundLeafPolicy_t::olpUseRpConfiguration;
|
|
7599
7672
|
}
|
|
7600
7673
|
};
|
|
7601
7674
|
|
|
@@ -7607,7 +7680,8 @@ namespace AppConfigurationObjects
|
|
|
7607
7680
|
TOJSON_IMPL(host),
|
|
7608
7681
|
TOJSON_IMPL(certificate),
|
|
7609
7682
|
TOJSON_IMPL(connectionTimeoutSecs),
|
|
7610
|
-
TOJSON_IMPL(forceIsMeshLeaf)
|
|
7683
|
+
TOJSON_IMPL(forceIsMeshLeaf),
|
|
7684
|
+
TOJSON_IMPL(outboundLeafPolicy)
|
|
7611
7685
|
};
|
|
7612
7686
|
}
|
|
7613
7687
|
static void from_json(const nlohmann::json& j, RallypointPeer& p)
|
|
@@ -7619,6 +7693,7 @@ namespace AppConfigurationObjects
|
|
|
7619
7693
|
getOptional<SecurityCertificate>("certificate", p.certificate, j);
|
|
7620
7694
|
getOptional<int>("connectionTimeoutSecs", p.connectionTimeoutSecs, j, 0);
|
|
7621
7695
|
getOptional<bool>("forceIsMeshLeaf", p.forceIsMeshLeaf, j, false);
|
|
7696
|
+
getOptional<RallypointPeer::OutboundLeafPolicy_t>("outboundLeafPolicy", p.outboundLeafPolicy, j, RallypointPeer::OutboundLeafPolicy_t::olpUseRpConfiguration);
|
|
7622
7697
|
}
|
|
7623
7698
|
|
|
7624
7699
|
//-----------------------------------------------------------
|
|
@@ -8031,10 +8106,10 @@ namespace AppConfigurationObjects
|
|
|
8031
8106
|
|
|
8032
8107
|
public:
|
|
8033
8108
|
|
|
8034
|
-
/** @brief An identifier useful for organizations that track different
|
|
8109
|
+
/** @brief An identifier useful for organizations that track different domain configurations by ID */
|
|
8035
8110
|
std::string id;
|
|
8036
8111
|
|
|
8037
|
-
/** @brief TODO: A version number for the
|
|
8112
|
+
/** @brief TODO: A version number for the domain configuration. Change this whenever you update your configuration */
|
|
8038
8113
|
int version;
|
|
8039
8114
|
|
|
8040
8115
|
/** @brief Comments */
|
|
@@ -8459,6 +8534,9 @@ namespace AppConfigurationObjects
|
|
|
8459
8534
|
/** @brief Certificate to be used for WebSockets */
|
|
8460
8535
|
SecurityCertificate certificate;
|
|
8461
8536
|
|
|
8537
|
+
/** @brief [Default: false] Indicates whether the client is required to present a certificate */
|
|
8538
|
+
bool requireClientCertificate;
|
|
8539
|
+
|
|
8462
8540
|
RallypointWebsocketSettings()
|
|
8463
8541
|
{
|
|
8464
8542
|
clear();
|
|
@@ -8469,6 +8547,7 @@ namespace AppConfigurationObjects
|
|
|
8469
8547
|
enabled = false;
|
|
8470
8548
|
listenPort = 8443;
|
|
8471
8549
|
certificate.clear();
|
|
8550
|
+
requireClientCertificate = false;
|
|
8472
8551
|
}
|
|
8473
8552
|
};
|
|
8474
8553
|
|
|
@@ -8477,7 +8556,8 @@ namespace AppConfigurationObjects
|
|
|
8477
8556
|
j = nlohmann::json{
|
|
8478
8557
|
TOJSON_IMPL(enabled),
|
|
8479
8558
|
TOJSON_IMPL(listenPort),
|
|
8480
|
-
TOJSON_IMPL(certificate)
|
|
8559
|
+
TOJSON_IMPL(certificate),
|
|
8560
|
+
TOJSON_IMPL(requireClientCertificate)
|
|
8481
8561
|
};
|
|
8482
8562
|
}
|
|
8483
8563
|
static void from_json(const nlohmann::json& j, RallypointWebsocketSettings& p)
|
|
@@ -8486,6 +8566,7 @@ namespace AppConfigurationObjects
|
|
|
8486
8566
|
getOptional<bool>("enabled", p.enabled, j, false);
|
|
8487
8567
|
getOptional<int>("listenPort", p.listenPort, j, 8443);
|
|
8488
8568
|
getOptional<SecurityCertificate>("certificate", p.certificate, j);
|
|
8569
|
+
getOptional<bool>("requireClientCertificate", p.requireClientCertificate, j, false);
|
|
8489
8570
|
}
|
|
8490
8571
|
|
|
8491
8572
|
|
|
@@ -8694,7 +8775,7 @@ namespace AppConfigurationObjects
|
|
|
8694
8775
|
/** @brief Internal - not serialized. */
|
|
8695
8776
|
PeeringConfiguration peeringConfiguration; // NOTE: This is NOT serialized
|
|
8696
8777
|
|
|
8697
|
-
/** @brief Indicates whether this Rallypoint is part of a core
|
|
8778
|
+
/** @brief Indicates whether this Rallypoint is part of a core domain or hangs off the periphery as a leaf node. */
|
|
8698
8779
|
bool isMeshLeaf;
|
|
8699
8780
|
|
|
8700
8781
|
/** @brief Set to true to forgo DSA signing of messages. Doing so is is a security risk but can be useful on CPU-constrained systems on already-secure environments. */
|
|
@@ -8748,7 +8829,7 @@ namespace AppConfigurationObjects
|
|
|
8748
8829
|
/** @brief [Optional, Default 0] Sets the queue's normal task bias */
|
|
8749
8830
|
uint32_t normalTaskQueueBias;
|
|
8750
8831
|
|
|
8751
|
-
/** @brief If enabled, causes a
|
|
8832
|
+
/** @brief If enabled, causes a domain leaf to reverse-subscribe to a core node upon the core subscribing and a reflector having been setup */
|
|
8752
8833
|
bool enableLeafReflectionReverseSubscription;
|
|
8753
8834
|
|
|
8754
8835
|
/** @brief If true, turns off loop detection. */
|
|
@@ -8784,11 +8865,17 @@ namespace AppConfigurationObjects
|
|
|
8784
8865
|
/** @brief Details for capture of transmitted packets */
|
|
8785
8866
|
PacketCapturer txCapture;
|
|
8786
8867
|
|
|
8787
|
-
/** @brief [Optional] This Rallypoint's
|
|
8788
|
-
std::string
|
|
8868
|
+
/** @brief [Optional] This Rallypoint's domain name */
|
|
8869
|
+
std::string domainName;
|
|
8870
|
+
|
|
8871
|
+
/** @brief [Optional] List of domains that explicitly MAY connect to this RP */
|
|
8872
|
+
std::vector<std::string> allowedDomains;
|
|
8873
|
+
|
|
8874
|
+
/** @brief [Optional] List of domains that explictly MAY NOT connect to this RP */
|
|
8875
|
+
std::vector<std::string> blockedDomains;
|
|
8789
8876
|
|
|
8790
|
-
/** @brief [Optional] List of additional
|
|
8791
|
-
std::vector<std::string>
|
|
8877
|
+
/** @brief [Optional] List of additional domains that can be reached via this RP */
|
|
8878
|
+
std::vector<std::string> extraDomains;
|
|
8792
8879
|
|
|
8793
8880
|
/** @brief [Optional] Low-level tuning */
|
|
8794
8881
|
TuningSettings tuning;
|
|
@@ -8850,11 +8937,13 @@ namespace AppConfigurationObjects
|
|
|
8850
8937
|
advertising.clear();
|
|
8851
8938
|
extendedGroupRestrictions.clear();
|
|
8852
8939
|
groupRestrictionAccessPolicyType = GroupRestrictionAccessPolicyType_t::graptPermissive;
|
|
8853
|
-
ipFamily = IpFamilyType_t::
|
|
8940
|
+
ipFamily = IpFamilyType_t::ifIp4;
|
|
8854
8941
|
rxCapture.clear();
|
|
8855
8942
|
txCapture.clear();
|
|
8856
|
-
|
|
8857
|
-
|
|
8943
|
+
domainName.clear();
|
|
8944
|
+
allowedDomains.clear();
|
|
8945
|
+
blockedDomains.clear();
|
|
8946
|
+
extraDomains.clear();
|
|
8858
8947
|
tuning.clear();
|
|
8859
8948
|
}
|
|
8860
8949
|
};
|
|
@@ -8915,8 +9004,10 @@ namespace AppConfigurationObjects
|
|
|
8915
9004
|
TOJSON_IMPL(ipFamily),
|
|
8916
9005
|
TOJSON_IMPL(rxCapture),
|
|
8917
9006
|
TOJSON_IMPL(txCapture),
|
|
8918
|
-
TOJSON_IMPL(
|
|
8919
|
-
TOJSON_IMPL(
|
|
9007
|
+
TOJSON_IMPL(domainName),
|
|
9008
|
+
TOJSON_IMPL(allowedDomains),
|
|
9009
|
+
TOJSON_IMPL(blockedDomains),
|
|
9010
|
+
TOJSON_IMPL(extraDomains),
|
|
8920
9011
|
TOJSON_IMPL(tuning)
|
|
8921
9012
|
};
|
|
8922
9013
|
}
|
|
@@ -8973,11 +9064,13 @@ namespace AppConfigurationObjects
|
|
|
8973
9064
|
getOptional<RallypointAdvertisingSettings>("advertising", p.advertising, j);
|
|
8974
9065
|
getOptional<std::vector<RallypointExtendedGroupRestriction>>("extendedGroupRestrictions", p.extendedGroupRestrictions, j);
|
|
8975
9066
|
getOptional<GroupRestrictionAccessPolicyType_t>("groupRestrictionAccessPolicyType", p.groupRestrictionAccessPolicyType, j, GroupRestrictionAccessPolicyType_t::graptPermissive);
|
|
8976
|
-
getOptional<IpFamilyType_t>("ipFamily", p.ipFamily, j, IpFamilyType_t::
|
|
9067
|
+
getOptional<IpFamilyType_t>("ipFamily", p.ipFamily, j, IpFamilyType_t::ifIp4);
|
|
8977
9068
|
getOptional<PacketCapturer>("rxCapture", p.rxCapture, j);
|
|
8978
9069
|
getOptional<PacketCapturer>("txCapture", p.txCapture, j);
|
|
8979
|
-
getOptional<std::string>("
|
|
8980
|
-
getOptional<std::vector<std::string>>("
|
|
9070
|
+
getOptional<std::string>("domainName", p.domainName, j);
|
|
9071
|
+
getOptional<std::vector<std::string>>("allowedDomains", p.allowedDomains, j);
|
|
9072
|
+
getOptional<std::vector<std::string>>("blockedDomains", p.blockedDomains, j);
|
|
9073
|
+
getOptional<std::vector<std::string>>("extraDomains", p.extraDomains, j);
|
|
8981
9074
|
getOptional<TuningSettings>("tuning", p.tuning, j);
|
|
8982
9075
|
}
|
|
8983
9076
|
|
|
@@ -9265,6 +9358,9 @@ namespace AppConfigurationObjects
|
|
|
9265
9358
|
/** @brief Array of certificates in this store */
|
|
9266
9359
|
std::vector<CertStoreCertificate> certificates;
|
|
9267
9360
|
|
|
9361
|
+
/** @brief [Optional] Array of KV pairs */
|
|
9362
|
+
std::vector<KvPair> kvp;
|
|
9363
|
+
|
|
9268
9364
|
CertStore()
|
|
9269
9365
|
{
|
|
9270
9366
|
clear();
|
|
@@ -9274,6 +9370,7 @@ namespace AppConfigurationObjects
|
|
|
9274
9370
|
{
|
|
9275
9371
|
id.clear();
|
|
9276
9372
|
certificates.clear();
|
|
9373
|
+
kvp.clear();
|
|
9277
9374
|
}
|
|
9278
9375
|
};
|
|
9279
9376
|
|
|
@@ -9281,7 +9378,8 @@ namespace AppConfigurationObjects
|
|
|
9281
9378
|
{
|
|
9282
9379
|
j = nlohmann::json{
|
|
9283
9380
|
TOJSON_IMPL(id),
|
|
9284
|
-
TOJSON_IMPL(certificates)
|
|
9381
|
+
TOJSON_IMPL(certificates),
|
|
9382
|
+
TOJSON_IMPL(kvp)
|
|
9285
9383
|
};
|
|
9286
9384
|
}
|
|
9287
9385
|
static void from_json(const nlohmann::json& j, CertStore& p)
|
|
@@ -9289,6 +9387,7 @@ namespace AppConfigurationObjects
|
|
|
9289
9387
|
p.clear();
|
|
9290
9388
|
getOptional<std::string>("id", p.id, j, EMPTY_STRING);
|
|
9291
9389
|
getOptional<std::vector<CertStoreCertificate>>("certificates", p.certificates, j);
|
|
9390
|
+
getOptional<std::vector<KvPair>>("kvp", p.kvp, j);
|
|
9292
9391
|
}
|
|
9293
9392
|
|
|
9294
9393
|
//-----------------------------------------------------------
|
|
@@ -9381,6 +9480,9 @@ namespace AppConfigurationObjects
|
|
|
9381
9480
|
/** @brief Array of certificate elements. */
|
|
9382
9481
|
std::vector<CertStoreCertificateElement> certificates;
|
|
9383
9482
|
|
|
9483
|
+
/** @brief Array of kv pairs. */
|
|
9484
|
+
std::vector<KvPair> kvp;
|
|
9485
|
+
|
|
9384
9486
|
CertStoreDescriptor()
|
|
9385
9487
|
{
|
|
9386
9488
|
clear();
|
|
@@ -9393,6 +9495,7 @@ namespace AppConfigurationObjects
|
|
|
9393
9495
|
version = 0;
|
|
9394
9496
|
flags = 0;
|
|
9395
9497
|
certificates.clear();
|
|
9498
|
+
kvp.clear();
|
|
9396
9499
|
}
|
|
9397
9500
|
};
|
|
9398
9501
|
|
|
@@ -9403,7 +9506,8 @@ namespace AppConfigurationObjects
|
|
|
9403
9506
|
TOJSON_IMPL(fileName),
|
|
9404
9507
|
TOJSON_IMPL(version),
|
|
9405
9508
|
TOJSON_IMPL(flags),
|
|
9406
|
-
TOJSON_IMPL(certificates)
|
|
9509
|
+
TOJSON_IMPL(certificates),
|
|
9510
|
+
TOJSON_IMPL(kvp)
|
|
9407
9511
|
};
|
|
9408
9512
|
}
|
|
9409
9513
|
static void from_json(const nlohmann::json& j, CertStoreDescriptor& p)
|
|
@@ -9414,6 +9518,7 @@ namespace AppConfigurationObjects
|
|
|
9414
9518
|
getOptional<int>("version", p.version, j, 0);
|
|
9415
9519
|
getOptional<int>("flags", p.flags, j, 0);
|
|
9416
9520
|
getOptional<std::vector<CertStoreCertificateElement>>("certificates", p.certificates, j);
|
|
9521
|
+
getOptional<std::vector<KvPair>>("kvp", p.kvp, j);
|
|
9417
9522
|
}
|
|
9418
9523
|
|
|
9419
9524
|
//-----------------------------------------------------------
|
|
@@ -11870,6 +11975,352 @@ namespace AppConfigurationObjects
|
|
|
11870
11975
|
getOptional<int>("maxPriority", p.maxPriority, j, 255);
|
|
11871
11976
|
}
|
|
11872
11977
|
|
|
11978
|
+
//-----------------------------------------------------------
|
|
11979
|
+
JSON_SERIALIZED_CLASS(EngateGroup)
|
|
11980
|
+
/**
|
|
11981
|
+
* @brief Engate configuration
|
|
11982
|
+
*
|
|
11983
|
+
* Helper C++ class to serialize and de-serialize EngateGroup JSON
|
|
11984
|
+
*
|
|
11985
|
+
* Example: @include[doc] examples/EngateGroup.json
|
|
11986
|
+
*
|
|
11987
|
+
* @see TODO: ConfigurationObjects::EngateGroupsConfiguration
|
|
11988
|
+
*/
|
|
11989
|
+
class EngateGroup : public Group
|
|
11990
|
+
{
|
|
11991
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
11992
|
+
IMPLEMENT_JSON_DOCUMENTATION(EngateGroup)
|
|
11993
|
+
|
|
11994
|
+
public:
|
|
11995
|
+
bool useVad;
|
|
11996
|
+
uint32_t inputHangMs;
|
|
11997
|
+
uint32_t inputActivationPowerThreshold;
|
|
11998
|
+
uint32_t inputDeactivationPowerThreshold;
|
|
11999
|
+
|
|
12000
|
+
EngateGroup()
|
|
12001
|
+
{
|
|
12002
|
+
clear();
|
|
12003
|
+
}
|
|
12004
|
+
|
|
12005
|
+
void clear()
|
|
12006
|
+
{
|
|
12007
|
+
Group::clear();
|
|
12008
|
+
useVad = false;
|
|
12009
|
+
inputHangMs = 750;
|
|
12010
|
+
inputActivationPowerThreshold = 700;
|
|
12011
|
+
inputDeactivationPowerThreshold = 125;
|
|
12012
|
+
}
|
|
12013
|
+
};
|
|
12014
|
+
|
|
12015
|
+
static void to_json(nlohmann::json& j, const EngateGroup& p)
|
|
12016
|
+
{
|
|
12017
|
+
nlohmann::json g;
|
|
12018
|
+
to_json(g, static_cast<const Group&>(p));
|
|
12019
|
+
|
|
12020
|
+
j = nlohmann::json{
|
|
12021
|
+
TOJSON_IMPL(useVad),
|
|
12022
|
+
TOJSON_IMPL(inputHangMs),
|
|
12023
|
+
TOJSON_IMPL(inputActivationPowerThreshold),
|
|
12024
|
+
TOJSON_IMPL(inputDeactivationPowerThreshold)
|
|
12025
|
+
};
|
|
12026
|
+
}
|
|
12027
|
+
static void from_json(const nlohmann::json& j, EngateGroup& p)
|
|
12028
|
+
{
|
|
12029
|
+
p.clear();
|
|
12030
|
+
from_json(j, static_cast<Group&>(p));
|
|
12031
|
+
getOptional<uint32_t>("inputHangMs", p.inputHangMs, j, 750);
|
|
12032
|
+
getOptional<uint32_t>("inputActivationPowerThreshold", p.inputActivationPowerThreshold, j, 700);
|
|
12033
|
+
getOptional<uint32_t>("inputDeactivationPowerThreshold", p.inputDeactivationPowerThreshold, j, 125);
|
|
12034
|
+
}
|
|
12035
|
+
|
|
12036
|
+
//-----------------------------------------------------------
|
|
12037
|
+
JSON_SERIALIZED_CLASS(EngateGroupsConfiguration)
|
|
12038
|
+
/**
|
|
12039
|
+
* @brief Engate configuration
|
|
12040
|
+
*
|
|
12041
|
+
* Helper C++ class to serialize and de-serialize EngateGroupsConfiguration JSON
|
|
12042
|
+
*
|
|
12043
|
+
* Example: @include[doc] examples/EngateGroupsConfiguration.json
|
|
12044
|
+
*
|
|
12045
|
+
* @see TODO: ConfigurationObjects::EngateGroupsConfiguration
|
|
12046
|
+
*/
|
|
12047
|
+
class EngateGroupsConfiguration : public ConfigurationObjectBase
|
|
12048
|
+
{
|
|
12049
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
12050
|
+
IMPLEMENT_JSON_DOCUMENTATION(EngateGroupsConfiguration)
|
|
12051
|
+
|
|
12052
|
+
public:
|
|
12053
|
+
/** @brief Array of groups in the configuration */
|
|
12054
|
+
std::vector<EngateGroup> groups;
|
|
12055
|
+
|
|
12056
|
+
EngateGroupsConfiguration()
|
|
12057
|
+
{
|
|
12058
|
+
clear();
|
|
12059
|
+
}
|
|
12060
|
+
|
|
12061
|
+
void clear()
|
|
12062
|
+
{
|
|
12063
|
+
groups.clear();
|
|
12064
|
+
}
|
|
12065
|
+
};
|
|
12066
|
+
|
|
12067
|
+
static void to_json(nlohmann::json& j, const EngateGroupsConfiguration& p)
|
|
12068
|
+
{
|
|
12069
|
+
j = nlohmann::json{
|
|
12070
|
+
TOJSON_IMPL(groups)
|
|
12071
|
+
};
|
|
12072
|
+
}
|
|
12073
|
+
static void from_json(const nlohmann::json& j, EngateGroupsConfiguration& p)
|
|
12074
|
+
{
|
|
12075
|
+
p.clear();
|
|
12076
|
+
getOptional<std::vector<EngateGroup>>("groups", p.groups, j);
|
|
12077
|
+
}
|
|
12078
|
+
|
|
12079
|
+
//-----------------------------------------------------------
|
|
12080
|
+
JSON_SERIALIZED_CLASS(EngateServerStatusReportConfiguration)
|
|
12081
|
+
/**
|
|
12082
|
+
* @brief TODO: Configuration for the engate server status report file
|
|
12083
|
+
*
|
|
12084
|
+
* Helper C++ class to serialize and de-serialize EngateServerStatusReportConfiguration JSON
|
|
12085
|
+
*
|
|
12086
|
+
* Example: @include[doc] examples/EngateServerStatusReportConfiguration.json
|
|
12087
|
+
*
|
|
12088
|
+
* @see RallypointServer
|
|
12089
|
+
*/
|
|
12090
|
+
class EngateServerStatusReportConfiguration : public ConfigurationObjectBase
|
|
12091
|
+
{
|
|
12092
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
12093
|
+
IMPLEMENT_JSON_DOCUMENTATION(EngateServerStatusReportConfiguration)
|
|
12094
|
+
|
|
12095
|
+
public:
|
|
12096
|
+
/** File name to use for the status report. */
|
|
12097
|
+
std::string fileName;
|
|
12098
|
+
|
|
12099
|
+
/** [Optional, Default: 30] The interval at which to write out the status report to file. */
|
|
12100
|
+
int intervalSecs;
|
|
12101
|
+
|
|
12102
|
+
/** [Optional, Default: false] Indicates if status reporting is enabled. */
|
|
12103
|
+
bool enabled;
|
|
12104
|
+
|
|
12105
|
+
/** [Optional, Default: null] Command to be executed every time the status report is produced. */
|
|
12106
|
+
std::string runCmd;
|
|
12107
|
+
|
|
12108
|
+
/** [Optional, Default: false] Indicates whether to include details of each group. */
|
|
12109
|
+
bool includeGroupDetail;
|
|
12110
|
+
|
|
12111
|
+
EngateServerStatusReportConfiguration()
|
|
12112
|
+
{
|
|
12113
|
+
clear();
|
|
12114
|
+
}
|
|
12115
|
+
|
|
12116
|
+
void clear()
|
|
12117
|
+
{
|
|
12118
|
+
fileName.clear();
|
|
12119
|
+
intervalSecs = 60;
|
|
12120
|
+
enabled = false;
|
|
12121
|
+
includeGroupDetail = false;
|
|
12122
|
+
runCmd.clear();
|
|
12123
|
+
}
|
|
12124
|
+
};
|
|
12125
|
+
|
|
12126
|
+
static void to_json(nlohmann::json& j, const EngateServerStatusReportConfiguration& p)
|
|
12127
|
+
{
|
|
12128
|
+
j = nlohmann::json{
|
|
12129
|
+
TOJSON_IMPL(fileName),
|
|
12130
|
+
TOJSON_IMPL(intervalSecs),
|
|
12131
|
+
TOJSON_IMPL(enabled),
|
|
12132
|
+
TOJSON_IMPL(includeGroupDetail),
|
|
12133
|
+
TOJSON_IMPL(runCmd)
|
|
12134
|
+
};
|
|
12135
|
+
}
|
|
12136
|
+
static void from_json(const nlohmann::json& j, EngateServerStatusReportConfiguration& p)
|
|
12137
|
+
{
|
|
12138
|
+
p.clear();
|
|
12139
|
+
getOptional<std::string>("fileName", p.fileName, j);
|
|
12140
|
+
getOptional<int>("intervalSecs", p.intervalSecs, j, 60);
|
|
12141
|
+
getOptional<bool>("enabled", p.enabled, j, false);
|
|
12142
|
+
getOptional<std::string>("runCmd", p.runCmd, j);
|
|
12143
|
+
getOptional<bool>("includeGroupDetail", p.includeGroupDetail, j, false);
|
|
12144
|
+
}
|
|
12145
|
+
|
|
12146
|
+
//-----------------------------------------------------------
|
|
12147
|
+
JSON_SERIALIZED_CLASS(EngateServerInternals)
|
|
12148
|
+
/**
|
|
12149
|
+
* @brief Internal engate server settings
|
|
12150
|
+
*
|
|
12151
|
+
* These settings are used to configure internal parameters.
|
|
12152
|
+
*
|
|
12153
|
+
* Helper C++ class to serialize and de-serialize EngateServerInternals JSON
|
|
12154
|
+
*
|
|
12155
|
+
* Example: @include[doc] examples/EngateServerInternals.json
|
|
12156
|
+
*
|
|
12157
|
+
* @see engageInitialize, ConfigurationObjects::EngateServerConfiguration
|
|
12158
|
+
*/
|
|
12159
|
+
class EngateServerInternals : public ConfigurationObjectBase
|
|
12160
|
+
{
|
|
12161
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
12162
|
+
IMPLEMENT_JSON_DOCUMENTATION(EngateServerInternals)
|
|
12163
|
+
|
|
12164
|
+
public:
|
|
12165
|
+
/** @brief [Optional] Settings for the EAR's watchdog. */
|
|
12166
|
+
WatchdogSettings watchdog;
|
|
12167
|
+
|
|
12168
|
+
/** @brief [Optional, Default: 1000] Interval at which to run the housekeeper thread. */
|
|
12169
|
+
int housekeeperIntervalMs;
|
|
12170
|
+
|
|
12171
|
+
/** @brief [Optional] Low-level tuning */
|
|
12172
|
+
TuningSettings tuning;
|
|
12173
|
+
|
|
12174
|
+
EngateServerInternals()
|
|
12175
|
+
{
|
|
12176
|
+
clear();
|
|
12177
|
+
}
|
|
12178
|
+
|
|
12179
|
+
void clear()
|
|
12180
|
+
{
|
|
12181
|
+
watchdog.clear();
|
|
12182
|
+
tuning.clear();
|
|
12183
|
+
housekeeperIntervalMs = 1000;
|
|
12184
|
+
}
|
|
12185
|
+
};
|
|
12186
|
+
|
|
12187
|
+
static void to_json(nlohmann::json& j, const EngateServerInternals& p)
|
|
12188
|
+
{
|
|
12189
|
+
j = nlohmann::json{
|
|
12190
|
+
TOJSON_IMPL(watchdog),
|
|
12191
|
+
TOJSON_IMPL(housekeeperIntervalMs),
|
|
12192
|
+
TOJSON_IMPL(tuning)
|
|
12193
|
+
};
|
|
12194
|
+
}
|
|
12195
|
+
static void from_json(const nlohmann::json& j, EngateServerInternals& p)
|
|
12196
|
+
{
|
|
12197
|
+
p.clear();
|
|
12198
|
+
getOptional<WatchdogSettings>("watchdog", p.watchdog, j);
|
|
12199
|
+
getOptional<int>("housekeeperIntervalMs", p.housekeeperIntervalMs, j, 1000);
|
|
12200
|
+
getOptional<TuningSettings>("tuning", p.tuning, j);
|
|
12201
|
+
}
|
|
12202
|
+
|
|
12203
|
+
//-----------------------------------------------------------
|
|
12204
|
+
JSON_SERIALIZED_CLASS(EngateServerConfiguration)
|
|
12205
|
+
/**
|
|
12206
|
+
* @brief Configuration for the engate server
|
|
12207
|
+
*
|
|
12208
|
+
* Helper C++ class to serialize and de-serialize EngateServerConfiguration JSON
|
|
12209
|
+
*
|
|
12210
|
+
* Example: @include[doc] examples/EngateServerConfiguration.json
|
|
12211
|
+
*
|
|
12212
|
+
*/
|
|
12213
|
+
class EngateServerConfiguration : public ConfigurationObjectBase
|
|
12214
|
+
{
|
|
12215
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
12216
|
+
IMPLEMENT_JSON_DOCUMENTATION(EngateServerConfiguration)
|
|
12217
|
+
|
|
12218
|
+
public:
|
|
12219
|
+
|
|
12220
|
+
/** @brief A unqiue identifier for the EAR server */
|
|
12221
|
+
std::string id;
|
|
12222
|
+
|
|
12223
|
+
/** @brief Number of seconds between checks to see if the service configuration has been updated. Default is 60.*/
|
|
12224
|
+
int serviceConfigurationFileCheckSecs;
|
|
12225
|
+
|
|
12226
|
+
/** @brief Name of a file containing the ear configuration. */
|
|
12227
|
+
std::string groupsConfigurationFileName;
|
|
12228
|
+
|
|
12229
|
+
/** @brief Command-line to execute that returns a configuration */
|
|
12230
|
+
std::string groupsConfigurationFileCommand;
|
|
12231
|
+
|
|
12232
|
+
/** @brief Number of seconds between checks to see if the configuration has been updated. Default is 60.*/
|
|
12233
|
+
int groupsConfigurationFileCheckSecs;
|
|
12234
|
+
|
|
12235
|
+
/** @brief Details for producing a status report. @see EngateServerStatusReportConfiguration */
|
|
12236
|
+
EngateServerStatusReportConfiguration statusReport;
|
|
12237
|
+
|
|
12238
|
+
/** @brief Details concerning the server's interaction with an external health-checker such as a load-balancer. @see ExternalHealthCheckResponder */
|
|
12239
|
+
ExternalHealthCheckResponder externalHealthCheckResponder;
|
|
12240
|
+
|
|
12241
|
+
/** @brief Internal settings */
|
|
12242
|
+
EngateServerInternals internals;
|
|
12243
|
+
|
|
12244
|
+
/** @brief Path to the certificate store */
|
|
12245
|
+
std::string certStoreFileName;
|
|
12246
|
+
|
|
12247
|
+
/** @brief Hex password for the certificate store (if any) */
|
|
12248
|
+
std::string certStorePasswordHex;
|
|
12249
|
+
|
|
12250
|
+
/** @brief The policy to be used for the underlying Engage Engine */
|
|
12251
|
+
EnginePolicy enginePolicy;
|
|
12252
|
+
|
|
12253
|
+
/** @brief Name to use for signalling a configuration check */
|
|
12254
|
+
std::string configurationCheckSignalName;
|
|
12255
|
+
|
|
12256
|
+
/** @brief [Optional] Settings for the FIPS crypto. */
|
|
12257
|
+
FipsCryptoSettings fipsCrypto;
|
|
12258
|
+
|
|
12259
|
+
/** @brief [Optional] Settings for NSM. */
|
|
12260
|
+
NsmConfiguration nsm;
|
|
12261
|
+
|
|
12262
|
+
EngateServerConfiguration()
|
|
12263
|
+
{
|
|
12264
|
+
clear();
|
|
12265
|
+
}
|
|
12266
|
+
|
|
12267
|
+
void clear()
|
|
12268
|
+
{
|
|
12269
|
+
id.clear();
|
|
12270
|
+
serviceConfigurationFileCheckSecs = 60;
|
|
12271
|
+
groupsConfigurationFileName.clear();
|
|
12272
|
+
groupsConfigurationFileCommand.clear();
|
|
12273
|
+
groupsConfigurationFileCheckSecs = 60;
|
|
12274
|
+
statusReport.clear();
|
|
12275
|
+
externalHealthCheckResponder.clear();
|
|
12276
|
+
internals.clear();
|
|
12277
|
+
certStoreFileName.clear();
|
|
12278
|
+
certStorePasswordHex.clear();
|
|
12279
|
+
enginePolicy.clear();
|
|
12280
|
+
configurationCheckSignalName = "rts.9a164fa.${id}";
|
|
12281
|
+
fipsCrypto.clear();
|
|
12282
|
+
nsm.clear();
|
|
12283
|
+
}
|
|
12284
|
+
};
|
|
12285
|
+
|
|
12286
|
+
static void to_json(nlohmann::json& j, const EngateServerConfiguration& p)
|
|
12287
|
+
{
|
|
12288
|
+
j = nlohmann::json{
|
|
12289
|
+
TOJSON_IMPL(id),
|
|
12290
|
+
TOJSON_IMPL(serviceConfigurationFileCheckSecs),
|
|
12291
|
+
TOJSON_IMPL(groupsConfigurationFileName),
|
|
12292
|
+
TOJSON_IMPL(groupsConfigurationFileCommand),
|
|
12293
|
+
TOJSON_IMPL(groupsConfigurationFileCheckSecs),
|
|
12294
|
+
TOJSON_IMPL(statusReport),
|
|
12295
|
+
TOJSON_IMPL(externalHealthCheckResponder),
|
|
12296
|
+
TOJSON_IMPL(internals),
|
|
12297
|
+
TOJSON_IMPL(certStoreFileName),
|
|
12298
|
+
TOJSON_IMPL(certStorePasswordHex),
|
|
12299
|
+
TOJSON_IMPL(enginePolicy),
|
|
12300
|
+
TOJSON_IMPL(configurationCheckSignalName),
|
|
12301
|
+
TOJSON_IMPL(fipsCrypto),
|
|
12302
|
+
TOJSON_IMPL(nsm)
|
|
12303
|
+
};
|
|
12304
|
+
}
|
|
12305
|
+
static void from_json(const nlohmann::json& j, EngateServerConfiguration& p)
|
|
12306
|
+
{
|
|
12307
|
+
p.clear();
|
|
12308
|
+
getOptional<std::string>("id", p.id, j);
|
|
12309
|
+
getOptional<int>("serviceConfigurationFileCheckSecs", p.serviceConfigurationFileCheckSecs, j, 60);
|
|
12310
|
+
getOptional<std::string>("groupsConfigurationFileName", p.groupsConfigurationFileName, j);
|
|
12311
|
+
getOptional<std::string>("groupsConfigurationFileCommand", p.groupsConfigurationFileCommand, j);
|
|
12312
|
+
getOptional<int>("groupsConfigurationFileCheckSecs", p.groupsConfigurationFileCheckSecs, j, 60);
|
|
12313
|
+
getOptional<EngateServerStatusReportConfiguration>("statusReport", p.statusReport, j);
|
|
12314
|
+
getOptional<ExternalHealthCheckResponder>("externalHealthCheckResponder", p.externalHealthCheckResponder, j);
|
|
12315
|
+
getOptional<EngateServerInternals>("internals", p.internals, j);
|
|
12316
|
+
getOptional<std::string>("certStoreFileName", p.certStoreFileName, j);
|
|
12317
|
+
getOptional<std::string>("certStorePasswordHex", p.certStorePasswordHex, j);
|
|
12318
|
+
j.at("enginePolicy").get_to(p.enginePolicy);
|
|
12319
|
+
getOptional<std::string>("configurationCheckSignalName", p.configurationCheckSignalName, j, "rts.9a164fa.${id}");
|
|
12320
|
+
getOptional<FipsCryptoSettings>("fipsCrypto", p.fipsCrypto, j);
|
|
12321
|
+
getOptional<NsmConfiguration>("nsm", p.nsm, j);
|
|
12322
|
+
}
|
|
12323
|
+
|
|
11873
12324
|
//-----------------------------------------------------------
|
|
11874
12325
|
static inline void dumpExampleConfigurations(const char *path)
|
|
11875
12326
|
{
|
|
@@ -292,6 +292,12 @@ typedef struct _EngageEvents_t
|
|
|
292
292
|
|
|
293
293
|
/** @brief Fired whenever the previously-registered high-resolution timer interval ticks. 'tickType' is 1, 2, or 3 for pre-tick, tick, and post-tick respectively */
|
|
294
294
|
// void (* _Nullable PFN_ENGAGE_ON_HIGH_RESOLUTION_TIMER_TICK)(uint32_t tickType, uint32_t ticksSoFarLow, uint32_t ticksSoFarHigh, const char * _Nullable eventExtraJson);
|
|
295
|
+
|
|
296
|
+
/** @brief Fired on a group-by-group pcm power report */
|
|
297
|
+
void (* _Nullable PFN_ENGAGE_ENGINE_GROUP_BY_GROUP_PCM_POWER_LEVEL_REPORT)(const char * _Nullable eventExtraJson);
|
|
298
|
+
|
|
299
|
+
/** @brief Fired on an audio device event */
|
|
300
|
+
void (* _Nullable PFN_ENGAGE_ENGINE_AUDIO_DEVICE_EVENT)(const char * _Nullable eventExtraJson);
|
|
295
301
|
} EngageEvents_t;
|
|
296
302
|
/** @} */
|
|
297
303
|
|
|
@@ -1781,6 +1787,22 @@ ENGAGE_API int engageRegisterForHighResolutionTimerNative(uint32_t durationMs, P
|
|
|
1781
1787
|
ENGAGE_API int engageUnregisterFromHighResolutionTimerNative(void);
|
|
1782
1788
|
#endif
|
|
1783
1789
|
|
|
1790
|
+
/**
|
|
1791
|
+
* @brief [ASYNC] Begins tracking of input and output PCM power for the group
|
|
1792
|
+
*
|
|
1793
|
+
* @param id The ID of the group on which to start pcm power tracking
|
|
1794
|
+
* @return ENGAGE_RESULT_OK if the submission request was successful
|
|
1795
|
+
*/
|
|
1796
|
+
ENGAGE_API int engageBeginGroupPcmPowerTracking(const char * _Nonnull id);
|
|
1797
|
+
|
|
1798
|
+
/**
|
|
1799
|
+
* @brief [ASYNC] End tracking of input and output PCM power for the group
|
|
1800
|
+
*
|
|
1801
|
+
* @param id The ID of the group on which to end pcm power tracking
|
|
1802
|
+
* @return ENGAGE_RESULT_OK if the submission request was successful
|
|
1803
|
+
*/
|
|
1804
|
+
ENGAGE_API int engageEndGroupPcmPowerTracking(const char * _Nonnull id);
|
|
1805
|
+
|
|
1784
1806
|
#endif
|
|
1785
1807
|
|
|
1786
1808
|
#ifdef __cplusplus
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED