Skip to content

Commit 2d653a2

Browse files
authored
Updating CProducer to latest. Add constructor overloads. Add test coverage for reset and re-create (#661)
1 parent e664fb1 commit 2d653a2

File tree

7 files changed

+371
-41
lines changed

7 files changed

+371
-41
lines changed

CMake/Dependencies/libkvscproducer-CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ include(ExternalProject)
77
# clone repo only
88
ExternalProject_Add(libkvscproducer-download
99
GIT_REPOSITORY https://github.com/awslabs/amazon-kinesis-video-streams-producer-c.git
10-
GIT_TAG dcde7e188a74daffb62986a7d172128d3c6f4b48
10+
GIT_TAG f2a97fe6eaf78cbffd46ccfa5994bee2bebf99bf
1111
SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/kvscproducer-src"
1212
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/kvscproducer-build"
1313
CONFIGURE_COMMAND ""

src/CachingEndpointOnlyCallbackProvider.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ class CachingEndpointOnlyCallbackProvider : public DefaultCallbackProvider {
4040
std::unique_ptr <CredentialProvider> credentials_provider =
4141
(std::unique_ptr<EmptyCredentialProvider>) new EmptyCredentialProvider(),
4242
const std::string &region = DEFAULT_AWS_REGION,
43-
const std::string &control_plane_uri = "",
44-
const std::string &user_agent_name = "",
45-
const std::string &custom_user_agent = "",
46-
const std::string &cert_path = "",
43+
const std::string &control_plane_uri = EMPTY_STRING,
44+
const std::string &user_agent_name = EMPTY_STRING,
45+
const std::string &custom_user_agent = EMPTY_STRING,
46+
const std::string &cert_path = EMPTY_STRING,
4747
std::chrono::duration<uint64_t> caching_update_period = std::chrono::seconds(DEFAULT_ENDPOINT_CACHE_UPDATE_PERIOD / HUNDREDS_OF_NANOS_IN_A_SECOND));
4848

4949
virtual ~CachingEndpointOnlyCallbackProvider();

src/DefaultCallbackProvider.cpp

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,29 @@ DefaultCallbackProvider::DefaultCallbackProvider(
346346
caching_update_period.count() * HUNDREDS_OF_NANOS_IN_A_SECOND) {
347347
}
348348

349+
DefaultCallbackProvider::DefaultCallbackProvider(
350+
unique_ptr <ClientCallbackProvider> client_callback_provider,
351+
unique_ptr <StreamCallbackProvider> stream_callback_provider,
352+
unique_ptr <CredentialProvider> credentials_provider,
353+
const string& region,
354+
const string& control_plane_uri,
355+
const std::string &user_agent_name,
356+
const std::string &custom_user_agent,
357+
const std::string &cert_path,
358+
API_CALL_CACHE_TYPE api_call_caching,
359+
std::chrono::duration<uint64_t> caching_update_period) : DefaultCallbackProvider (
360+
move(client_callback_provider),
361+
move(stream_callback_provider),
362+
move(credentials_provider),
363+
region,
364+
control_plane_uri,
365+
user_agent_name,
366+
custom_user_agent,
367+
cert_path,
368+
api_call_caching,
369+
caching_update_period.count() * HUNDREDS_OF_NANOS_IN_A_SECOND) {
370+
}
371+
349372
DefaultCallbackProvider::DefaultCallbackProvider(
350373
unique_ptr <ClientCallbackProvider> client_callback_provider,
351374
unique_ptr <StreamCallbackProvider> stream_callback_provider,
@@ -356,6 +379,29 @@ DefaultCallbackProvider::DefaultCallbackProvider(
356379
const std::string &custom_user_agent,
357380
const std::string &cert_path,
358381
bool is_caching_endpoint,
382+
uint64_t caching_update_period) : DefaultCallbackProvider (
383+
move(client_callback_provider),
384+
move(stream_callback_provider),
385+
move(credentials_provider),
386+
region,
387+
control_plane_uri,
388+
user_agent_name,
389+
custom_user_agent,
390+
cert_path,
391+
is_caching_endpoint ? API_CALL_CACHE_TYPE_ENDPOINT_ONLY : API_CALL_CACHE_TYPE_NONE,
392+
caching_update_period) {
393+
}
394+
395+
DefaultCallbackProvider::DefaultCallbackProvider(
396+
unique_ptr <ClientCallbackProvider> client_callback_provider,
397+
unique_ptr <StreamCallbackProvider> stream_callback_provider,
398+
unique_ptr <CredentialProvider> credentials_provider,
399+
const string& region,
400+
const string& control_plane_uri,
401+
const std::string &user_agent_name,
402+
const std::string &custom_user_agent,
403+
const std::string &cert_path,
404+
API_CALL_CACHE_TYPE api_call_caching,
359405
uint64_t caching_update_period)
360406
: region_(region),
361407
service_(std::string(KINESIS_VIDEO_SERVICE_NAME)),
@@ -382,7 +428,7 @@ DefaultCallbackProvider::DefaultCallbackProvider(
382428
getPlatformCallbacks();
383429
if (STATUS_FAILED(retStatus = createAbstractDefaultCallbacksProvider(
384430
DEFAULT_CALLBACK_CHAIN_COUNT,
385-
API_CALL_CACHE_TYPE_ALL,
431+
api_call_caching,
386432
caching_update_period,
387433
STRING_TO_PCHAR(region),
388434
STRING_TO_PCHAR(control_plane_uri),

src/DefaultCallbackProvider.h

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,26 +28,50 @@ class DefaultCallbackProvider : public CallbackProvider {
2828
std::unique_ptr <ClientCallbackProvider> client_callback_provider,
2929
std::unique_ptr <StreamCallbackProvider> stream_callback_provider,
3030
std::unique_ptr <CredentialProvider> credentials_provider,
31-
const std::string &region,
32-
const std::string &control_plane_uri,
33-
const std::string &user_agent_name,
34-
const std::string &custom_user_agent,
35-
const std::string &cert_path,
36-
bool is_caching_endpoint,
37-
uint64_t caching_update_period);
31+
const std::string &region = DEFAULT_AWS_REGION,
32+
const std::string &control_plane_uri = EMPTY_STRING,
33+
const std::string &user_agent_name = EMPTY_STRING,
34+
const std::string &custom_user_agent = EMPTY_STRING,
35+
const std::string &cert_path = EMPTY_STRING,
36+
bool is_caching_endpoint = false,
37+
uint64_t caching_update_period = DEFAULT_ENDPOINT_CACHE_UPDATE_PERIOD);
3838

3939
explicit DefaultCallbackProvider(
4040
std::unique_ptr <ClientCallbackProvider> client_callback_provider,
4141
std::unique_ptr <StreamCallbackProvider> stream_callback_provider,
4242
std::unique_ptr <CredentialProvider> credentials_provider = (std::unique_ptr<CredentialProvider>) new EmptyCredentialProvider(),
4343
const std::string &region = DEFAULT_AWS_REGION,
44-
const std::string &control_plane_uri = "",
45-
const std::string &user_agent_name = "",
46-
const std::string &custom_user_agent = "",
47-
const std::string &cert_path = "",
44+
const std::string &control_plane_uri = EMPTY_STRING,
45+
const std::string &user_agent_name = EMPTY_STRING,
46+
const std::string &custom_user_agent = EMPTY_STRING,
47+
const std::string &cert_path = EMPTY_STRING,
4848
bool is_caching_endpoint = false,
4949
std::chrono::duration<uint64_t> caching_update_period = std::chrono::seconds(DEFAULT_ENDPOINT_CACHE_UPDATE_PERIOD / HUNDREDS_OF_NANOS_IN_A_SECOND));
5050

51+
explicit DefaultCallbackProvider(
52+
std::unique_ptr <ClientCallbackProvider> client_callback_provider,
53+
std::unique_ptr <StreamCallbackProvider> stream_callback_provider,
54+
std::unique_ptr <CredentialProvider> credentials_provider = (std::unique_ptr<CredentialProvider>) new EmptyCredentialProvider(),
55+
const std::string &region = DEFAULT_AWS_REGION,
56+
const std::string &control_plane_uri = EMPTY_STRING,
57+
const std::string &user_agent_name = EMPTY_STRING,
58+
const std::string &custom_user_agent = EMPTY_STRING,
59+
const std::string &cert_path = EMPTY_STRING,
60+
API_CALL_CACHE_TYPE api_call_caching = API_CALL_CACHE_TYPE_NONE,
61+
std::chrono::duration<uint64_t> caching_update_period = std::chrono::seconds(DEFAULT_ENDPOINT_CACHE_UPDATE_PERIOD / HUNDREDS_OF_NANOS_IN_A_SECOND));
62+
63+
explicit DefaultCallbackProvider(
64+
std::unique_ptr <ClientCallbackProvider> client_callback_provider,
65+
std::unique_ptr <StreamCallbackProvider> stream_callback_provider,
66+
std::unique_ptr <CredentialProvider> credentials_provider,
67+
const std::string &region,
68+
const std::string &control_plane_uri,
69+
const std::string &user_agent_name,
70+
const std::string &custom_user_agent,
71+
const std::string &cert_path,
72+
API_CALL_CACHE_TYPE api_call_caching,
73+
uint64_t caching_update_period);
74+
5175
virtual ~DefaultCallbackProvider();
5276

5377
callback_t getCallbacks() override;

src/KinesisVideoProducer.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ unique_ptr<KinesisVideoProducer> KinesisVideoProducer::create(
2424
region,
2525
control_plane_uri,
2626
user_agent_name,
27-
device_info_provider->getCustomUserAgent()));
27+
device_info_provider->getCustomUserAgent(),
28+
EMPTY_STRING,
29+
false,
30+
DEFAULT_ENDPOINT_CACHE_UPDATE_PERIOD));
2831

2932
return KinesisVideoProducer::create(move(device_info_provider), move(callback_provider));
3033
}

0 commit comments

Comments
 (0)