twisted.protocols.msn.NotificationClient.html   [plain text]


<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>twisted.protocols.msn.NotificationClient</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
</head>
<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">

<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="center">
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="twisted.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar" align="right" width="100%">
      <table border="0" cellpadding="0" cellspacing="0">
      <tr><th class="navbar" align="center">
        <p class="nomargin">
          <a class="navbar" target="_top" href="http://twistedmatrix.com/">Twisted&nbsp;1.3.0rc1</a>
      </p></th></tr></table>
    </th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <font size="-1"><b class="breadcrumbs">
        <a href="twisted.html">Package&nbsp;twisted</a> ::
        <a href="twisted.protocols.html">Package&nbsp;protocols</a> ::
        <a href="twisted.protocols.msn.html">Module&nbsp;msn</a> ::
        Class&nbsp;NotificationClient
      </b></font></br>
    </td>
    <td><table cellpadding="0" cellspacing="0">
      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="twisted.protocols.msn.NotificationClient.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
    </table></td>
</tr></table>

<!-- =========== START OF CLASS DESCRIPTION =========== -->
<h2 class="class">Class NotificationClient</h2>

<pre class="base-tree">
<a href="twisted.internet.protocol.BaseProtocol.html"><code>BaseProtocol</code></a> --+            
               |            
        <a href="twisted.internet.protocol.Protocol.html"><code>Protocol</code></a> --+        
                   |        
        <a href="twisted.protocols.basic.LineReceiver.html"><code>LineReceiver</code></a> --+    
                       |    
            <a href="twisted.protocols.msn.MSNEventBase.html"><code>MSNEventBase</code></a> --+
                           |
                          <b>NotificationClient</b>
</pre><br />

<hr/>

This class provides support for clients connecting to the notification 
server.
<hr/>


<!-- =========== START OF METHOD SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
  <th colspan="2">Method Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>currentID</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="_getState"></a><span class="summary-sig"><span class="summary-sig-name">_getState</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="_getStateData"></a><span class="summary-sig"><span class="summary-sig-name">_getStateData</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>key</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="_passportError"></a><span class="summary-sig"><span class="summary-sig-name">_passportError</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>failure</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="_passportLogin"></a><span class="summary-sig"><span class="summary-sig-name">_passportLogin</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>result</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="_remStateData"></a><span class="summary-sig"><span class="summary-sig-name">_remStateData</span>(<span class=summary-sig-arg>self</span>,
          <span class="summary-sig-vararg">*args</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="_setState"></a><span class="summary-sig"><span class="summary-sig-name">_setState</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>state</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="_setStateData"></a><span class="summary-sig"><span class="summary-sig-name">_setStateData</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>key</span>,
          <span class=summary-sig-arg>value</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#addContact" class="summary-sig-name"><code>addContact</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>listType</span>,
          <span class=summary-sig-arg>userHandle</span>,
          <span class=summary-sig-arg>groupID</span>)</span></code>
<br />
Used to add a contact to the desired list.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#addListGroup" class="summary-sig-name"><code>addListGroup</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>name</span>)</span></code>
<br />
Used to create a new list group.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#changeScreenName" class="summary-sig-name"><code>changeScreenName</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>newName</span>)</span></code>
<br />
Used to change your current screen name.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#changeStatus" class="summary-sig-name"><code>changeStatus</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>status</span>)</span></code>
<br />
Change my current status.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#checkMessage" class="summary-sig-name"><code>checkMessage</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>message</span>)</span></code>
<br />
hook used for detecting specific notification messages</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="connectionLost"></a><span class="summary-sig"><span class="summary-sig-name">connectionLost</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>reason</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#connectionMade" class="summary-sig-name"><code>connectionMade</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Called when a connection is made.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#contactOffline" class="summary-sig-name"><code>contactOffline</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>userHandle</span>)</span></code>
<br />
Called when a contact goes offline.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#contactStatusChanged" class="summary-sig-name"><code>contactStatusChanged</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>statusCode</span>,
          <span class=summary-sig-arg>userHandle</span>,
          <span class=summary-sig-arg>screenName</span>)</span></code>
