Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
IXmppServerPersistenceLayer.cs
1using System;
2using System.Collections.Generic;
3using System.Threading.Tasks;
7
9{
13 public enum BlockingReason
14 {
18 Spam,
19
23 Abuse,
24
28 Other
29 }
30
35 {
41 new Task<IAccount> GetAccount(CaseInsensitiveString UserName);
42
48
54 Task<IEnumerable<IRosterItem>> GetRoster(CaseInsensitiveString UserName);
55
63
74 Task<IRosterItem> SetRosterItem(CaseInsensitiveString UserName, CaseInsensitiveString Jid, string Name, SubscriptionStatus? Subscription, bool? PendingSubscription, string[] Groups);
75
83
89 Task<string> GetVCard(CaseInsensitiveString UserName);
90
97 Task<bool> SetVCard(CaseInsensitiveString UserName, string VCard);
98
106 Task<bool> SetAvatar(CaseInsensitiveString UserName, string ContentType, byte[] Data);
107
113 Task<Tuple<string, byte[]>> GetAvatar(CaseInsensitiveString UserName);
114
120 Task<string> GetApiKeySecret(string ApiKey);
121
133 Task<KeyValuePair<IAccount, string[]>> CreateAccount(string ApiKey, CaseInsensitiveString UserName, string Password,
134 CaseInsensitiveString EMail, CaseInsensitiveString PhoneNr, string RemoteEndpoint);
135
142 Task<bool> DeleteAccount(CaseInsensitiveString UserName, string RemoteEndpoint);
143
150 Task<bool> ChangePassword(CaseInsensitiveString UserName, string Password);
151
162 Task<bool> StoreOfflineMessage(string Type, string Id, XmppAddress To, XmppAddress From, string Language, Stanza Stanza);
163
174 Task<bool> StoreOfflineMessage(string Type, string Id, XmppAddress To, XmppAddress From, string Language, string ContentXml);
175
182 Task<IEnumerable<IOfflineMessage>> GetOfflineMessages(CaseInsensitiveString ToUserName, int Max);
183
188 Task DeleteOfflineMessages(IEnumerable<IOfflineMessage> Messages);
189
199 Task<bool> AddBlock(CaseInsensitiveString UserName, CaseInsensitiveString BareJid, BlockingReason Reason, string Text, string TextLanguage);
200
208
214 Task<bool> ClearBlocks(CaseInsensitiveString UserName);
215
221 Task<IEnumerable<CaseInsensitiveString>> GetBlockList(CaseInsensitiveString UserName);
222
229 Task<bool> IsBlocked(CaseInsensitiveString FromBareJid, CaseInsensitiveString ToBareJid);
230
237 Task<bool> IsPermitted(CaseInsensitiveString BareJid, string Setting);
238
243 Task<byte[]> GetDialbackSecret();
244 }
245}
Contains information about a stanza.
Definition: Stanza.cs:10
Contains information about one XMPP address.
Definition: XmppAddress.cs:9
Represents a case-insensitive string.
Interface for XMPP Server persistence layers. The persistence layer should implement caching.
Interface for XMPP Server persistence layers. The persistence layer should implement caching.
Task< bool > AddBlock(CaseInsensitiveString UserName, CaseInsensitiveString BareJid, BlockingReason Reason, string Text, string TextLanguage)
Blocks an account.
Task AccountUpdated(CaseInsensitiveString UserName)
Called when account has been updated.
new Task< IAccount > GetAccount(CaseInsensitiveString UserName)
Method to call to fetch account information.
Task< IEnumerable< CaseInsensitiveString > > GetBlockList(CaseInsensitiveString UserName)
Gets the entire block list for an account.
Task< bool > SetVCard(CaseInsensitiveString UserName, string VCard)
Sets the vCard of an account.
Task< bool > StoreOfflineMessage(string Type, string Id, XmppAddress To, XmppAddress From, string Language, string ContentXml)
Tries to save an offline message.
Task< byte[]> GetDialbackSecret()
Gets the Dialback secret, as defined in XEP-0185.
Task< KeyValuePair< IAccount, string[]> > CreateAccount(string ApiKey, CaseInsensitiveString UserName, string Password, CaseInsensitiveString EMail, CaseInsensitiveString PhoneNr, string RemoteEndpoint)
Creates an account.
Task< IEnumerable< IOfflineMessage > > GetOfflineMessages(CaseInsensitiveString ToUserName, int Max)
Gets the oldest offline messages stored for a given bare JID, up to a maximum count.
Task< bool > Unblock(CaseInsensitiveString UserName, CaseInsensitiveString BareJid)
Unblocks an account.
Task< bool > ClearBlocks(CaseInsensitiveString UserName)
Remove all blocks for an account.
Task< bool > IsPermitted(CaseInsensitiveString BareJid, string Setting)
Checks if a feature is permitted for a Bare JID.
Task< IEnumerable< IRosterItem > > GetRoster(CaseInsensitiveString UserName)
Gets the roster of an account.
Task< bool > IsBlocked(CaseInsensitiveString FromBareJid, CaseInsensitiveString ToBareJid)
Checks if a sender is blocked by a receiver.
Task< bool > SetAvatar(CaseInsensitiveString UserName, string ContentType, byte[] Data)
Sets an avatar for a user.
Task< bool > StoreOfflineMessage(string Type, string Id, XmppAddress To, XmppAddress From, string Language, Stanza Stanza)
Tries to save an offline message.
Task< bool > DeleteAccount(CaseInsensitiveString UserName, string RemoteEndpoint)
Deletes an account.
Task< IRosterItem > GetRosterItem(CaseInsensitiveString UserName, CaseInsensitiveString Jid)
Gets a roster item for an account.
Task< string > GetVCard(CaseInsensitiveString UserName)
Gets the vCard of an account.
Task< bool > RemoveRosterItem(CaseInsensitiveString UserName, CaseInsensitiveString Jid)
Removes a roster item.
Task< Tuple< string, byte[]> > GetAvatar(CaseInsensitiveString UserName)
Gets the avatar of an account.
Task< string > GetApiKeySecret(string ApiKey)
Gets the secret for a given API key.
Task DeleteOfflineMessages(IEnumerable< IOfflineMessage > Messages)
Deletes offline messages.
Task< IRosterItem > SetRosterItem(CaseInsensitiveString UserName, CaseInsensitiveString Jid, string Name, SubscriptionStatus? Subscription, bool? PendingSubscription, string[] Groups)
Sets a roster item in a users roster.
Task< bool > ChangePassword(CaseInsensitiveString UserName, string Password)
Changes the password of an account.
SubscriptionStatus
Roster item subscription status enumeration.
Definition: IRosterItem.cs:10
BlockingReason
Reason for blocking an account.
PendingSubscription
Pending subscription states.
Definition: RosterItem.cs:54