12-July-2016
Version
 
 
WHAT IS IT ?
 

The B++ Library is a thread-safe C++/Java library that attempts to be as portable and reusable as possible. Hence, it provides a set of software components based on an object-oriented design that are independent of the compiler and the operating system. This library is fully documented, the binary code and the source code are free of charge to use, access or modify under .

This library is developed mainly for operations research and simulation purposes, but is built upon basic portable software components (types conversion, files management, threads, serialization...), and upon assistance tools for the development such as debugging controls and reports (tracing of the executed methods, control of the memory allocation and deallocation, control of the files opening and closing) and a semi-automatic generation of the documentation (the section named is its result).

More recently, the library integrates a mechanism we call that allows an easy use of Java classes directly in C++. It is based on the Java Native Interface (JNI). With each Java class is associated a C++ class that maps its attributes and methods, and has the equivalent inheritance. The purpose of such a facility is to provide a fully portable graphic environment for C++ applications. The only requirement is for the system to have a Java Virtual Machine (JVM).

These points make the B++ Library a useful environment for the development of any C++ program. Moreover, its integration into an existing C++ program is quite easy (even if the compilation step is a bit tricky due to both C++ and Java code interacting in the library), which allows anybody to develop and distribute software components that are portable and reusable in any C++ environment.

Here are some Web sites where you can find an appropriate C++ compiler.

A Java compiler with JNI is also required for the parts written in Java. You can get one in the site of Sun Microsystems.

 
DOWNLOADING
 

Download here the different parts of the library. Two versions exist because operating systems have not the same ASCII end of line sequence. The ASCII 10 version is for Unix operating systems. The ASCII 13-10 version is for Microsoft operating systems. For the other operating systems, we do not know the ASCII end of line sequence, so try both versions. One of them should work.

 
ASCII 13-10 Version
 

  • Contains the documentation of the B++ Library.


  • Contains everything to compile the B++ Library: the source files and some makefiles.


  • Contains test results of the B++ Library for the compilers we have tested. It is advised to get them if your compiler is not one of those we have tested. Hence you can compare your results with ours.

 
ASCII 10 Version
 

  • Contains the documentation of the B++ Library.


  • Contains everything to compile the B++ Library: the source files and some makefiles.


  • Contains test results of the B++ Library for the compilers we have tested. It is advised to get them if your compiler is not one of those we have tested. Hence you can compare your results with ours.

 
Extraction
 

Use software like WinZip (for MS-Windows) or TAR and GZIP (for Unix) to extract these three archives. Start by extracting the sources archive that will create a folder named bpp_library. Then extract the two other archives in it in order to obtain the bpp_library/documentation and bpp_library/testing folders.

 
DOCUMENTATION ON THE ALGORITHMS
 

Documentation about the various algorithms for graphs implemented in this library can be found in the sources listed below, some are in English, other are in French.

  • Cours de recherche opérationnelle

  • Optimisation de problèmes de synchronisation hypermédia

  • GraphLayout Java Applet

 
TABLE OF CONTENTS
 

The following documentation attempts to explain how to compile this library and how to use it for the development of a C++ program. Each module of this library is detailed. Nevertheless, if you have questions, problems to compile or use the library, comments or bugs to report, you can send an e-mail to bruno@nawouak.net.


  • Describes and offers the download of tools written with the B++ Library.


  • Web interface using a B++ Tool to generate graphs or graph problems online.


  • Presents the organization of the library. It can also be a guide for any future development.


  • Describes the content of the modules provided by the B++ Library.


  • Explains how to configure and compile the B++ Library.


  • Explains how to create a program that uses the B++ Library.


  • Presents Jirk++ and illustrates how to manipulate Java elements in C++.


  • Illustrates the use of the library through an example of shortest path problem.


  • Presents the B++ Simulator framework that allows discrete-event visual simulation.


  • Historical record of the major changes in the B++ Library.


  • Thanks to the people who contribute directly or indirectly to the project.


  • Presents the terms of the license of the B++ Library.