<br />
Called when we're notified that a contact's status has changed.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#gotContactStatus" class="summary-sig-name"><code>gotContactStatus</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>statusCode</span>,
          <span class=summary-sig-arg>userHandle</span>,
          <span class=summary-sig-arg>screenName</span>)</span></code>
<br />
Called after loggin in when the server sends status of online 
contacts.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#gotPhoneNumber" class="summary-sig-name"><code>gotPhoneNumber</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>listVersion</span>,
          <span class=summary-sig-arg>userHandle</span>,
          <span class=summary-sig-arg>phoneType</span>,
          <span class=summary-sig-arg>number</span>)</span></code>
<br />
Called when the server sends us phone details about a specific user 
(for example after a user is added the server will send their status, 
phone details etc.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#gotProfile" class="summary-sig-name"><code>gotProfile</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>message</span>)</span></code>
<br />
Called after logging in when the server sends an initial message with 
MSN/passport specific profile information such as country, number of 
kids, etc.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#gotSwitchboardInvitation" class="summary-sig-name"><code>gotSwitchboardInvitation</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>sessionID</span>,
          <span class=summary-sig-arg>host</span>,
          <span class=summary-sig-arg>port</span>,
          <span class=summary-sig-arg>key</span>,
          <span class=summary-sig-arg>userHandle</span>,
          <span class=summary-sig-arg>screenName</span>)</span></code>
<br />
Called when we get an invitation to a switchboard server.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_ADD"></a><span class="summary-sig"><span class="summary-sig-name">handle_ADD</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_ADG"></a><span class="summary-sig"><span class="summary-sig-name">handle_ADG</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_BLP"></a><span class="summary-sig"><span class="summary-sig-name">handle_BLP</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_BPR"></a><span class="summary-sig"><span class="summary-sig-name">handle_BPR</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_CHG"></a><span class="summary-sig"><span class="summary-sig-name">handle_CHG</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_CHL"></a><span class="summary-sig"><span class="summary-sig-name">handle_CHL</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_CVR"></a><span class="summary-sig"><span class="summary-sig-name">handle_CVR</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_FLN"></a><span class="summary-sig"><span class="summary-sig-name">handle_FLN</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_GTC"></a><span class="summary-sig"><span class="summary-sig-name">handle_GTC</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_ILN"></a><span class="summary-sig"><span class="summary-sig-name">handle_ILN</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_LSG"></a><span class="summary-sig"><span class="summary-sig-name">handle_LSG</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_LST"></a><span class="summary-sig"><span class="summary-sig-name">handle_LST</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_NLN"></a><span class="summary-sig"><span class="summary-sig-name">handle_NLN</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_OUT"></a><span class="summary-sig"><span class="summary-sig-name">handle_OUT</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_PRP"></a><span class="summary-sig"><span class="summary-sig-name">handle_PRP</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_QRY"></a><span class="summary-sig"><span class="summary-sig-name">handle_QRY</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_REA"></a><span class="summary-sig"><span class="summary-sig-name">handle_REA</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_REG"></a><span class="summary-sig"><span class="summary-sig-name">handle_REG</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_REM"></a><span class="summary-sig"><span class="summary-sig-name">handle_REM</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_RMG"></a><span class="summary-sig"><span class="summary-sig-name">handle_RMG</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_RNG"></a><span class="summary-sig"><span class="summary-sig-name">handle_RNG</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_SYN"></a><span class="summary-sig"><span class="summary-sig-name">handle_SYN</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_USR"></a><span class="summary-sig"><span class="summary-sig-name">handle_USR</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_VER"></a><span class="summary-sig"><span class="summary-sig-name">handle_VER</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="handle_XFR"></a><span class="summary-sig"><span class="summary-sig-name">handle_XFR</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#listSynchronized" class="summary-sig-name"><code>listSynchronized</code></a>(<span class=summary-sig-arg>self</span>,
          <span class="summary-sig-vararg">*args</span>)</span></code>
<br />
Lists are now synchronized by default upon logging in, this method is 
called after the synchronization has finished and the factory now has the 
up-to-date contacts.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#loggedIn" class="summary-sig-name"><code>loggedIn</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>userHandle</span>,
          <span class=summary-sig-arg>screenName</span>,
          <span class=summary-sig-arg>verified</span>)</span></code>
