[FreeNX-kNX] nxcl 2.x branch
George Wright
gwright at kde.org
Mon May 19 22:54:12 UTC 2008
Hi all,
As my exams are nearly here and over, I'm starting to think about a major
revision to the nxcl backend client library that's part of freenx-client.
Basically, the intention of nxcl 1.x (which is the current branch, except that
the version number is 0.9 at the moment...) was to get something working
first, and elegantly second. This is the branch which works for the time
being, and even though the API is horrendous, the API is frozen and should be
used for any major clients for the time being (krdc, qtnx...)
However, for a long time I've been particularly unsatisfied with the API and
general implementation for nxcl. It was hacked together very quickly in my
and Seb James' spare time, so it's not particularly elegant (or stable).
So I'm proposing that development starts on a 2.x branch of nxcl whose primary
goal is to clean up the codebase and give the code a long needed overhaul,
along with making sure everything is done in a cross platform manner right
from the start.
This is /not/ a rewrite. It's simply a complete restructuring of the code and
rewrite of the API. Dead code will be removed liberally and hopefully we'll
see a significant increase in the stability of the code as it'll actually be
fairly readable.
Now for the suggestions:
- Get rid of the configuration and session parameter structs. These are ugly
and don't have any place in this codebase. Replace them with configuration
classes with a well-defined API and configuration dictionaries.
- Overhaul the API so that redundant functions are thrown out, and consistent
naming is used.
- Improve the cross-platform capability of the client library as a whole.
Possibly through use of abstract base classes which are then implemented on
whatever system is being used.
- Remove the Cygwin dependency on Win32; this is the source of 99% of the
problems with nxcl on Windows.
- Clean up the notQt classes and rename them to be more in keeping with the
naming convention of the rest of the API. Possibly spawn these off into a
separate library.
- Clean up the callback system and define it well. Ensure callback information
is sent throughout the code.
- Get rid of the switch statement in nxsession.cpp which handles the
connection process. There must be a better way of doing this.
- Possibly remove the use of NXWin on Windows and replace with something like
Xming, to get rid of the Cygwin dependency.
- Remove dependency on nxssh and replace with openssh. Investigate solution
for Windows.
That's all I can think of for now. Does anyone have any suggestions/wishes
that they'd like to see appear in nxcl?
When I've got a bit more time I'll start draughting up a proposed API and send
it to this list as an RFC. If anyone has any suggestions for the API please
get in touch with me.
Regards,
George
--
George Wright, http://www.gwright.org.uk
KDE Developer - http://www.kde.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/freenx-knx/attachments/20080519/488c1900/attachment.sig>
More information about the FreeNX-kNX
mailing list