~justin-fathomdb/nova/justinsb-openstack-api-volumes

« back to all changes in this revision

Viewing changes to vendor/Twisted-10.0.0/twisted/words/im/baseaccount.py

  • Committer: Jesse Andrews
  • Date: 2010-05-28 06:05:26 UTC
  • Revision ID: git-v1:bf6e6e718cdc7488e2da87b21e258ccc065fe499
initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- Python -*-
 
2
#
 
3
# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
 
4
# See LICENSE for details.
 
5
 
 
6
#
 
7
 
 
8
 
 
9
class AccountManager:
 
10
    """I am responsible for managing a user's accounts.
 
11
 
 
12
    That is, remembering what accounts are available, their settings,
 
13
    adding and removal of accounts, etc.
 
14
 
 
15
    @ivar accounts: A collection of available accounts.
 
16
    @type accounts: mapping of strings to L{Account<interfaces.IAccount>}s.
 
17
    """
 
18
    def __init__(self):
 
19
        self.accounts = {}
 
20
 
 
21
    def getSnapShot(self):
 
22
        """A snapshot of all the accounts and their status.
 
23
 
 
24
        @returns: A list of tuples, each of the form
 
25
            (string:accountName, boolean:isOnline,
 
26
            boolean:autoLogin, string:gatewayType)
 
27
        """
 
28
        data = []
 
29
        for account in self.accounts.values():
 
30
            data.append((account.accountName, account.isOnline(),
 
31
                         account.autoLogin, account.gatewayType))
 
32
        return data
 
33
 
 
34
    def isEmpty(self):
 
35
        return len(self.accounts) == 0
 
36
 
 
37
    def getConnectionInfo(self):
 
38
        connectioninfo = []
 
39
        for account in self.accounts.values():
 
40
            connectioninfo.append(account.isOnline())
 
41
        return connectioninfo
 
42
 
 
43
    def addAccount(self, account):
 
44
        self.accounts[account.accountName] = account
 
45
 
 
46
    def delAccount(self, accountName):
 
47
        del self.accounts[accountName]
 
48
 
 
49
    def connect(self, accountName, chatui):
 
50
        """
 
51
        @returntype: Deferred L{interfaces.IClient}
 
52
        """
 
53
        return self.accounts[accountName].logOn(chatui)
 
54
 
 
55
    def disconnect(self, accountName):
 
56
        pass
 
57
        #self.accounts[accountName].logOff()  - not yet implemented
 
58
 
 
59
    def quit(self):
 
60
        pass
 
61
        #for account in self.accounts.values():
 
62
        #    account.logOff()  - not yet implemented