<br />
Called when the client has logged in.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#loginFailure" class="summary-sig-name"><code>loginFailure</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>message</span>)</span></code>
<br />
Called when the client fails to login.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#logOut" class="summary-sig-name"><code>logOut</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Used to log out of the notification server.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#multipleLogin" class="summary-sig-name"><code>multipleLogin</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Called when the server says there has been another login under our 
account, the server should disconnect us right away.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#remContact" class="summary-sig-name"><code>remContact</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>listType</span>,
          <span class=summary-sig-arg>userHandle</span>,
          <span class=summary-sig-arg>groupID</span>)</span></code>
<br />
Used to remove a contact from the desired list.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#remListGroup" class="summary-sig-name"><code>remListGroup</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>groupID</span>)</span></code>
<br />
Used to remove a list group.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#renameListGroup" class="summary-sig-name"><code>renameListGroup</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>groupID</span>,
          <span class=summary-sig-arg>newName</span>)</span></code>
<br />
Used to rename an existing list group.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#requestSwitchboardServer" class="summary-sig-name"><code>requestSwitchboardServer</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Used to request a switchboard server to use for conversations.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#serverGoingDown" class="summary-sig-name"><code>serverGoingDown</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Called when the server has notified us that it is going down for 
maintenance.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#setPhoneDetails" class="summary-sig-name"><code>setPhoneDetails</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>phoneType</span>,
          <span class=summary-sig-arg>value</span>)</span></code>
<br />
Set/change my phone numbers stored on the server.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#setPrivacyMode" class="summary-sig-name"><code>setPrivacyMode</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>privLevel</span>)</span></code>
<br />
Set my privacy mode on the server.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#statusChanged" class="summary-sig-name"><code>statusChanged</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>statusCode</span>)</span></code>
<br />
Called when our status changes and it isn't in response to a client 
command.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#syncList" class="summary-sig-name"><code>syncList</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>version</span>)</span></code>
<br />
Used for keeping an up-to-date contact list.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#userAddedMe" class="summary-sig-name"><code>userAddedMe</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>userHandle</span>,
          <span class=summary-sig-arg>screenName</span>,
          <span class=summary-sig-arg>listVersion</span>)</span></code>
<br />
Called when a user adds me to their list.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.NotificationClient.html#userRemovedMe" class="summary-sig-name"><code>userRemovedMe</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>userHandle</span>,
          <span class=summary-sig-arg>listVersion</span>)</span></code>
<br />
Called when a user removes us from their contact list (they are no 
longer on our reverseContacts list.</td></tr>
<tr bgcolor="#e8f0f8" class="group">
  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from MSNEventBase</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.MSNEventBase.html#_createIDMapping" class="summary-sig-name"><code>_createIDMapping</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>data</span>)</span></code>
<br />
return a unique transaction ID that is mapped internally to a deferred 
..</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.MSNEventBase.html#_fireCallback" class="summary-sig-name"><code>_fireCallback</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>id</span>,
          <span class="summary-sig-vararg">*args</span>)</span></code>
<br />
Fire the callback for the given id if one exists and return 1, else 
return false</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.MSNEventBase.html#_nextTransactionID" class="summary-sig-name"><code>_nextTransactionID</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
return a usable transaction ID</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.MSNEventBase.html#gotBadLine" class="summary-sig-name"><code>gotBadLine</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>line</span>,
          <span class=summary-sig-arg>why</span>)</span></code>
<br />
called when a handler notifies me that this line is broken</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.MSNEventBase.html#gotError" class="summary-sig-name"><code>gotError</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>errorCode</span>)</span></code>
<br />
called when the server sends an error which is not in response to a 
sent command (ie.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.MSNEventBase.html#gotMessage" class="summary-sig-name"><code>gotMessage</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>message</span>)</span></code>
<br />
called when we receive a message - override in notification and 
switchboard clients</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.MSNEventBase.html#handle_MSG" class="summary-sig-name"><code>handle_MSG</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.MSNEventBase.html#handle_UNKNOWN" class="summary-sig-name"><code>handle_UNKNOWN</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>cmd</span>,
          <span class=summary-sig-arg>params</span>)</span></code>
