Agora RTC Objective-C API Reference  Refactor
AgoraExtensionVersion.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2021 Agora.io. All rights reserved
3 
4 // This program is confidential and proprietary to Agora.io.
5 // And may not be copied, reproduced, modified, disclosed to others, published
6 // or used, in whole or in part, without the express prior written permission
7 // of Agora.io.
8 
9 #pragma once
10 
11 namespace agora {
12 namespace rtc {
13 
15  // Extension Framework Version : major.minor.micro
16  int major_v;
17  int minor_v;
18  int micro_v;
19 
21  : major_v(0), minor_v(0), micro_v(0) {}
22  ExtensionVersion(int majorV, int minorV = 0, int microV = 0)
23  : major_v(majorV), minor_v(minorV), micro_v(microV) {}
24 
25  bool operator<(const ExtensionVersion& other) const {
26  return major_v < other.major_v || minor_v < other.minor_v || micro_v < other.micro_v;
27  }
28 
29  bool operator==(const ExtensionVersion& other) const {
30  return major_v == other.major_v && minor_v == other.minor_v && micro_v == other.micro_v;
31  }
32 };
33 
34 #define BUMP_MAJOR_VERSION(VERSION) \
35  ExtensionVersion(VERSION.major_v + 1, 0, 0); \
36 
37 #define BUMP_MINOR_VERSION(VERSION) \
38  ExtensionVersion(VERSION.major_v, VERSION.minor_v + 1, 0); \
39 
40 #define BUMP_MICRO_VERSION(VERSION) \
41  ExtensionVersion(VERSION.major_v, VERSION.minor_v, VERSION.micro_v + 1); \
42 
43 class IExtensionProvider;
44 class IExtensionProviderV2;
45 class IAudioFilter;
46 class IExtensionVideoFilter;
47 
48 template <class T>
50 
51 template <>
54  return ExtensionVersion(1, 0, 0);
55  }
56 };
57 
58 template <>
62  }
63 };
64 
65 template <>
68  return ExtensionVersion(1, 0, 0);
69  }
70 };
71 
72 template <>
75  return ExtensionVersion(1, 0, 0);
76  }
77 };
78 
79 } // namespace rtc
80 } // namespace agora
agora::rtc::ExtensionVersion::ExtensionVersion
ExtensionVersion()
Definition: AgoraExtensionVersion.h:20
agora::rtc::ExtensionVersion
Definition: AgoraExtensionVersion.h:14
agora::rtc::ExtensionVersion::micro_v
int micro_v
Definition: AgoraExtensionVersion.h:18
agora::rtc::ExtensionVersion::major_v
int major_v
Definition: AgoraExtensionVersion.h:16
agora::rtc::IExtensionProviderV2
Definition: NGIAgoraExtensionProvider.h:71
agora
Definition: AgoraAtomicOps.h:21
agora::rtc::IAudioFilter
Definition: NGIAgoraMediaNode.h:67
agora::rtc::ExtensionVersion::minor_v
int minor_v
Definition: AgoraExtensionVersion.h:17
agora::rtc::ExtensionVersion::operator<
bool operator<(const ExtensionVersion &other) const
Definition: AgoraExtensionVersion.h:25
agora::rtc::IExtensionProvider
Definition: NGIAgoraExtensionProvider.h:29
agora::rtc::ExtensionVersion::operator==
bool operator==(const ExtensionVersion &other) const
Definition: AgoraExtensionVersion.h:29
agora::rtc::ExtensionInterfaceVersion< IAudioFilter >::version
static ExtensionVersion version()
Definition: AgoraExtensionVersion.h:67
agora::rtc::IExtensionVideoFilter
Definition: NGIAgoraMediaNode.h:242
agora::rtc::ExtensionInterfaceVersion
Definition: AgoraExtensionVersion.h:49
agora::rtc::ExtensionInterfaceVersion< IExtensionProvider >::version
static ExtensionVersion version()
Definition: AgoraExtensionVersion.h:53
agora::rtc::ExtensionInterfaceVersion< IExtensionProviderV2 >::version
static ExtensionVersion version()
Definition: AgoraExtensionVersion.h:60
BUMP_MAJOR_VERSION
#define BUMP_MAJOR_VERSION(VERSION)
Definition: AgoraExtensionVersion.h:34
agora::rtc::ExtensionVersion::ExtensionVersion
ExtensionVersion(int majorV, int minorV=0, int microV=0)
Definition: AgoraExtensionVersion.h:22
agora::rtc::ExtensionInterfaceVersion< IExtensionVideoFilter >::version
static ExtensionVersion version()
Definition: AgoraExtensionVersion.h:74