GithubHelp home page GithubHelp logo

airsim / stdair Goto Github PK

View Code? Open in Web Editor NEW
12.0 7.0 0.0 23.08 MB

C++ Standard Simulation Airline IT Library

Home Page: https://airsim.github.io/stdair/

License: GNU Lesser General Public License v2.1

Shell 1.14% C++ 62.12% C 0.41% CMake 29.02% M4 7.32%
airline customer-choice discrete-event-simulation pricing revenue-management schedule-management simulation standard

stdair's Introduction

Standard Airline IT Library

Summary

StdAir aims at providing a clean API, and the corresponding C++ implementation, for the basis of Airline IT and travel distribution Business Object Model (BOM), that is, to be used by several other open source projects, including all the components of the Travel Market Simulator (http://www.travel-market-simulator.com), such as AirRAC, RMOL, AirInv, AvlCal, AirTSP, SimFQT, SimLFS, SimCRS, TravelCCM, SEvMgr, TraDemGen, and TvlSim.

StdAir is the fundamental brick of the Travel Market Simulator. However, it may be used in a stand-alone mode.

Installation

On Fedora/CentOS/RedHat distribution

Just use DNF (or Yum on older distributions):

$ dnf -y install stdair-devel stdair-doc

You can also get the RPM packages (which may work on Linux distributions like Novel Suse and Mandriva) from the Fedora repository (e.g., for Fedora Rawhide, https://fr2.rpmfind.net/linux/RPM/fedora/devel/rawhide/x86_64/)

Building the library and test binary from Git repository

The Git repository may be cloned as following:

$ git clone [email protected]:airsim/stdair.git # through SSH
$ git clone https://github.com/airsim/stdair.git # if the firewall filters SSH
$ cd stdair

Then, you need the following packages (Fedora/RedHat/CentOS names here, but names may vary according to distributions):

  • cmake
  • gcc-c++
  • boost-devel / libboost-dev
  • python-devel / python-dev
  • gettext-devel / gettext
  • sqlite3-devel / libsqlite3-dev
  • readline-devel / libreadline-dev
  • libncurses5-devel
  • soci-mysql-devel, soci-sqlite3-devel
  • stdair-devel / libstdair-dev
  • sevmgr-devel / libsevmgr-dev
  • doxygen / doxygen-latex, ghostscript, graphviz
  • tetex-latex (optional)
  • rpm-build (optional)

Building the library and test binary from the tarball

The latest stable source tarball (stdair*.tar.gz or .bz2) can be found on GitHub: http://github.com/airsim/stdair/releases

To customise the following to your environment, you can alter the path to the installation directory:

export INSTALL_BASEDIR="${HOME}/dev/deliveries"
export STDAIR_VER="1.00.15"
if [ -d /usr/lib64 ]; then LIBSUFFIX="64"; fi
export LIBSUFFIX_4_CMAKE="-DLIB_SUFFIX=$LIBSUFFIX"

Then, as usual:

  • To configure the project, type something like:
$ mkdir build && cd build
$ cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_BASEDIR}/stdair-$STDAIR_VER \
	-DCMAKE_BUILD_TYPE:STRING=Debug -DENABLE_TEST:BOOL=ON \
	-DINSTALL_DOC:BOOL=ON -DRUN_GCOV:BOOL=OFF ${LIBSUFFIX_4_CMAKE} ..
  • With a specific version of Boost, say Boost 1.69 installed in a parallel way (for instance, as an optional module):
$ cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_BASEDIR}/stdair-$STDAIR_VER \
        -DCMAKE_BUILD_TYPE:STRING=Debug -DENABLE_TEST:BOOL=ON \
        -DBOOST_LIBRARYDIR=/usr/lib64/boost169 -DBOOST_INCLUDEDIR=/usr/include/boost169 \
        -DBoost_ADDITIONAL_VERSIONS="1.69 1.69.0" \
        -DINSTALL_DOC:BOOL=ON -DRUN_GCOV:BOOL=OFF ${LIBSUFFIX_4_CMAKE} ..
  • To build the project, type:
$ make
  • To test the project, type:
$ make check
  • To install the library (libstdair*.so*) and the binary (stdair), just type:
  make install
  pushd /home/user/dev/deliveries
  rm -f stdair-stable && ln -s stdair-$STDAIR_VER stdair-stable
  popd -
  • To package the source files, type:
$ make dist
  • To package the binary and the (HTML and PDF) documentation:
$ make package
  • To browse the (just installed, if enabled) HTML documentation:
$ midori file://${INSTALL_BASEDIR}/stdair-$STDAIR_VER/share/doc/stdair/html/index.html
  • To browse the (just installed, if enabled) PDF documentation:
$ evince ${INSTALL_BASEDIR}/stdair-$STDAIR_VER/share/doc/stdair/html/refman.pdf
  • To run the local binary version:
$ ./stdair/stdair -b
  • To run the installed version:
$ ${INSTALL_BASEDIR}/stdair-$STDAIR_VER/bin/stdair -b

Denis Arnaud

stdair's People

Contributors

da115115 avatar gsabatier avatar jwakely avatar quannaus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

stdair's Issues

Build failure with Boost 1.63

In file included from /usr/include/boost/archive/detail/interface_iarchive.hpp:22:0,
                 from /usr/include/boost/archive/detail/common_iarchive.hpp:23,
                 from /usr/include/boost/archive/basic_text_iarchive.hpp:30,
                 from /usr/include/boost/archive/text_iarchive.hpp:24,
                 from /builddir/build/BUILD/stdair-1.00.2/stdair/command/CmdBomSerialiser.cpp:8:
/usr/include/boost/archive/detail/iserializer.hpp: In instantiation of 'static void boost::archive::detail::heap_allocation<T>::doesnt_have_new_operator::invoke_delete(T*) [with T = stdair::FlightDate]':
/usr/include/boost/archive/detail/iserializer.hpp:265:33:   required from 'static void boost::archive::detail::heap_allocation<T>::invoke_delete(T*) [with T = stdair::FlightDate]'
/usr/include/boost/archive/detail/iserializer.hpp:273:26:   required from 'boost::archive::detail::heap_allocation<T>::~heap_allocation() [with T = stdair::FlightDate]'
/usr/include/boost/archive/detail/iserializer.hpp:294:36:   required from 'void* boost::archive::detail::pointer_iserializer<Archive, T>::heap_allocation() const [with Archive = boost::archive::text_iarchive; T = stdair::FlightDate]'
/builddir/build/BUILD/stdair-1.00.2/stdair/command/CmdBomSerialiser.cpp:259:1:   required from here
/usr/include/boost/archive/detail/iserializer.hpp:246:17: error: 'virtual stdair::FlightDate::~FlightDate()' is protected within this context
                 delete t;
                 ^~~~~~
In file included from /builddir/build/BUILD/stdair-1.00.2/stdair/command/CmdBomSerialiser.cpp:18:0:
/builddir/build/BUILD/stdair-1.00.2/stdair/bom/FlightDate.hpp:197:13: note: declared protected here
     virtual ~FlightDate();
             ^

It looks like stdair::FlightDate tries to solve this with a friend declaration:

friend class boost::serialization::access;

but Boost.Serialization has changed so that the destructor is needed by some internal type now.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.