Package pyxmpp :: Module stream :: Class Stream
[show private | hide private]
[frames | no frames]

Class Stream

StanzaProcessor --+    
                  |    
  StreamHandler --+    
                  |    
         StreamBase --+
                      |
PasswordManager --+   |
                  |   |
    StreamSASLMixIn --+
                      |
     StreamTLSMixIn --+
                      |
                     Stream

Known Subclasses:
ClientStream, ComponentStream

Generic XMPP stream class.

Responsible for establishing connection, parsing the stream,
StartTLS encryption and SASL authentication negotiation
and usage, dispatching received stanzas to apopriate handlers
and sending application's stanzas.

Whenever we say "stream" here we actually mean two streams
(incoming and outgoing) of one connections, as defined by the XMPP
specification.

:Ivariables:
    - `lock`: RLock object used to synchronize access to Stream object.
    - `features`: stream features as annouced by the initiator.
    - `me`: local stream endpoint JID.
    - `peer`: remote stream endpoint JID.
    - `process_all_stanzas`: when `True` then all stanzas received are
      considered local.
    - `tls`: TLS connection object.
    - `initiator`: `True` if local stream endpoint is the initiating entity.
    - `_reader`: the stream reader object (push parser) for the stream.

Method Summary
  __init__(self, default_ns, extra_ns, sasl_mechanisms, tls_settings, keepalive)
Initialize Stream object :Parameters: - `default_ns`: stream's default namespace ("jabber:client" for client, "jabber:server" for server, etc.) - `extra_ns`: sequence of extra namespace URIs to be defined for the stream.
    Inherited from StreamTLSMixIn
  get_tls_connection(self)
Get the TLS connection object for the stream.
    Inherited from PasswordManager
  check_authzid(self, authzid, extra_info)
Check if the authenticated entity is allowed to use given authorization id.
  check_password(self, username, password, realm)
Check the password validity.
  choose_realm(self, realm_list)
Choose an authentication realm from the list provided by the server.
  generate_nonce(self)
Generate a random string for digest authentication challenges.
  get_password(self, username, realm, acceptable_formats)
Get the password for user authentication.
  get_realms(self)
Get available realms list.
  get_serv_host(self)
Return the host name for DIGEST-MD5 'digest-uri' field.
  get_serv_name(self)
Return the service name for DIGEST-MD5 'digest-uri' field.
  get_serv_type(self)
Return the service type for DIGEST-MD5 'digest-uri' field.
    Inherited from StreamBase
  __del__(self)
  accept(self, sock, myname)
Accept incoming connection.
  bind(self, resource)
Bind to a resource.
  check_to(self, to)
Check "to" attribute of received stream header.
  close(self)
Forcibly close the connection and clear the stream state.
  connect(self, addr, port, service, to)
Establish XMPP connection with given address.
  connected(self)
Check if stream is connected.
  disconnect(self)
Gracefully close the connection.
  error(self, descr)
Handle stream XML parse error.
  fileno(self)
Return filedescriptor of the stream socket.
  generate_id(self)
Generate a random and unique stream ID.
  idle(self)
Do some housekeeping (cache expiration, timeout handling).
  loop(self, timeout)
Simple "main loop" for the stream.
  loop_iter(self, timeout)
Single iteration of a simple "main loop" for the stream.
  process(self)
Process stream's pending events.
  process_stream_error(self, err)
Process stream error element received.
  send(self, stanza)
Write stanza to the stream.
  stanza(self, _unused, node)
Process stanza (first level child element of the stream).
  stanza_start(self, doc, node)
Process stanza (first level child element of the stream) start tag -- do nothing.
  state_change(self, state, arg)
Called when connection state is changed.
  stream_end(self, _unused)
Process </stream:stream> (stream end) tag received from peer.
  stream_start(self, doc)
Process <stream:stream> (stream start) tag received from peer.
  write_raw(self, data)
Write raw data to the stream socket.
    Inherited from StanzaProcessor
  fix_in_stanza(self, stanza)
Modify incoming stanza before processing it.
  fix_out_stanza(self, stanza)
Modify outgoing stanza before sending into the stream.
  process_iq(self, stanza)
Process IQ stanza received.
  process_message(self, stanza)
Process message stanza.
  process_presence(self, stanza)
Process presence stanza.
  process_stanza(self, stanza)
Process stanza received from the stream.
  route_stanza(self, stanza)
Process stanza not addressed to us.
  set_iq_get_handler(self, element, namespace, handler)
Set <iq type="get"/> handler.
  set_iq_set_handler(self, element, namespace, handler)
Set <iq type="set"/> handler.
  set_message_handler(self, typ, handler, namespace, priority)
Set a handler for <message/> stanzas.
  set_presence_handler(self, typ, handler, namespace, priority)
Set a handler for <presence/> stanzas.
  set_response_handlers(self, iq, res_handler, err_handler, timeout_handler, timeout)
Set response handler for an IQ "get" or "set" stanza.
  unset_iq_get_handler(self, element, namespace)
Remove <iq type="get"/> handler.
  unset_iq_set_handler(self, element, namespace)
Remove <iq type="set"/> handler.

Method Details

__init__(self, default_ns, extra_ns=(), sasl_mechanisms=(), tls_settings=None, keepalive=0)
(Constructor)

Initialize Stream object

:Parameters:
  - `default_ns`: stream's default namespace ("jabber:client" for
    client, "jabber:server" for server, etc.)
  - `extra_ns`: sequence of extra namespace URIs to be defined for
    the stream.
  - `sasl_mechanisms`: sequence of SASL mechanisms allowed for
    authentication. Currently "PLAIN" and "DIGEST-MD5" are supported.
  - `tls_settings`: settings for StartTLS -- `TLSSettings` instance.
  - `keepalive`: keepalive output interval. 0 to disable.
Overrides:
pyxmpp.streamtls.StreamTLSMixIn.__init__

Generated by Epydoc 2.1 on Wed May 31 22:36:58 2006 http://epydoc.sf.net