diff options
Diffstat (limited to 'client/src/service/stream_interactor.vala')
-rw-r--r-- | client/src/service/stream_interactor.vala | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/client/src/service/stream_interactor.vala b/client/src/service/stream_interactor.vala deleted file mode 100644 index f3859e3b..00000000 --- a/client/src/service/stream_interactor.vala +++ /dev/null @@ -1,70 +0,0 @@ -using Gee; - -using Xmpp; -using Dino.Entities; - -namespace Dino { - -public class StreamInteractor { - - public signal void account_added(Account account); - public signal void stream_negotiated(Account account); - - public ModuleManager module_manager; - public ConnectionManager connection_manager; - private ArrayList<StreamInteractionModule> interaction_modules = new ArrayList<StreamInteractionModule>(); - - public StreamInteractor(Database db) { - module_manager = new ModuleManager(db); - connection_manager = new ConnectionManager(module_manager); - - connection_manager.stream_opened.connect(on_stream_opened); - } - - public void connect(Account account) { - module_manager.add_account(account); - account_added(account); - connection_manager.connect(account); - } - - public void disconnect(Account account) { - connection_manager.disconnect(account); - } - - public ArrayList<Account> get_accounts() { - ArrayList<Account> ret = new ArrayList<Account>(Account.equals_func); - foreach (Account account in connection_manager.get_managed_accounts()) { - ret.add(account); - } - return ret; - } - - public Core.XmppStream? get_stream(Account account) { - return connection_manager.get_stream(account); - } - - public void add_module(StreamInteractionModule module) { - interaction_modules.add(module); - } - - public StreamInteractionModule? get_module(string id) { - foreach (StreamInteractionModule module in interaction_modules) { - if (module.get_id() == id) { - return module; - } - } - return null; - } - - private void on_stream_opened(Account account, Core.XmppStream stream) { - stream.stream_negotiated.connect( (stream) => { - stream_negotiated(account); - }); - } -} - -public interface StreamInteractionModule : Object { - internal abstract string get_id(); -} - -}
\ No newline at end of file |