<br />
implement me in subclasses if you want to handle unknown events</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.MSNEventBase.html#lineReceived" class="summary-sig-name"><code>lineReceived</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>line</span>)</span></code>
<br />
Override this for when each line is received.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.msn.MSNEventBase.html#rawDataReceived" class="summary-sig-name"><code>rawDataReceived</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>data</span>)</span></code>
<br />
Override this for when raw data is received.</td></tr>
<tr bgcolor="#e8f0f8" class="group">
  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from LineReceiver</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.basic.LineReceiver.html#clearLineBuffer" class="summary-sig-name"><code>clearLineBuffer</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Clear buffered data.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.basic.LineReceiver.html#dataReceived" class="summary-sig-name"><code>dataReceived</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>data</span>)</span></code>
<br />
Protocol.dataReceived.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.basic.LineReceiver.html#lineLengthExceeded" class="summary-sig-name"><code>lineLengthExceeded</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>line</span>)</span></code>
<br />
Called when the maximum line length has been reached.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.basic.LineReceiver.html#sendLine" class="summary-sig-name"><code>sendLine</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>line</span>)</span></code>
<br />
Sends a line to the other end of the connection.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.basic.LineReceiver.html#setLineMode" class="summary-sig-name"><code>setLineMode</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>extra</span>)</span></code>
<br />
Sets the line-mode of this receiver.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.protocols.basic.LineReceiver.html#setRawMode" class="summary-sig-name"><code>setRawMode</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Sets the raw mode of this receiver.</td></tr>
<tr bgcolor="#e8f0f8" class="group">
  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Protocol</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.internet.protocol.Protocol.html#connectionFailed" class="summary-sig-name"><code>connectionFailed</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
(Deprecated)</td></tr>
<tr bgcolor="#e8f0f8" class="group">
  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from BaseProtocol</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.internet.protocol.BaseProtocol.html#makeConnection" class="summary-sig-name"><code>makeConnection</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>transport</span>)</span></code>
<br />
Make a connection to a transport and a server.</td></tr>
</table><br />


<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
  <th colspan="2">Class Variable Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.protocols.msn.NotificationClient.html#factory"><code>factory</code></a></b> = <span title="None">None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
<tr bgcolor="#e8f0f8" class="group">
  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from LineReceiver</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.basic.LineReceiver.html#__buffer"><code>_LineReceiver__buffer</code></a></b> = <span title="''"><code><span class="variable-quote">'</span><span class="variable-quote">'</span>                               </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.basic.LineReceiver.html#delimiter"><code>delimiter</code></a></b>: The line-ending delimiter to use.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.protocols.basic.LineReceiver.html#line_mode"><code>line_mode</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.protocols.basic.LineReceiver.html#MAX_LENGTH"><code>MAX_LENGTH</code></a></b>: The maximum length of a line to allow (If a sent line is longer than 
this, the connection is dropped).</td></tr>
<tr bgcolor="#e8f0f8" class="group">
  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Protocol</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
