3 # Copyright (c) Twisted Matrix Laboratories.
4 # See LICENSE for details.
10 """I am responsible for managing a user's accounts.
12 That is, remembering what accounts are available, their settings,
13 adding and removal of accounts, etc.
15 @ivar accounts: A collection of available accounts.
16 @type accounts: mapping of strings to L{Account<interfaces.IAccount>}s.
21 def getSnapShot(self):
22 """A snapshot of all the accounts and their status.
24 @returns: A list of tuples, each of the form
25 (string:accountName, boolean:isOnline,
26 boolean:autoLogin, string:gatewayType)
29 for account in self.accounts.values():
30 data.append((account.accountName, account.isOnline(),
31 account.autoLogin, account.gatewayType))
35 return len(self.accounts) == 0
37 def getConnectionInfo(self):
39 for account in self.accounts.values():
40 connectioninfo.append(account.isOnline())
43 def addAccount(self, account):
44 self.accounts[account.accountName] = account
46 def delAccount(self, accountName):
47 del self.accounts[accountName]
49 def connect(self, accountName, chatui):
51 @returntype: Deferred L{interfaces.IClient}
53 return self.accounts[accountName].logOn(chatui)
55 def disconnect(self, accountName):
57 #self.accounts[accountName].logOff() - not yet implemented
61 #for account in self.accounts.values():
62 # account.logOff() - not yet implemented