[hide private]
[frames] | no frames]

[ Module Hierarchy | Class Hierarchy ]

# Class Hierarchy

- nbxmpp.bosh.AckChecker: Class for generating rids and generating and checking acknowledgements in BOSH messages
- nbxmpp.dispatcher_nb.Dispatcher: Why is this here - I needed to redefine Dispatcher for BOSH and easiest way was to inherit original Dispatcher (now renamed to XMPPDispatcher). Trouble is that reference used to access dispatcher instance is in Client attribute named by __class__.__name__ of the dispatcher instance .. long story short:
- nbxmpp.stringprepare.EmptyMappingTable
- nbxmpp.stringprepare.ILookupTable: Interface for character lookup classes
- nbxmpp.stringprepare.IMappingTable: Interface for character mapping classes
- nbxmpp.idlequeue.IdleObject: Idle listener interface. Listed methods are called by IdleQueue.
  - nbxmpp.idlequeue.IdleCommand: Can be subclassed to execute commands asynchronously by the idlequeue. Result will be optained via file descriptor of created pipe
  - nbxmpp.transports_nb.NonBlockingTCP: Non-blocking TCP socket wrapper
    - nbxmpp.transports_nb.NonBlockingHTTP: Socket wrapper that creates HTTP message out of sent data and peels-off HTTP headers from incoming messages
      - nbxmpp.transports_nb.NonBlockingHTTPBOSH: Class for BOSH HTTP connections. Slightly redefines HTTP transport by calling bosh bodytag generating callback before putting data on wire
- nbxmpp.idlequeue.IdleQueue: IdleQueue provide three distinct time based features. Uses select.poll()
  - nbxmpp.idlequeue.GlibIdleQueue: Extends IdleQueue to use glib io_add_wath, instead of select/poll In another 'non gui' implementation of Gajim IdleQueue can be used safetly
  - nbxmpp.idlequeue.SelectIdleQueue: Extends IdleQueue to use select.select() for polling
- nbxmpp.protocol.JID: JID can be built from string, modified, compared, serialised into string
- nbxmpp.bosh.KeyStack: Class implementing key sequences for BOSH messages
- nbxmpp.stringprepare.LookupTable
- nbxmpp.stringprepare.LookupTableFromFunction
- nbxmpp.stringprepare.MappingTableFromFunction
- nbxmpp.stringprepare.NamePrep: Implements preparation of internationalized domain names
- nbxmpp.simplexml.NodeBuilder: Builds a Node class minidom from data parsed to it. This class used for two purposes:
- nbxmpp.client_nb.NonBlockingClient: Client class is XMPP connection mountpoint. Objects for authentication, network communication, roster, xml parsing ... are plugged to client object. Client implements the abstract behavior - mostly negotioation and callbacks handling, whereas underlying modules take care of feature-specific logic
- nbxmpp.plugin.PlugIn: Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality
  - nbxmpp.auth_nb.NonBlockingBind: Bind some JID to the current connection to allow router know of our location. Must be plugged after successful SASL auth
  - nbxmpp.auth_nb.NonBlockingNonSASL: Implements old Non-SASL (JEP-0078) authentication used in jabberd1.4 and transport authentication
  - nbxmpp.roster_nb.NonBlockingRoster: Defines a plenty of methods that will allow you to manage roster. Also automatically track presences from remote JIDs taking into account that every JID can have multiple resources connected. Does not currently support 'error' presences. You can also use mapping interface for access to the internal representation of contacts in roster
  - nbxmpp.tls_nb.NonBlockingTLS: TLS connection used to encrypts already estabilished tcp connection
  - nbxmpp.transports_nb.NonBlockingTransport: Abstract class representing a transport
    - nbxmpp.bosh.NonBlockingBOSH
    - nbxmpp.transports_nb.NonBlockingTCP: Non-blocking TCP socket wrapper
      - nbxmpp.transports_nb.NonBlockingHTTP: Socket wrapper that creates HTTP message out of sent data and peels-off HTTP headers from incoming messages
        - nbxmpp.transports_nb.NonBlockingHTTPBOSH: Class for BOSH HTTP connections. Slightly redefines HTTP transport by calling bosh bodytag generating callback before putting data on wire
  - nbxmpp.auth_nb.SASL: Implements SASL authentication. Can be plugged into NonBlockingClient to start authentication
  - nbxmpp.dispatcher_nb.XMPPDispatcher: Handles XMPP stream and is the first who takes control over a fresh stanza
    - nbxmpp.dispatcher_nb.BOSHDispatcher
