3
# Copyright (c) 2001-2004 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