Contributions to SocketCC
Ownership of SocketCC Class Library remains with myself and
Monash University, however, given the free usage license
you are free to modify and use SocketCC in whatever manner you
wish. If you wish your changes to reach a wider audience however, it must be done
through myself, you are not authorised to publish any modifications to the
SocketCC library.
Any modifications that I make to SocketCC will be based on my
particular need for these modifications, however you may have different needs than
I do :-). In this case, the procedure would involve submitting the modifications
to me for review before they get merged into the SocketCC source tree.
This page describes the procedures for contributing to the SocketCC
project, it is broken down into 3 sections:
-
Detailed procedure for contributing to SocketCC
-
List of known bugs and progress in fixing them
-
List of desired modifications to SocketCC and people who have
volunteered to work on this modification
Detailed procedure for contributing to SocketCC
There are many different ways in which you can contribute to SocketCC,
and these are:
-
Simply submit your modified source code to
me along with a description of
what you have done. These modifications will be reviewed and if deemed useful,
added to the source tree. This approach is not recommended as we could end up with
many people submitting essentially the same changes.
-
Send me an eMail with a
proposal of a modification to make to SocketCC and whether or
not you will be willing to work on it. This proposed extension will be added
to the list of desired modifications to the library. Furthermore, forward a
copy of the source code once the modifications are complete for review.
-
Choose to work on an item from the list of desired modifications and send
me an eMail to let me know
so that I can add your name to the list of people working on the project. Just
because somebody else is working on a proposed change, it doesn't mean you can't
also submit your own ideas. The main purpose of the list is to ensure that not
too many people are inventing the same coloured wheel.
In all cases, modifications must be eMailed
to me for review - they will then be incorporated into the next release of the
SocketCC library.
Known bugs in SocketCC
At present, there are no known bugs in either PThreadCC or
SocketCC.
Desired modifications to SocketCC
This section lists the features I would like to see in SocketCC along
with the names of any volunteers who plan to be working on them:
Obtaining the Local IP Address
There is no in-built functionality within the SocketCC library to
obtain the IP Address of the local machine. This is obviously a desirable feature,
however I am unable to come up with a nice interface to present to the programmer
for this. Also this requires a fair bit of effort to ensure cross-platform
compatibility. If anybody has any ideas as to a nice way to integrate this feature
into SocketCC, please let me know about it.
Support for Multicast Sockets
Not even sure if this is actually required or not. Having no need for multicast
support I haven't investigated this yet. However it would be nice to be able to
support multicasting within SocketCC - if anybody wishes to tackle
this project, let me know.
Conditional Compilation for Platforms not Supporting IPv6
At the moment SocketCC has only been compiled on limited platforms,
and most of these platforms support IPv6. The only exception to this is one Apple
iMac running MacOS X Original Release. This compiled and ran OK, but the library may
require changes to function on IPv4 only systems. I would imagine this can be done by:
-
Creating a new exception type indicating that IPv6 support is not enabled.
-
Conditional statements for compilation, when IPv6 is turned off, all code that
processes IPv6 Sockets is changed to return the new exception.
As we work on exclusively IPv4/IPv6 enabled platforms, this is not a major concern
for us - if anybody wishes to tackle this project, let me know.
Microsoft Windows Support
SocketCC currently has no support for any Windows platforms, this
could be more difficult due to different header files/function prototypes for the
Sockets API under Windows. If anybody want to go to the effort, let me know.
Better Support of select() and poll() programming
The existing implementation of SocketCC has good support for
multi-threaded network applications and through the use of blocking and non-blocking
sockets. Now it also supports programming through the use of the select()
function. However, there is currently no support for use of the newer poll()
function. If you would like to improve the support of poll() by the
SocketCC library, let me know.
Documentation of the Project
Finally, I am aware of how little documentation (other than that provided in the
source code) there is. I am not a good documentation writer. If anybody wishes to
put together a good and detailed set of documents in using the SocketCC
library, let me know.
|