- nbxmpp.stringprepare.Profile
- nbxmpp.proxy_connectors.ProxyConnector: Interface for proxy-connecting object - when tunnneling XMPP over proxies, some connecting process usually has to be done before opening stream. Proxy connectors are used right after TCP connection is estabilished
  - nbxmpp.proxy_connectors.HTTPCONNECTConnector
  - nbxmpp.proxy_connectors.SOCKS5Connector: SOCKS5 proxy connection class. Allows to use SOCKS5 proxies with (optionally) simple authentication (only USERNAME/PASSWORD auth)
- nbxmpp.tls_nb.SSLWrapper: Abstract SSLWrapper base class
  - nbxmpp.tls_nb.PyOpenSSLWrapper: Wrapper class for PyOpenSSL's recv() and send() methods
  - nbxmpp.tls_nb.StdlibSSLWrapper: Wrapper class for Python socket.ssl read() and write() methods
- nbxmpp.smacks.Smacks: This is Smacks is the Stream Management class. It takes care of requesting and sending acks. Also, it keeps track of the unhandled outgoing stanzas.
- nbxmpp.simplexml.T: Auxiliary class used to quick access to node's child nodes
  - nbxmpp.simplexml.NT: Auxiliary class used to quick create node's child nodes
- object: The most base type
  - exceptions.BaseException: Common base class for all exceptions
    - exceptions.Exception: Common base class for all non-exit exceptions.
      - nbxmpp.protocol.NodeProcessed: Exception that should be raised by handler when the handling should be stopped
      - exceptions.StandardError: Base class for all standard Python exceptions that do not represent interpreter exiting.
        - exceptions.EnvironmentError: Base class for I/O related errors.
          - exceptions.IOError: I/O operation failed.
            - nbxmpp.tls_nb.SSLWrapper.Error: Generic SSL Error Wrapper
      - nbxmpp.protocol.StreamError: Base exception class for stream errors
        - nbxmpp.protocol.BadFormat
        - nbxmpp.protocol.BadNamespacePrefix
        - nbxmpp.protocol.Conflict
        - nbxmpp.protocol.ConnectionTimeout
        - nbxmpp.protocol.HostGone
        - nbxmpp.protocol.HostUnknown
        - nbxmpp.protocol.ImproperAddressing
        - nbxmpp.protocol.InternalServerError
        - nbxmpp.protocol.InvalidFrom
        - nbxmpp.protocol.InvalidID
        - nbxmpp.protocol.InvalidNamespace
        - nbxmpp.protocol.InvalidXML
        - nbxmpp.protocol.NotAuthorized
        - nbxmpp.protocol.PolicyViolation
        - nbxmpp.protocol.RemoteConnectionFailed
        - nbxmpp.protocol.ResourceConstraint
        - nbxmpp.protocol.RestrictedXML
        - nbxmpp.protocol.SeeOtherHost
        - nbxmpp.protocol.SystemShutdown
        - nbxmpp.protocol.UndefinedCondition
        - nbxmpp.protocol.UnsupportedEncoding
        - nbxmpp.protocol.UnsupportedStanzaType
        - nbxmpp.protocol.UnsupportedVersion
        - nbxmpp.protocol.XMLNotWellFormed
  - nbxmpp.simplexml.Node: Node class describes syntax of separate XML Node. It have a constructor that permits node creation from set of "namespace name", attributes and payload of text strings and other nodes. It does not natively support building node from text string and uses NodeBuilder class for that purpose. After creation node can be mangled in many ways so it can be completely changed. Also node can be serialised into string in one of two modes: default (where the textual representation of node describes it exactly) and "fancy" - with whitespace added to make indentation and thus make result more readable by human.
    - nbxmpp.protocol.Acks: Acknowledgement elements for Stream Management
    - nbxmpp.protocol.BOSHBody: <body> tag that wraps usual XMPP stanzas in XMPP over BOSH
    - nbxmpp.protocol.DataField: This class is used in the DataForm class to describe the single data item
    - nbxmpp.protocol.DataForm: Used for manipulating dataforms in XMPP
    - nbxmpp.protocol.ErrorNode: XMPP-style error element
    - nbxmpp.protocol.Hashes: Hash elements for various XEPs as defined in XEP-300
    - nbxmpp.protocol.Protocol: A "stanza" object class. Contains methods that are common for presences, iqs and messages
      - nbxmpp.protocol.Error: Used to quickly transform received stanza into error reply
      - nbxmpp.protocol.Iq: XMPP Iq object - get/set dialog mechanism
      - nbxmpp.protocol.Message: XMPP Message stanza - "push" mechanism
      - nbxmpp.protocol.Presence