Hello all, my name is Billy Biset and I just got accepted to GSoC 2010.

I'll be doing the following:

1. Develop an API for simple asynchronous network server-client applications.
2. Implement the API using boost::asio (later on compiled as a lib.)
3. Port the current Wesnoth's network implementation to use it.

This mail is to start brainstorming about features contained in the
API, bear in mind that this wouldn't be an all-encompassing API/lib.
Potential users include developers wishing to code server/client
applications without all the hassle involving complex network
considerations.

When using the API/lib, dynamics should be pretty simple: users are in
charge of handling network events such as a received/sent message, a
new connection, a disconnect, etc... And they are told about these
events with an ID (unsigned int) for the corresponding client. One may
add all sorts of application-level protocols on top of it.

You can look at the current API prototype[0], the implementation
files[1] and a chat application example[2] that uses it.

Some features that will be included in the API are:
* Allow clients to connect through proxies.
* Configurable timeouts on network operations.

Some features I'm likely to include:
* Network stats: have total bytes sent/received, running average of
bytes/sec, etc...
* List (return) connected IDs by connection seniority.

...Just to list some.

What other features do you think are important for such an API?

I would also like input on miscellaneous stuff such as class and
method naming, I really dislike current class names in the API[0]
prototype.

I propose ANA (for Asynchronous Network API) as the API/lib name (yes
yes, cheesy geeky TWA[3]). Objections?

On the other hand, can anyone point me to a *good* CMake tutorial?
I've come across a couple of them that were not very good. Right now
I'm interested in adding a debug option, compiling as a lib and
installation (including stuff like locating and modifying syslog
configuration files).

After chatting in wesnoth-dev it has been decided that I'll develop
the API/lib directly on the Wesnoth repository.
Address? Do I have svn access?
Since the API/lib is not Wesnoth dependent, where would you like the
development files?
The following directory structure ok?:
ana/
    doc/
    api/
    asio_implementation/
    example_apps/

Any other recommendations/comments?

Ok... I look forward to working with all of you, regards,

Billy

[0] : http://code.google.com/p/async-net-api/source/browse/trunk/net_api.hpp
[1] : asio_*.?pp files in that repository.
[2] : Server: 
http://code.google.com/p/async-net-api/source/browse/trunk/server.cpp
       Client:
http://code.google.com/p/async-net-api/source/browse/trunk/client.cpp
[3] : Three Word Acronym.

_______________________________________________
Wesnoth-dev mailing list
Wesnoth-dev@gna.org
https://mail.gna.org/listinfo/wesnoth-dev

Reply via email to