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