GSoC/TP Weekly Report (May 26 – June 1)

This Week:

The administration protocol extension is now specified in the XML format using the protocol DTD. It uses some of the existing basic frames and most of the new frames are closely related to the Order family from the main protocol. This may not be the “final” specification, but at this point I think the only likely changes are additions.

Logging to administration clients is now fully working in tpserver-cpp. To resolve my previous conundrum, I ended up passing a reference to the AdminConnection object to AdminLogger via a setConnection function, similar to the relationship between PlayerConnection and PlayerAgent. Logging now uses an asynchronous message type similar to AsyncTimeRemaining.

Awaiting updates to libtpproto-cpp before starting the C++ CLI administration client, I’ve been evolving a little test client module based on libtpproto-py in order to send and receive administration frames and make sure everything is in order on the server side. So far, I’ve succesfully used it to test, as previously mentioned, everything in the connection up to “logged in” status, and more recently, remote logging.

There is now basic functionality for processing all the administration frame types after logging in on the server side, although at present none of it actually does anything other than some sanity checking.

All told, I’d consider this first official week a fairly productive one, considering I was completely offline for four days of it. Since I started with this project I’ve had endless distractions from the various other items on my plate; happily, I’ve still managed to keep pace with my milestone goals. I’m looking forward to putting in a lot more solid time now that most of that is behind me.

Next Week:

The main goal for next week is to develop something analogous to OrderManager for commands, although it probably doesn’t need to be so complex. This object will centrally store the command set and descriptions, and provide functions for replying to request frames. At present, I’m thinking the same object will also be used to process incoming command frames, check validity, execute the commands, and form the command result frames.

Along with this, I’ll keep expanding on my test client module to prod server-side functionality as it develops, and eventually some of it may end up in the tpclient-pywx single-player wizard and other Python-based stuff.

Jun 1st, 2008
Tags: ,
Comments are closed.