I need a C++ 64bit linux Fedora 7 version of the latest TraceRoute 1) properly handle all traceroute function calls and data within a well-defined and thought out "traceroute" C++ class with logically named methods and attributes. 2) use proper exception handling 3) record the results of each hop of each traceroute in a simple PostgreSQL database structure using well-defined ORM (object relational model) rather than explicit SQL 4) define and code unit tests for each method in each class 5) document each class, method and attribute using Doxygen
** C source code for TraceRoute 2.0.3 by Dmitry Butskoy is attached. Basically we are looking for a clever, well-defined, object-oriented C++ wrapper for this code **
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
* * *This broadcast message was sent to all bidders on Thursday Jun 7, 2007 7:38:25 PM:
Thanks for your interest.
I apologize for not noting our "multi-threaded" requirement earlier, but it completely slipped by mind:
This C++ wrapper class needs to be multi-threaded so that as we will have a very long list of IP addresses to run traceroute against, we don't our application to get held up by unreachable IP addresses. Other traceroutes threads should happily continue along and ignore any traceroutes threads trying to get to an unreachable IP address.
* * *This broadcast message was sent to all bidders on Friday Jun 8, 2007 10:45:28 AM:
(I have had questions regarding why this project seems to be "overkill", so I wanted to pass this on)
I probably should not have described it as a "wrapper"... rather it is the core of an application we are developing and the following should give you more insight into our requirements:
1) Multi-threaded: each traceroute must spawn it's own thread so that our application can send out thousands of traceroutes at a time without waiting for an unreachable IP address. The IP addresses to run a traceroute against will also be in a database, so ideally there would be functionality that would loop through a table of IP addresses running traceroute against each one a pre-defined number of times with each attempt running in it's own thread.
2) PostgreSQL: the interaction with the database needs to be done in the most efficient method possible ... most likely using the direct PostgreSQL C++ API. ODBC probably has more overhead and won't be as efficient, but I have not tested these myself. Caching a pre-defined number of traceroutes in memory and only pushing batches of traceroutes to the database at once as opposed to individual results will also improve performance.
3) Multi-Core/Processor: we need to make sure that all aspects of this solution takes advantage of the standard multi-processor, mutli-core servers today (Intel and/or AMD).
4) Because this solution will likely be integrated with other solutions and could end up being the core of a larger application, I have a lot of interest in this being done in C++ using well-thought out classes and methods so that it can be more easily maintained and enhanced in the future.
5) I would like this project to be used as a model for some of our junior developers so that is why there is also a focus on well-written, well-documented code that others can learn fr om. So, I would like to work with a senior developer who takes a lot of pride in clean and efficient code.
C++ 64bit linux Fedora 7 PostgreSQL Doxygen