ZDK
IAccountProvider.h
1 #ifndef __IACCOUNTPROVIDER__
2 #define __IACCOUNTPROVIDER__
3 
4 #include <stdint.h>
5 
6 #include "Types/SharedPointerTypes.h"
7 #include "Types/AudioVideoCodecs.h"
8 #include "IZHandle.h"
9 
10 namespace ZDK
11 {
12 
13 //# @abi(all) documentation
18 class IAccountProvider : public virtual ZDK::IZHandle
19 {
20 public:
21  //# @abi(all) documentation
34  virtual ZDK::Shared::Account CreateUserAccount() = 0;
35 
43  virtual void DeleteUserAccount(ZDK::Shared::Account account) = 0;
44 
45  //# @abi(all) documentation
52  //# @abi(jni|obj_c) property
53  virtual ZDK::Shared::ItemList<ZDK::Shared::Account> ListAccounts() const = 0;
54 
55  //# @abi(all) documentation
60  //# @abi(jni|obj_c) property
61  virtual int AccountsCount() const = 0;
62 
63  //# @abi(all) documentation
72  //# @abi(jni|obj_c) @param(return) nullable
73  virtual ZDK::Shared::Account GetAccount(ZDK::ZDKHandle hAccountId) const = 0;
74 
75  //# @abi(jni|obj_c) property
76  //# @abi(jni|obj_c) @param(return) nullable
77  virtual ZDK::Shared::Account DefaultAccount() const = 0;
78 
79  virtual bool SetAsDefaultAccount(ZDK::Shared::Account account) = 0;
80 
81  //# @abi(all) documentation
90  virtual void UnregisterAllAccounts() = 0;
91 
92  //# @abi(all) documentation
99  virtual ZDK::Shared::AccountConfig CreateAccountConfiguration() = 0;
100 
101  //# @abi(all) documentation
108  virtual ZDK::Shared::MSRPConfig CreateMSRPConfiguration() = 0;
109 
110  //# @abi(all) documentation
117  virtual ZDK::Shared::StunConfig CreateStunConfiguration() = 0;
118 
119  //# @abi(all) documentation
126  virtual ZDK::Shared::IAXConfig CreateIAXConfiguration() = 0;
127 
128  //# @abi(all) documentation
135  virtual ZDK::Shared::SIPConfig CreateSIPConfiguration() = 0;
136 
137  //# @abi(all) documentation
144  virtual ZDK::Shared::ZRTPConfig CreateZRTPConfiguration() = 0;
145 
146  //# @abi(all) documentation
155  //# @abi(obj_c|jni) @param(value) delegate|register
156  virtual void AddAccountProviderListener(ZDK::Shared::AccountProviderEventsHandler value) = 0;
157 
158  //# @abi(all) documentation
167  //# @abi(obj_c|jni) @param(value) delegate|unregister
168  virtual void DropAccountProviderListener(ZDK::Shared::AccountProviderEventsHandler value) = 0;
169 };
170 
171 } //namespace ZDK
172 
173 #endif //__IACCOUNTPROVIDER__
virtual ZDK::Shared::SIPConfig CreateSIPConfiguration()=0
Creates a new empty SIP configuration.
Definition: IZHandle.h:12
Account information and control provider.
Definition: IAccountProvider.h:18
virtual ZDK::Shared::MSRPConfig CreateMSRPConfiguration()=0
Creates a new empty MSRP configuration.
virtual ZDK::Shared::StunConfig CreateStunConfiguration()=0
Creates a new empty STUN configuration.
virtual void UnregisterAllAccounts()=0
Unregisters all accounts.
virtual ZDK::Shared::ZRTPConfig CreateZRTPConfiguration()=0
Creates a new empty ZRTP configuration.
virtual ZDK::Shared::ItemList< ZDK::Shared::Account > ListAccounts() const =0
Gets a list with all active accounts.
virtual void DeleteUserAccount(ZDK::Shared::Account account)=0
Destroys an user account.
virtual int AccountsCount() const =0
Gets the count of all active accounts.
virtual ZDK::Shared::Account CreateUserAccount()=0
Creates a new user account.
virtual ZDK::Shared::AccountConfig CreateAccountConfiguration()=0
Creates a new empty account configuration.
virtual void AddAccountProviderListener(ZDK::Shared::AccountProviderEventsHandler value)=0
Adds a new account provider event listener.
Definition: IAccountConfig.h:10
virtual ZDK::Shared::Account GetAccount(ZDK::ZDKHandle hAccountId) const =0
Gets the account with the specified ID.
virtual void DropAccountProviderListener(ZDK::Shared::AccountProviderEventsHandler value)=0
Removes a specific already added account provider event listener.
virtual ZDK::Shared::IAXConfig CreateIAXConfiguration()=0
Creates a new empty IAX configuration.