-
Notifications
You must be signed in to change notification settings - Fork 333
/
Copy pathChannelInfo.h
121 lines (103 loc) · 3.57 KB
/
ChannelInfo.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/*******************************************
Signaling internal include file
*******************************************/
#ifndef __KINESIS_VIDEO_WEBRTC_CHANNEL_INFO__
#define __KINESIS_VIDEO_WEBRTC_CHANNEL_INFO__
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
// Max channel status string length in describe API call in chars
#define MAX_DESCRIBE_CHANNEL_STATUS_LEN 32
// Max channel type string length in describe API call in chars
#define MAX_DESCRIBE_CHANNEL_TYPE_LEN 128
// Signaling channel type string
#define SIGNALING_CHANNEL_TYPE_UNKNOWN_STR (PCHAR) "UNKOWN"
#define SIGNALING_CHANNEL_TYPE_SINGLE_MASTER_STR (PCHAR) "SINGLE_MASTER"
// Signaling channel role type string
#define SIGNALING_CHANNEL_ROLE_TYPE_UNKNOWN_STR (PCHAR) "UNKOWN"
#define SIGNALING_CHANNEL_ROLE_TYPE_MASTER_STR (PCHAR) "MASTER"
#define SIGNALING_CHANNEL_ROLE_TYPE_VIEWER_STR (PCHAR) "VIEWER"
// Min and max for the message TTL value
#define MIN_SIGNALING_MESSAGE_TTL_VALUE (5 * HUNDREDS_OF_NANOS_IN_A_SECOND)
#define MAX_SIGNALING_MESSAGE_TTL_VALUE (120 * HUNDREDS_OF_NANOS_IN_A_SECOND)
#define SIGNALING_USER_AGENT_POSTFIX_NAME (PCHAR) "AWS-WEBRTC-KVS-AGENT"
#ifdef VERSION_STRING
#define SIGNALING_USER_AGENT_POSTFIX_VERSION (PCHAR) VERSION_STRING
#else
#define SIGNALING_USER_AGENT_POSTFIX_VERSION (PCHAR) "UNKNOWN"
#endif
/**
* Takes in a pointer to a public version of ChannelInfo object.
* Validates and creates an internal object
*
* @return - STATUS code of the execution
*/
STATUS createValidateChannelInfo(PChannelInfo, PChannelInfo*);
/**
* Frees the channel info object.
*
* @param - PChannelInfo* - IN - Channel info object to free
*
* @return - STATUS code of the execution
*/
STATUS freeChannelInfo(PChannelInfo*);
/**
* Returns the signaling channel status from a string
*
* @param - PCHAR - IN - String representation of the channel status
* @param - UINT32 - IN - String length
*
* @return - Signaling channel status type
*/
SIGNALING_CHANNEL_STATUS getChannelStatusFromString(PCHAR, UINT32);
/**
* Returns the signaling channel type from a string
*
* @param - PCHAR - IN - String representation of the channel type
* @param - UINT32 - IN - String length
*
* @return - Signaling channel type
*/
SIGNALING_CHANNEL_TYPE getChannelTypeFromString(PCHAR, UINT32);
/**
* Returns the signaling channel type string
*
* @param - SIGNALING_CHANNEL_TYPE - IN - Signaling channel type
*
* @return - Signaling channel type string
*/
PCHAR getStringFromChannelType(SIGNALING_CHANNEL_TYPE);
/**
* Returns the signaling channel Role from a string
*
* @param - PCHAR - IN - String representation of the channel role
* @param - UINT32 - IN - String length
*
* @return - Signaling channel type
*/
SIGNALING_CHANNEL_ROLE_TYPE getChannelRoleTypeFromString(PCHAR, UINT32);
/**
* Returns the signaling channel role type string
*
* @param - SIGNALING_CHANNEL_TYPE - IN - Signaling channel type
*
* @return - Signaling channel type string
*/
PCHAR getStringFromChannelRoleType(SIGNALING_CHANNEL_ROLE_TYPE);
/**
* Determines whether or not the channel arn is valid
* If VALID it extracts the channel name
* And Sets the pChannelName field in PChannelInfo
*
* @param - PChannelInfo - IN - channel info object
* @param - PUINT16 - OUT - start index of the arn (if valid) where the channel name is
* @param - PUINT16 - OUT - number of characters for the arn (if valid)
*
*@return - success if arn was valid otherwise failure
*/
STATUS validateKvsSignalingChannelArnAndExtractChannelName(PChannelInfo, PUINT16, PUINT16);
#ifdef __cplusplus
}
#endif
#endif /* __KINESIS_VIDEO_WEBRTC_CHANNEL_INFO__ */