Wootella backend almost handling commands

I've not coded as much on Wootella as I would have liked in the past couple of days. The reasons are mostly that I'm trying to make sure that what I do code, I do it in a way that won't trap me into re-doing large sections of work for some unforseen reason.

I'm getting to places where there is a lot of interaction between the subcomponents. For instance, each Wootella::Backend instance for Wootella will have a thread that handles all data on the connections for that backend. That thread will be responsible for reading all the data and calling the appropriate handler for the connection. Each Wootella::Backend will have a Wootella::ConnectionManager that handles things like flow-control, accounting for its connections, and routing for Gnutella traffic. So, the Wootella::ConnectionManager is going to need to have access to Wootella::Connection objects. A Wootella::Connection will handle just the flow-control for that specific connection as well as keep track of the data that has been read from its associated Wootella::Socket. It will also be responsible for freeing any resources needed by the connection after the connection is closed.

Needless to say, it is getting to be a bit messy. I have a design worked out that I hope will work. This is my first large networking application, first multithreaded application, first API designing experience, first GNU/Linux application and library, and first large application that won't be too riddled with bugs. So, I think my overall nervousness and unease is well-founded in the fact that there isn't much experience for me to draw upon.

Luckily, there are many wonderful applications that are Free Software from which I can get inspiration.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote>
  • Lines and paragraphs break automatically.

More information about formatting options