Commit Graph

12 Commits (b64911e732f33cb542d25191042494341b01b291)

Author SHA1 Message Date
Giel van Schijndel b64911e732 * For reading use a context managed "readable" as well
- However, unlike "writeable" don't return a StringIO object for strings

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7216 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-28 00:46:45 +02:00
Giel van Schijndel eebb624276 * Change the lobby IRC bot to use the same code as the lobby server for protocol handling and game representation
* Move the "list" function (to retrieve the lobby's list of games) to the Protocol class

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7211 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 22:46:38 +02:00
Giel van Schijndel 32417e1bb9 * Allow Protocol's encode and decode functions to work directly on * sockets and file objects (in addition to strings)
- This removes the requirement for the socket handler to be aware of the size of a single game
  - I.e. this allows variable sized games without another API change
 * Read and write Protocol data directly from and to the sockets, decoding and encoding on the fly

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7209 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:41 +02:00
Giel van Schijndel d1d787c8d6 * Make the game server's port version dependant
* Move checking of game's vitality to from the Game class to the Protocol class
  - Do this because checking of games is inherently protcol dependant

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7200 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:40 +02:00
Giel van Schijndel 4b74fd0cc5 Don't deal with requestHandler stuff in the Game class
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7199 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:40 +02:00
Giel van Schijndel 57aefa7a85 * Use unpack_from, instead of unpack, if multiple items are contained in the same buffer
* Use xrange() instead of range() when looping over its items
  - xrange() is faster and more lightweight as iterable

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7198 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:40 +02:00
Giel van Schijndel 227ecdb1f8 Lobby protocol: Workaround the fact that the 2.0.x versions don't perform endian swapping
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7197 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:40 +02:00
Giel van Schijndel 322c10e7a4 * Use struct.Struct objects instead of free functions from the "struct" module to perform encoding and decoding
* Perform version range comparisons like this: lowest_version <= version < one_higher_than_largest_version

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7196 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:39 +02:00
Giel van Schijndel 9ff472fad5 Fix a syntax and semantical error:
* Use the % operator for formatting strings
 * Use struct.unpack for decoding a struct (instead of struct.pack)

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7195 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:39 +02:00
Giel van Schijndel 8bfd2acef1 Use a single function to perform the encoding as a C string
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7194 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:39 +02:00
Giel van Schijndel cffa0b65af Make BinaryProtocol more flexible to allow it to work with 2.0+ as well as the 2.2 lobby protocol (depending on what parameter was used during construction)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7128 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 16:03:19 +02:00
Giel van Schijndel 7f5bc28bd0 Move the Game, Protocol classes to files of their own (to allow them to be reused by the IRC bot, instead of duplicating code)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7127 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 16:03:19 +02:00