<td><b><a href="twisted.internet.protocol.Protocol.html#__implements__"><code>__implements__</code></a></b> = <span title="(&lt;class twisted.internet.interfaces.IProtocol at 0x8278f0c&gt;,)"><code>(&lt;class&nbsp;twisted.internet.interfaces.IPr<span class="variable-ellipsis">...</span></code>
</span></td></tr>
<tr bgcolor="#e8f0f8" class="group">
  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from BaseProtocol</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.internet.protocol.BaseProtocol.html#connected"><code>connected</code></a></b> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.internet.protocol.BaseProtocol.html#transport"><code>transport</code></a></b> = <span title="None">None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
</table><br />


<!-- =========== START OF METHOD DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
  <th colspan="2">Method Details</th></tr>
</table>

<a name="addContact"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">addContact</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>listType</span>,
          <span class=sig-arg>userHandle</span>,
          <span class=sig-arg>groupID</span>=<span class=sig-default>0</span>)</span>
  </h3>
  Used to add a contact to the desired list. A default callback is 
  added to the returned Deferred which updates the contacts attribute of 
  the factory with the new contact information. If you are adding a 
  contact to the forward list and you want to associate this contact with 
  multiple groups then you will need to call this method for each group 
  you would like to add them to, changing the groupID parameter. The 
  default callback will take care of updating the group information on 
  the factory's contact list.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>listType</b></code> -
         (as defined by the *_LIST constants)
      <dd><code><b>userHandle</b></code> -
         the user handle (passport) of the contact that is being 
        added
      <dd><code><b>groupID</b></code> -
         the group ID for which to associate this contact with. 
        (default 0 - default group). Groups are only valid for 
        FORWARD_LIST.
      </dd>
    </dl>
    <dl><dt><b>Returns:</b></dt>
      <dd>
        A Deferred, the callback for which will be called when the 
        server has clarified that the user has been added. The callback 
        argument will be a tuple with 4 elements: the list type, the 
        contact's user handle, the new list version, and the group id (if 
        relevant, otherwise it will be None)
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="addListGroup"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">addListGroup</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>name</span>)</span>
  </h3>
  Used to create a new list group. A default callback is added to the 
  returned Deferred which updates the contacts attribute of the 
  factory.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>name</b></code> -
         The desired name of the new group.
      </dd>
    </dl>
    <dl><dt><b>Returns:</b></dt>
      <dd>
        A Deferred, the callbacck for which will be called when the 
        server clarifies that the new group has been created. The 
        callback argument will be a tuple with 3 elements: the new list 
        version (int), the new group name (str) and the new group ID 
        (int).
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="changeScreenName"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">changeScreenName</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>newName</span>)</span>
  </h3>
  Used to change your current screen name. A default callback is added 
  to the returned Deferred which updates the screenName attribute of the 
  factory and also updates the contact list version.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>newName</b></code> -
         the new screen name
      </dd>
    </dl>
    <dl><dt><b>Returns:</b></dt>
      <dd>
        A Deferred, the callback for which will be called when the 
        server sends an adequate reply. The callback argument will be a 
        tuple of 2 elements: the new list version and the new screen 
        name.
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="changeStatus"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">changeStatus</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>status</span>)</span>
  </h3>
  Change my current status. This method will add a default callback to 
  the returned Deferred which will update the status attribute of the 
  factory.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>status</b></code> -
         3-letter status code (as defined by the STATUS_* 
        constants)
      </dd>
    </dl>
    <dl><dt><b>Returns:</b></dt>
      <dd>
        A Deferred, the callback of which will be fired when the 
        server confirms the change of status. The callback argument will 
        be a tuple with the new status code as the only element.
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="checkMessage"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">checkMessage</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>message</span>)</span>
  </h3>
  hook used for detecting specific notification messages
  <dl><dt></dt><dd>
    <dl><dt><b>Overrides:</b></dt>
      <dd><a href="twisted.protocols.msn.MSNEventBase.html#checkMessage"><code>twisted.protocols.msn.MSNEventBase.checkMessage</code></a></dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="connectionMade"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">connectionMade</span>(<span class=sig-arg>self</span>)</span>
  </h3>
  <p>Called when a connection is made.</p>
  This may be considered the initializer of the protocol, because it 
  is called when the connection is completed. For clients, this is called 
  once the connection to the server has been established; for servers, 
  this is called after an accept() call stops blocking and a socket has 
  been received. If you need to send any greeting or initial message, do 
  it here.
  <dl><dt></dt><dd>
    <dl><dt><b>Overrides:</b></dt>
      <dd><a href="twisted.protocols.msn.MSNEventBase.html#connectionMade"><code>twisted.protocols.msn.MSNEventBase.connectionMade</code></a> <i>(inherited documentation)</i>
</dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="contactOffline"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">contactOffline</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>userHandle</span>)</span>
  </h3>
  Called when a contact goes offline. By default this method will 
  update the status attribute of the contact stored on the factory.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>userHandle</b></code> -
         the contact's user handle
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="contactStatusChanged"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">contactStatusChanged</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>statusCode</span>,
          <span class=sig-arg>userHandle</span>,
          <span class=sig-arg>screenName</span>)</span>
  </h3>
  Called when we're notified that a contact's status has changed. By 
  default we will update the status attribute of the contact stored on 
  the factory.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>statusCode</b></code> -
         3-letter status code
      <dd><code><b>userHandle</b></code> -
         the contact's user handle (passport)
      <dd><code><b>screenName</b></code> -
         the contact's screen name
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="gotContactStatus"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">gotContactStatus</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>statusCode</span>,
          <span class=sig-arg>userHandle</span>,
          <span class=sig-arg>screenName</span>)</span>
  </h3>
  Called after loggin in when the server sends status of online 
  contacts. By default we will update the status attribute of the contact 
  stored on the factory.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>statusCode</b></code> -
         3-letter status code
      <dd><code><b>userHandle</b></code> -
         the contact's user handle (passport)
      <dd><code><b>screenName</b></code> -
         the contact's screen name
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="gotPhoneNumber"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">gotPhoneNumber</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>listVersion</span>,
          <span class=sig-arg>userHandle</span>,
          <span class=sig-arg>phoneType</span>,
          <span class=sig-arg>number</span>)</span>
  </h3>
  Called when the server sends us phone details about a specific user 
  (for example after a user is added the server will send their status, 
  phone details etc. By default we will update the list version for the 
  factory's contact list and update the phone details for the specific 
  user.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>listVersion</b></code> -
         the new list version
      <dd><code><b>userHandle</b></code> -
         the contact's user handle (passport)
      <dd><code><b>phoneType</b></code> -
         the specific phoneType (*_PHONE constants or HAS_PAGER)
      <dd><code><b>number</b></code> -
         the value/phone number.
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="gotProfile"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">gotProfile</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>message</span>)</span>
  </h3>
  Called after logging in when the server sends an initial message 
  with MSN/passport specific profile information such as country, number 
  of kids, etc. Check the message headers for the specific values.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>message</b></code> -
         The profile message
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="gotSwitchboardInvitation"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">gotSwitchboardInvitation</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>sessionID</span>,
          <span class=sig-arg>host</span>,
          <span class=sig-arg>port</span>,
          <span class=sig-arg>key</span>,
          <span class=sig-arg>userHandle</span>,
          <span class=sig-arg>screenName</span>)</span>
  </h3>
  Called when we get an invitation to a switchboard server. This 
  happens when a user requests a chat session with us.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>sessionID</b></code> -
         session ID number, must be remembered for logging in
      <dd><code><b>host</b></code> -
         the hostname of the switchboard server
      <dd><code><b>port</b></code> -
         the port to connect to
      <dd><code><b>key</b></code> -
         used for authorization when connecting
      <dd><code><b>userHandle</b></code> -
         the user handle of the person who invited us
      <dd><code><b>screenName</b></code> -
         the screen name of the person who invited us
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="listSynchronized"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">listSynchronized</span>(<span class=sig-arg>self</span>,
          <span class="sig-vararg">*args</span>)</span>
  </h3>
  Lists are now synchronized by default upon logging in, this method 
  is called after the synchronization has finished and the factory now 
  has the up-to-date contacts.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="loggedIn"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">loggedIn</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>userHandle</span>,
          <span class=sig-arg>screenName</span>,
          <span class=sig-arg>verified</span>)</span>
  </h3>
  Called when the client has logged in. The default behaviour of this 
  method is to update the factory with our screenName and to sync the 
  contact list (factory.contacts). When this is complete 
  self.listSynchronized will be called.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>userHandle</b></code> -
         our userHandle
      <dd><code><b>screenName</b></code> -
         our screenName
      <dd><code><b>verified</b></code> -
         1 if our passport has been (verified), 0 if not. (i'm not sure 
        of the significace of this)
        <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        (type=int)</i>
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="loginFailure"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">loginFailure</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>message</span>)</span>
  </h3>
  Called when the client fails to login.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>message</b></code> -
         a message indicating the problem that was encountered
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="logOut"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">logOut</span>(<span class=sig-arg>self</span>)</span>
  </h3>
  Used to log out of the notification server. After running the method 
  the server is expected to close the connection.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="multipleLogin"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">multipleLogin</span>(<span class=sig-arg>self</span>)</span>
  </h3>
  Called when the server says there has been another login under our 
  account, the server should disconnect us right away.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="remContact"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">remContact</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>listType</span>,
          <span class=sig-arg>userHandle</span>,
          <span class=sig-arg>groupID</span>=<span class=sig-default>0</span>)</span>
  </h3>
  Used to remove a contact from the desired list. A default callback 
  is added to the returned deferred which updates the contacts attribute 
  of the factory to reflect the new contact information. If you are 
  removing from the forward list then you will need to supply a groupID, 
  if the contact is in more than one group then they will only be removed 
  from this group and not the entire forward list, but if this is their 
  only group they will be removed from the whole list.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>listType</b></code> -
         (as defined by the *_LIST constants)
      <dd><code><b>userHandle</b></code> -
         the user handle (passport) of the contact being removed
      <dd><code><b>groupID</b></code> -
         the ID of the group to which this contact belongs (only 
        relevant for FORWARD_LIST, default is 0)
      </dd>
    </dl>
    <dl><dt><b>Returns:</b></dt>
      <dd>
        A Deferred, the callback for which will be called when the 
        server has clarified that the user has been removed. The callback 
        argument will be a tuple of 4 elements: the list type, the 
        contact's user handle, the new list version, and the group id (if 
        relevant, otherwise it will be None)
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="remListGroup"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">remListGroup</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>groupID</span>)</span>
  </h3>
  Used to remove a list group. A default callback is added to the 
  returned Deferred which updates the contacts attribute of the 
  factory.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>groupID</b></code> -
         the ID of the desired group to be removed.
      </dd>
    </dl>
    <dl><dt><b>Returns:</b></dt>
      <dd>
        A Deferred, the callback for which will be called when the 
        server clarifies the deletion of the group. The callback argument 
        will be a tuple with 2 elements: the new list version (int) and 
        the group ID (int) of the removed group.
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="renameListGroup"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">renameListGroup</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>groupID</span>,
          <span class=sig-arg>newName</span>)</span>
  </h3>
  Used to rename an existing list group. A default callback is added 
  to the returned Deferred which updates the contacts attribute of the 
  factory.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>groupID</b></code> -
         the ID of the desired group to rename.
      <dd><code><b>newName</b></code> -
         the desired new name for the group.
      </dd>
    </dl>
    <dl><dt><b>Returns:</b></dt>
      <dd>
        A Deferred, the callback for which will be called when the 
        server clarifies the renaming. The callback argument will be a 
        tuple of 3 elements, the new list version (int), the group id 
        (int) and the new group name (str).
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="requestSwitchboardServer"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">requestSwitchboardServer</span>(<span class=sig-arg>self</span>)</span>
  </h3>
  Used to request a switchboard server to use for conversations.
  <dl><dt></dt><dd>
    <dl><dt><b>Returns:</b></dt>
      <dd>
        A Deferred, the callback for which will be called when the 
        server responds with the switchboard information. The callback 
        argument will be a tuple with 3 elements: the host of the 
        switchboard server, the port and a key used for logging in.
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="serverGoingDown"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">serverGoingDown</span>(<span class=sig-arg>self</span>)</span>
  </h3>
  Called when the server has notified us that it is going down for 
  maintenance.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="setPhoneDetails"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">setPhoneDetails</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>phoneType</span>,
          <span class=sig-arg>value</span>)</span>
  </h3>
  Set/change my phone numbers stored on the server.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>phoneType</b></code> -
         phoneType can be one of the following constants - HOME_PHONE, 
        WORK_PHONE, MOBILE_PHONE, HAS_PAGER. These are pretty 
        self-explanatory, except maybe HAS_PAGER which refers to whether 
        or not you have a pager.
      <dd><code><b>value</b></code> -
         for all of the *_PHONE constants the value is a phone number 
        (str), for HAS_PAGER accepted values are 'Y' (for yes) and 'N' 
        (for no).
      </dd>
    </dl>
    <dl><dt><b>Returns:</b></dt>
      <dd>
        A Deferred, the callback for which will be fired when the 
        server confirms the change has been made. The callback argument 
        will be a tuple with 2 elements, the first being the new list 
        version (int) and the second being the new phone number value 
        (str).
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="setPrivacyMode"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">setPrivacyMode</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>privLevel</span>)</span>
  </h3>
  <p>Set my privacy mode on the server.</p>
  <b>Note</b>: This only keeps the current privacy setting on the 
  server for later retrieval, it does not effect the way the server works 
  at all.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>privLevel</b></code> -
         This parameter can be true, in which case the server will keep 
        the state as 'al' which the official client interprets as -&gt; 
        allow messages from only users on the allow list. Alternatively 
        it can be false, in which case the server will keep the state as 
        'bl' which the official client interprets as -&gt; allow messages 
        from all users except those on the block list.
      </dd>
    </dl>
    <dl><dt><b>Returns:</b></dt>
      <dd>
        A Deferred, the callback of which will be fired when the 
        server replies with the new privacy setting. The callback 
        argument will be a tuple, the 2 elements of which being the list 
        version and either 'al' or 'bl' (the new privacy setting).
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="statusChanged"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">statusChanged</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>statusCode</span>)</span>
  </h3>
  Called when our status changes and it isn't in response to a client 
  command. By default we will update the status attribute of the 
  factory.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>statusCode</b></code> -
         3-letter status code
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="syncList"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">syncList</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>version</span>)</span>
  </h3>
  <p>Used for keeping an up-to-date contact list. A callback is added to 
  the returned Deferred that updates the contact list on the factory and 
  also sets my state to STATUS_ONLINE.</p>
  <b>Note</b>: This is called automatically upon signing in using the 
  version attribute of factory.contacts, so you may want to persist this 
  object accordingly. Because of this there is no real need to ever call 
  this method directly.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>version</b></code> -
         The current known list version
      </dd>
    </dl>
    <dl><dt><b>Returns:</b></dt>
      <dd>
        A Deferred, the callback of which will be fired when the 
        server sends an adequate reply. The callback argument will be a 
        tuple with two elements, the new list (MSNContactList) and your 
        current state (a dictionary). If the version you sent _was_ the 
        latest list version, both elements will be None. To just request 
        the list send a version of 0.
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="userAddedMe"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">userAddedMe</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>userHandle</span>,
          <span class=sig-arg>screenName</span>,
          <span class=sig-arg>listVersion</span>)</span>
  </h3>
  Called when a user adds me to their list. (ie. they have been added 
  to the reverse list. By default this method will update the version of 
  the factory's contact list -- that is, if the contact already exists it 
  will update the associated lists attribute, otherwise it will create a 
  new MSNContact object and store it.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>userHandle</b></code> -
         the userHandle of the user
      <dd><code><b>screenName</b></code> -
         the screen name of the user
      <dd><code><b>listVersion</b></code> -
         the new list version
        <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        (type=int)</i>
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="userRemovedMe"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">userRemovedMe</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>userHandle</span>,
          <span class=sig-arg>listVersion</span>)</span>
  </h3>
  Called when a user removes us from their contact list (they are no 
  longer on our reverseContacts list. By default this method will update 
  the version of the factory's contact list -- that is, the user will be 
  removed from the reverse list and if they are no longer part of any 
  lists they will be removed from the contact list entirely.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>userHandle</b></code> -
         the contact's user handle (passport)
      <dd><code><b>listVersion</b></code> -
         the new list version
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>
<br />


<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
  <th colspan="2">Class Variable Details</th></tr>
</table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="factory"></a>
<h3>factory</h3>
<dl>
  <dt></dt>
  <dd>
    <dl>
      <dt><b>Type:</b></dt>
      <dd>
          <code>NoneType</code>

      </dd>
<span title="None">      <dt><b>Value:</b></dt>
      <dd><table><tr><td>
<pre class="variable">
None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
        </td></tr></table></dd>
</span>    </dl>
  </dd>
</dl></td></tr></table>
<br />


<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="center">
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="twisted.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar" align="right" width="100%">
      <table border="0" cellpadding="0" cellspacing="0">
      <tr><th class="navbar" align="center">
        <p class="nomargin">
          <a class="navbar" target="_top" href="http://twistedmatrix.com/">Twisted&nbsp;1.3.0rc1</a>
      </p></th></tr></table>
    </th>
  </tr>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
    <td align="left"><font size="-2">Generated by Epydoc 2.0 on Sat May 15 20:07:54 2004</font></td>
    <td align="right"><a href="http://epydoc.sourceforge.net"
                      ><font size="-2">http://epydoc.sf.net</font></a></td>
  </tr>
</table>
</body>
</html>