taskSavannah Administration - Tasks: task #3970, Submission of TLV communication...

 
 

task #3970: Submission of TLV communication with automatic code generation

Submitter:  Sanjay Jaiman <sjaiman>
Submitted:  Mon 04 Apr 2005 09:43:25 PM UTC
   
 
Should Start On:  Mon 04 Apr 2005 12:00:00 AM UTC Should be Finished on:  Thu 14 Apr 2005 12:00:00 AM UTC
Category:  Project Approval Priority:  * 5 - Normal
Status:  Done Privacy:  Public
Assigned to:  Beuc Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Tue 12 Apr 2005 08:40:12 PM UTC, comment #6: 

Hi,

I have approved your project.  You will receive an automated e-mail containing detailed information about the approval.

I also forwarded your request to be part of the GNU project.

Sylvain Beucler <Beuc>
Tue 12 Apr 2005 02:28:47 PM UTC, comment #5: 

Oops, I missed adding copyright notice to the IDL file.  I did that - that actually required some code changes (which I have made).  Here is the latest tarball. Thanks

Sanjay Jaiman <sjaiman>
Tue 12 Apr 2005 02:19:20 PM UTC, comment #4: 

Hi,

I have taken care of all the issues you have mentioned.  Thanks.

Sanjay

Sanjay Jaiman <sjaiman>
Mon 11 Apr 2005 09:46:37 PM UTC, comment #3: 

Hi,

The license does not contain the preambule, nor the last section, titled "How to Apply These Terms to Your New Programs".

Please use a complete verbatim copy of the license, which may be found at http://www.gnu.org/licenses/gpl.txt, http://www.gnu.org/licenses/lgpl.txt or http://www.gnu.org/licenses/fdl.txt.

The license must be copied verbatim and in its entirety.


Can you tell me more about ./client/clientMain.cpp? The files says you do not own the copyright, and "all rights reserved". So apparently this file is non-free.


Last, please also add copyright&license notices to the .idl file :)


If you are willing to make the changes mentioned above, please provide us with an updated tarball of your project.  Upon review, we will reconsider your project for inclusion in Savannah.

Sylvain Beucler <Beuc>
Mon 11 Apr 2005 04:40:58 PM UTC, comment #2: 


Hi Sylvain,

I tried to upload the code to Savannah so you could
review it.  But since my project wasn't approved yet,
I could'nt do that.   Good thing that you accept code
by email.  I am sending the gzipped file along with
this mail.

Please note that the generated code that gets
generated also has the GNU disclaimer.

The code is functional and I think I have removed most
of the bugs.  Thanks in advance for reviewing the
code.

Sanjay

Sanjay Jaiman <sjaiman>
Sat 09 Apr 2005 08:54:11 PM UTC, comment #1: 

Hi,

I'm evaluating the project you submitted for approval in Savannah.

Note that "Linux" is just a kernel of a more complex system that we like to refer to as GNU/Linux, to emphasize the ideals of the Free Software movement.

For more information, see http://www.gnu.org/gnu/linux-and-gnu.html.


Please include a (perhaps temporary) URL pointing to the source code.  The description you gave when registering will not be read by the general public.  If you are still concerned with privacy, however, you can forward the code to me by email.

We wish to review your source code, even if it is not functional, to catch potential legal issues early.

For example, to release your program properly under the GPL you must include a copyright notice and permission-to-copy statements at the beginning of every file of source code.  This is explained in http://www.gnu.org/licenses/gpl-howto.html.  Our review would help catch potential omissions such as these.


Sylvain Beucler <Beuc>
Mon 04 Apr 2005 09:43:25 PM UTC, original submission:  


Site Admin. Approval/Edition URL:
 <https://savannah.gnu.org/admin/groupedit.php?group_id=7481>


###### ORIGINAL SUBMISSION DETAILS ######

System Group Name:
-----------------
  tlvcomm


Full Name:
----------
  TLV communication with automatic code generation


Type:
-----
  GNU


License:
--------
  GNU General Public License V2 or later


Other License:
--------------



Description:
------------
  What does this package do
=========================
This package makes development of a client / server program(s) using TLVs (type length value) easier by using an IDL (interface definition language).  High level data structures and functions are defined in the IDL and a code generator generates C++ code which is linked in both the client and server side providing both sides access to all the funtions / data structures defined in the IDL.

Brief description of the architecture
=====================================
This library to uses non-blocking TCP sockets for the client-server programs.  All remote function calls are non-blocking so a callback mechanism is used for remote function invocation as well as for completion.  Using this architecture, the user can avoid multiple threads which would be needed for blocking function calls.  The engine uses state based remote function invocation.

To develop a high-performance client server interface, the following design considerations are maintained -
       - The interface between the client and the server has to be non-blocking.  To aid this feature,the following are the issues that need to be addressed.
       - Handle incomplete writes to the socket by implementing buffering per socket / connection.
       - Handle partial / excess reads of TLV messages coming on the socket.
       - Develop a infrastructure to handle multiple connections and multiplex between them.
       - When a complete message has ben retreived on a socket, give control back to the user.

This library addresses all of the above issues.

There are some tasks that fall under the "user responsibility" category.  These tasks are are not implemeted in the library because typically every user does things a little differently.  Besides, these
tasks are so simple that wrapping them in a library function makes little sense.  These tasks are as follows -
  - Creating a non-blocking socket (sample code is provided).
  - Calling the system calls "bind", "listen", "accept", "select", "connect".  These calls are not encapsulated in the library because typically, if they are "wrapped" in a library, they shield the user from programming the socket to his/her unique requirement.  The library does give example code which could be used as a starting point for the development of client /server programs. (sample code provided)





Other Software Required:
------------------------
  Linux system with g++


Other Comments:
---------------


#########################################

Sanjay Jaiman <sjaiman>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #3592:  tlvcomm.tgz added by sjaiman (46KiB - application/x-gzip)
file #3591:  tlvcomm.tgz added by sjaiman (38KiB - application/x-gzip)
file #3589:  tlvcomm.tgz added by sjaiman (40KiB - application/x-gzip)

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

Only logged-in users can vote.

 

Follow 6 latest changes.

Date Changed by Updated Field Previous Value => Replaced by
2005-04-12 Beuc StatusNone Done
    Open/ClosedOpen Closed
2005-04-12 sjaiman Attached File- Added tlvcomm.tgz, #133
2005-04-12 sjaiman Attached File- Added tlvcomm.tgz, #132
2005-04-11 sjaiman Attached File- Added tlvcomm.tgz, #131
2005-04-09 Beuc Assigned toNone Beuc

Back to the top

Powered by Savane 3.13-caa5.
Corresponding source code