git » sdk » commit 8696a8b

Persistence is all-abstract so really an interface

author Stephen Paul Weber
2024-03-13 14:18:52 UTC
committer Stephen Paul Weber
2024-03-13 14:18:52 UTC
parent e73f877fb16efcdaa7ded3be6a25296b53846755

Persistence is all-abstract so really an interface

snikket/Persistence.hx +19 -19
snikket/persistence/Sqlite.hx +1 -1

diff --git a/snikket/Persistence.hx b/snikket/Persistence.hx
index 18f9a57..7cc9adf 100644
--- a/snikket/Persistence.hx
+++ b/snikket/Persistence.hx
@@ -5,23 +5,23 @@ import snikket.Chat;
 import snikket.ChatMessage;
 import snikket.Message;
 
-abstract class Persistence {
-	abstract public function lastId(accountId: String, chatId: Null<String>, callback:(serverId:Null<String>)->Void):Void;
-	abstract public function storeChat(accountId: String, chat: Chat):Void;
-	abstract public function getChats(accountId: String, callback: (chats:Array<SerializedChat>)->Void):Void;
-	abstract public function getChatsUnreadDetails(accountId: String, chats: Array<Chat>, callback: (details:Array<{ chatId: String, message: ChatMessage, unreadCount: Int }>)->Void):Void;
-	abstract public function storeReaction(accountId: String, update: ReactionUpdate, callback: (Null<ChatMessage>)->Void):Void;
-	abstract public function storeMessage(accountId: String, message: ChatMessage, callback: (ChatMessage)->Void):Void;
-	abstract public function updateMessageStatus(accountId: String, localId: String, status:MessageStatus, callback: (ChatMessage)->Void):Void;
-	abstract public function getMessages(accountId: String, chatId: String, beforeId: Null<String>, beforeTime: Null<String>, callback: (messages:Array<ChatMessage>)->Void):Void;
-	abstract public function getMediaUri(hashAlgorithm:String, hash:BytesData, callback: (uri:Null<String>)->Void):Void;
-	abstract public function storeMedia(mime:String, bytes:BytesData, callback: ()->Void):Void;
-	abstract public function storeCaps(caps:Caps):Void;
-	abstract public function getCaps(ver:String, callback: (Null<Caps>)->Void):Void;
-	abstract public function storeLogin(login:String, clientId:String, displayName:String, token:Null<String>):Void;
-	abstract public function getLogin(login:String, callback:(clientId:Null<String>, token:Null<String>, fastCount: Int, displayName:Null<String>)->Void):Void;
-	abstract public function storeStreamManagement(accountId:String, smId:String, outboundCount:Int, inboundCount:Int, outboundQueue:Array<String>):Void;
-	abstract public function getStreamManagement(accountId:String, callback: (smId:Null<String>, outboundCount:Int, inboundCount:Int, outboundQueue:Array<String>)->Void):Void;
-	abstract public function storeService(accountId:String, serviceId:String, name:Null<String>, node:Null<String>, caps:Caps):Void;
-	abstract public function findServicesWithFeature(accountId:String, feature:String, callback:(Array<{serviceId:String, name:Null<String>, node:Null<String>, caps: Caps}>)->Void):Void;
+interface Persistence {
+	public function lastId(accountId: String, chatId: Null<String>, callback:(serverId:Null<String>)->Void):Void;
+	public function storeChat(accountId: String, chat: Chat):Void;
+	public function getChats(accountId: String, callback: (chats:Array<SerializedChat>)->Void):Void;
+	public function getChatsUnreadDetails(accountId: String, chats: Array<Chat>, callback: (details:Array<{ chatId: String, message: ChatMessage, unreadCount: Int }>)->Void):Void;
+	public function storeReaction(accountId: String, update: ReactionUpdate, callback: (Null<ChatMessage>)->Void):Void;
+	public function storeMessage(accountId: String, message: ChatMessage, callback: (ChatMessage)->Void):Void;
+	public function updateMessageStatus(accountId: String, localId: String, status:MessageStatus, callback: (ChatMessage)->Void):Void;
+	public function getMessages(accountId: String, chatId: String, beforeId: Null<String>, beforeTime: Null<String>, callback: (messages:Array<ChatMessage>)->Void):Void;
+	public function getMediaUri(hashAlgorithm:String, hash:BytesData, callback: (uri:Null<String>)->Void):Void;
+	public function storeMedia(mime:String, bytes:BytesData, callback: ()->Void):Void;
+	public function storeCaps(caps:Caps):Void;
+	public function getCaps(ver:String, callback: (Null<Caps>)->Void):Void;
+	public function storeLogin(login:String, clientId:String, displayName:String, token:Null<String>):Void;
+	public function getLogin(login:String, callback:(clientId:Null<String>, token:Null<String>, fastCount: Int, displayName:Null<String>)->Void):Void;
+	public function storeStreamManagement(accountId:String, smId:String, outboundCount:Int, inboundCount:Int, outboundQueue:Array<String>):Void;
+	public function getStreamManagement(accountId:String, callback: (smId:Null<String>, outboundCount:Int, inboundCount:Int, outboundQueue:Array<String>)->Void):Void;
+	public function storeService(accountId:String, serviceId:String, name:Null<String>, node:Null<String>, caps:Caps):Void;
+	public function findServicesWithFeature(accountId:String, feature:String, callback:(Array<{serviceId:String, name:Null<String>, node:Null<String>, caps: Caps}>)->Void):Void;
 }
diff --git a/snikket/persistence/Sqlite.hx b/snikket/persistence/Sqlite.hx
index 9d5fb31..e57ef84 100644
--- a/snikket/persistence/Sqlite.hx
+++ b/snikket/persistence/Sqlite.hx
@@ -21,7 +21,7 @@ import snikket.Message;
 
 @:expose
 @:build(HaxeCBridge.expose())
-class Sqlite extends Persistence {
+class Sqlite implements Persistence {
 	final db: Connection;
 	final blobpath: String;