TODO.txt
author Chris Jones <christian.jones@sri.com>
Sat, 28 Sep 2013 13:02:17 -0600
changeset 153 bbd4166df95d
parent 152 69c5b4382e39
child 154 cd9e0ddbd5e9
permissions -rw-r--r--
Simplified the API: There's only one constructor, and it does everything necessary to initiate the stream. StartSession() and Roster.Update() have both been eliminated.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
150
fa7f6ff10c67 Code reorder and doc cleanup.
Chris Jones <christian.jones@sri.com>
parents: 146
diff changeset
     1
Review all the *Client receiver methods in layer3.go. They should
fa7f6ff10c67 Code reorder and doc cleanup.
Chris Jones <christian.jones@sri.com>
parents: 146
diff changeset
     2
probably either all be receivers, or none.
119
712aa5780660 Documentation cleanup.
Chris Jones <christian.jones@sri.com>
parents:
diff changeset
     3
712aa5780660 Documentation cleanup.
Chris Jones <christian.jones@sri.com>
parents:
diff changeset
     4
Maybe put auth-related stuff into its own structure inside Client,
712aa5780660 Documentation cleanup.
Chris Jones <christian.jones@sri.com>
parents:
diff changeset
     5
instead of at Client's top level.
712aa5780660 Documentation cleanup.
Chris Jones <christian.jones@sri.com>
parents:
diff changeset
     6
712aa5780660 Documentation cleanup.
Chris Jones <christian.jones@sri.com>
parents:
diff changeset
     7
Add a way to broadcast status information as negotiation happens or
712aa5780660 Documentation cleanup.
Chris Jones <christian.jones@sri.com>
parents:
diff changeset
     8
disconnects occur. Possibly a new type of object that can be sent on
712aa5780660 Documentation cleanup.
Chris Jones <christian.jones@sri.com>
parents:
diff changeset
     9
Recv along with stanzas. Or use sync.Cond to protect a state
712aa5780660 Documentation cleanup.
Chris Jones <christian.jones@sri.com>
parents:
diff changeset
    10
variable.
712aa5780660 Documentation cleanup.
Chris Jones <christian.jones@sri.com>
parents:
diff changeset
    11
152
69c5b4382e39 Updated to-do list.
Chris Jones <christian.jones@sri.com>
parents: 150
diff changeset
    12
Asynchronously updating Client.Features is not thread safe. Use a
69c5b4382e39 Updated to-do list.
Chris Jones <christian.jones@sri.com>
parents: 150
diff changeset
    13
public function GetFeatures() or similar. Same for setting the JID in
69c5b4382e39 Updated to-do list.
Chris Jones <christian.jones@sri.com>
parents: 150
diff changeset
    14
bind()?
119
712aa5780660 Documentation cleanup.
Chris Jones <christian.jones@sri.com>
parents:
diff changeset
    15
152
69c5b4382e39 Updated to-do list.
Chris Jones <christian.jones@sri.com>
parents: 150
diff changeset
    16
NewClient should be synchronous, so it can update Features and JID and
69c5b4382e39 Updated to-do list.
Chris Jones <christian.jones@sri.com>
parents: 150
diff changeset
    17
leave those as values rather than functions.
119
712aa5780660 Documentation cleanup.
Chris Jones <christian.jones@sri.com>
parents:
diff changeset
    18
712aa5780660 Documentation cleanup.
Chris Jones <christian.jones@sri.com>
parents:
diff changeset
    19
Add a Reconnect() function.
712aa5780660 Documentation cleanup.
Chris Jones <christian.jones@sri.com>
parents:
diff changeset
    20
712aa5780660 Documentation cleanup.
Chris Jones <christian.jones@sri.com>
parents:
diff changeset
    21
Put roster and bind into separate packages, if possible.
712aa5780660 Documentation cleanup.
Chris Jones <christian.jones@sri.com>
parents:
diff changeset
    22
712aa5780660 Documentation cleanup.
Chris Jones <christian.jones@sri.com>
parents:
diff changeset
    23
Eliminate as many uses of Generic as possible.
152
69c5b4382e39 Updated to-do list.
Chris Jones <christian.jones@sri.com>
parents: 150
diff changeset
    24
69c5b4382e39 Updated to-do list.
Chris Jones <christian.jones@sri.com>
parents: 150
diff changeset
    25
Callback doesn't need to return bool. It shouldn't affect what's given
69c5b4382e39 Updated to-do list.
Chris Jones <christian.jones@sri.com>
parents: 150
diff changeset
    26
to the client.
153
bbd4166df95d Simplified the API: There's only one constructor, and it does everything necessary to initiate the stream. StartSession() and Roster.Update() have both been eliminated.
Chris Jones <christian.jones@sri.com>
parents: 152
diff changeset
    27
bbd4166df95d Simplified the API: There's only one constructor, and it does everything necessary to initiate the stream. StartSession() and Roster.Update() have both been eliminated.
Chris Jones <christian.jones@sri.com>
parents: 152
diff changeset
    28
Don't keep the password in memory once we're done with it.
bbd4166df95d Simplified the API: There's only one constructor, and it does everything necessary to initiate the stream. StartSession() and Roster.Update() have both been eliminated.
Chris Jones <christian.jones@sri.com>
parents: 152
diff changeset
    29
bbd4166df95d Simplified the API: There's only one constructor, and it does everything necessary to initiate the stream. StartSession() and Roster.Update() have both been eliminated.
Chris Jones <christian.jones@sri.com>
parents: 152
diff changeset
    30
Rename extension.StanzaHandlers to something like StanzaTypes.
bbd4166df95d Simplified the API: There's only one constructor, and it does everything necessary to initiate the stream. StartSession() and Roster.Update() have both been eliminated.
Chris Jones <christian.jones@sri.com>
parents: 152
diff changeset
    31
bbd4166df95d Simplified the API: There's only one constructor, and it does everything necessary to initiate the stream. StartSession() and Roster.Update() have both been eliminated.
Chris Jones <christian.jones@sri.com>
parents: 152
diff changeset
    32
Think about how to gracefully shutdown. Probably have a Close()
bbd4166df95d Simplified the API: There's only one constructor, and it does everything necessary to initiate the stream. StartSession() and Roster.Update() have both been eliminated.
Chris Jones <christian.jones@sri.com>
parents: 152
diff changeset
    33
function.