Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > c3d74e728f0eb23a7aa41caaeb74521a > files > 541

simfqt-doc-1.00.0-2.fc18.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
		  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
	<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
	<meta name="robots" content="index,follow"/>
	<title>Users Guide</title>
	<link rel="shortcut icon" href="favicon.ico">
	<link href="tabs.css" rel="stylesheet" type="text/css"/>
	<link href="simfqt.css" rel="stylesheet" type="text/css"/>
	<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
	<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
	<script type="text/javascript">
	  var _gaq = _gaq || [];
	  _gaq.push(['_setAccount', 'UA-25242815-1']);
	  _gaq.push(['_setDomainName', 'none']);
	  _gaq.push(['_setAllowLinker', true]);
	  _gaq.push(['_trackPageview']);
	  (function() {
      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
	  })();
	</script>
	<script type="text/javascript"
			src="https://apis.google.com/js/plusone.js"></script>
  </head>
  <body>
	<div id="top"><!-- do not remove this div! -->
	  <div id="titlearea">
		<table width="100%">
		  <tbody>
			<tr style="height: 56px;">
			  <td style="padding-left: 0.5em;">
				<div id="projectname"><a href="http://simfqt.sourceforge.net"><img height="45px" alt="SimFQT Logo" src="simfqt_logo.png"></a>
				  &#160;<span id="projectnumber">1.00.0</span>
				</div>
				<div id="projectbrief">C++ Simulated Fare Quote System Library</div>
			  </td>
			  <!-- begin SOURCEFORGE_CUSTOM-->
			  <td>
				<div id="sflogo"><a href="http://simfqt.sourceforge.net"><img height="45px" alt="SourceForge Logo" src="sfx_logo.png"></a></div>
			  </td>
			  <!-- end SOURCEFORGE_CUSTOM-->
			</tr>
		  </tbody>
		</table>
	  </div>
<!-- Generated by Doxygen 1.8.3.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('users_guide.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Users Guide </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h1><a class="anchor" id="ug_toc"></a>
Table of Contents</h1>
<ul>
<li><a class="el" href="users_guide.html#ug_introduction">Introduction</a></li>
<li><a class="el" href="users_guide.html#ug_get_started">Get Started</a><ul>
<li><a class="el" href="users_guide.html#ug_get_source">Get the SimFQT library</a></li>
<li><a class="el" href="users_guide.html#ug_build_binaries">Build the SimFQT project</a></li>
<li><a class="el" href="users_guide.html#ug_build_and_run_tests">Run the Tests</a></li>
<li><a class="el" href="users_guide.html#ug_install_project">Install the SimFQT Project (Binaries, Documentation)</a></li>
</ul>
</li>
<li><a class="el" href="users_guide.html#ug_inputfile">Input file of SimFQT Project</a></li>
<li><a class="el" href="users_guide.html#ug_bom_bom">The fare quoting BOM Tree</a><ul>
<li><a class="el" href="users_guide.html#ug_bom_build">Build of the fare quoting BOM tree</a></li>
<li><a class="el" href="users_guide.html#ug_bom_display">Display of the fare quoting BOM tree</a></li>
<li><a class="el" href="users_guide.html#ug_bom_structure">Structure of the fare quoting BOM tree</a></li>
</ul>
</li>
<li><a class="el" href="users_guide.html#ug_procedure">The fare quoting procedure</a><ul>
<li><a class="el" href="users_guide.html#ug_procedure_bookingrequest">Instanciate the default booking request</a></li>
<li><a class="el" href="users_guide.html#ug_procedure_travelsolution">Instanciate the default travel solution list</a></li>
<li><a class="el" href="users_guide.html#ug_procedure_fareQuote">Fare Quoting a list of travel solution</a></li>
</ul>
</li>
<li><a class="el" href="users_guide.html#ug_error_message">Error Messages</a><ul>
<li><a class="el" href="users_guide.html#ug_error_message_input_not_found">Fare input file not found</a></li>
<li><a class="el" href="users_guide.html#ug_error_message_input_not_parsed">Fare input file can not be parsed</a></li>
<li><a class="el" href="users_guide.html#ug_error_message_missing_fare_rule">Error Messages for missing fare rules</a></li>
</ul>
</li>
</ul>
<h1><a class="anchor" id="ug_introduction"></a>
Introduction</h1>
<p>The <code>SimFQT</code> library contains classes for fare rule management. This document does not cover all the aspects of the <code>SimFQT</code> library. It does however explain the most important things you need to know in order to start using <code>SimFQT</code>.</p>
<h1><a class="anchor" id="ug_get_started"></a>
Get Started</h1>
<h2><a class="anchor" id="ug_get_source"></a>
Get the SimFQT library</h2>
<p>Clone locally the full <a href="http://simfqt.git.sourceforge.net/git/gitweb.cgi?p=simfqt/simfqt;a=tree;h=refs/heads/trunk;hb=trunk">Git project</a>: </p>
<pre class="fragment">cd ~
mkdir -p dev/sim
cd ~/dev/sim
git clone git://simfqt.git.sourceforge.net/gitroot/simfqt/simfqt simfqtgit
cd simfqtgit
git checkout trunk
</pre><h2><a class="anchor" id="ug_build_binaries"></a>
Build the SimFQT project</h2>
<p>Link with StdAir, create the distribution package (say, 0.5.0) and compile using the following commands: </p>
<pre class="fragment">cd ~/dev/sim/simfqtgit
rm -rf build &amp;&amp; mkdir -p build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/dev/deliveries/simfqt-0.5.0 \
 -DWITH_STDAIR_PREFIX=~/dev/deliveries/stdair-stable \
 -DCMAKE_BUILD_TYPE:STRING=Debug -DINSTALL_DOC:BOOL=ON ..
make
</pre><h2><a class="anchor" id="ug_build_and_run_tests"></a>
Run the Tests</h2>
<p>After building the SimFQT project, the following commands run the tests: </p>
<pre class="fragment">cd ~/dev/sim/simfqtgit
cd build
make check
</pre><p>As a result, you should obtain a similar report:</p>
<pre class="fragment">[  0%] Built target hdr_cfg_simfqt
[ 90%] Built target simfqtlib
[100%] Built target FQTTestSuitetst
Test project /home/localoriuser/dev/sim/simfqt/simfqtgit/build/test/simfqt
    Start 1: FQTTestSuitetst
1/1 Test #1: FQTTestSuitetst ..................   Passed    0.15 sec

100% tests passed, 0 tests failed out of 1

Total Test time (real) =   0.16 sec
[100%] Built target check_simfqttst
[100%] Built target check
</pre><h2><a class="anchor" id="ug_install_project"></a>
Install the SimFQT Project (Binaries, Documentation)</h2>
<p>After the step <a class="el" href="users_guide.html#ug_build_binaries">Build the SimFQT project</a>, to install the library and its header files, type: </p>
<pre class="fragment">cd ~/dev/sim/simfqtgit
cd build
make install
</pre><p>You can check that the executables and other required files have been copied into the given final directory:</p>
<pre class="fragment">cd ~dev/deliveries/simfqt-0.5.0
</pre><p>To generate the SimFQT project documentation, the commands are:</p>
<pre class="fragment">cd ~/dev/sim/simfqtgit
cd build
make doc
</pre><p> The SimFQT project documentation is available in the following formats: HTML, LaTeX. Those documents are available in a subdirectory:</p>
<pre class="fragment">cd ~/dev/sim/simfqtgit
cd build
cd doc
</pre><h1><a class="anchor" id="ug_inputfile"></a>
Input file of SimFQT Project</h1>
<p>The fare input file structure should look like the following sample:</p>
 <div class="fragment"><div class="line"><span class="comment">// Fares: fare ID; OriginCity; DestinationCity; TripType; DateRangeStart; DateRangeEnd; DepartureTimeRangeStart; DepartureTimeRangeEnd; POS; CabinCode; Channel; AdvancePurchase; SaturdayNight; ChangeFees; NonRefundable; MinimumStay; Price; nb Segments</span></div>
<div class="line"><span class="comment">// Segment: AirlineCode; Class; </span></div>
<div class="line">1; SIN; BKK; OW; 2010-01-15; 2010-12-31; 00:00; 23:59; SIN; Y; IN; 7; T; T; T; 3; 150.0; SQ; Y;</div>
<div class="line">2; SIN; BKK; OW; 2010-01-15; 2010-12-31; 00:00; 23:59; BKK; Y; IN; 7; T; T; T; 3; 150.0; SQ; Y;</div>
<div class="line">3; SIN; HND; OW; 2010-01-15; 2010-12-31; 00:00; 23:59; SIN; Y; IN; 7; T; T; T; 3; 150.0; SQ; Y;</div>
<div class="line">4; SIN; HND; OW; 2010-01-15; 2010-12-31; 00:00; 23:59; HND; Y; IN; 7; T; T; T; 3; 150.0; SQ; Y;</div>
<div class="line">5; SIN; HND; OW; 2010-01-15; 2010-12-31; 00:00; 23:59; ROW; Y; IN; 7; T; T; T; 3; 150.0; SQ; Y;</div>
<div class="line">6; SIN; BKK; OW; 2010-01-15; 2010-12-31; 00:00; 23:59; SIN; Y; IF; 7; T; T; T; 3; 150.0; SQ; Y;</div>
<div class="line">7; SIN; BKK; OW; 2010-01-15; 2010-12-31; 00:00; 23:59; BKK; Y; IF; 7; T; T; T; 3; 150.0; SQ; Y;</div>
<div class="line">8; SIN; HND; OW; 2010-01-15; 2010-12-31; 00:00; 23:59; SIN; Y; IF; 7; T; T; T; 3; 150.0; SQ; Y;</div>
<div class="line">9; SIN; HND; OW; 2010-01-15; 2010-12-31; 00:00; 23:59; HND; Y; IF; 7; T; T; T; 3; 150.0; SQ; Y;</div>
<div class="line">10; SIN; HND; OW; 2010-01-15; 2010-12-31; 00:00; 23:59; ROW; Y; IF; 7; T; T; T; 3; 150.0; SQ; Y;</div>
</div><!-- fragment --></p>
<p>Each line represents a fare rule (see <code><a class="el" href="structSIMFQT_1_1FareRuleStruct.html">SIMFQT::FareRuleStruct</a></code>), i.e., each line tells us the price a customer will be asked according to a lot of criteria such as:</p>
<ul>
<li>the origin and destination of his travel (for instance from Singapour to Bangok in the first fare rule).</li>
<li>the type of his travel, i.e. one-way "OW" or round trip "RT".</li>
<li>the date and time he is willing to travel (each fare rule has a date range and a time range of validity).</li>
<li>the place where he is buying the ticket, i.e. the point of sale.</li>
<li>his prefered cabin.</li>
<li>the channel of the booking described by a two letters code: direct(D)/indirect(I) and online(N)/offline(F).</li>
<li>the date when he wants to buy the ticket, i.e. the advanced purchase required in number of days.</li>
<li>the saturday night stay option, i.e. is he staying a staturday night between his inbound trip and his outbound one? "T" stands for true and "F" stands for false.</li>
<li>the change fees option, i.e. are there fees to change his ticket? "T" stands for true and "F" stands for false.</li>
<li>the refundable criterion, i.e. is the ticket refundable? "T" stands for true and "F" stands for false.</li>
<li>the number of days he is willing to stay at the destination location (each fare rule has a minimum stay requirement in number of days).</li>
</ul>
<p>Some fare input examples (including the example above named fare01.csv) are given in the stdair::samples directory.</p>
<h1><a class="anchor" id="ug_bom_bom"></a>
The fare quoting BOM Tree</h1>
<p>The Fare Quoting Business Object Model (BOM) tree is a structure permitting to store all the <code><a class="el" href="structSIMFQT_1_1FareRuleStruct.html">SIMFQT::FareRuleStruct</a></code> objects of the simulation. That is why, the BOM tree is built parsing the fare file containing all the fare rules (as described in the previous section <a class="el" href="users_guide.html#ug_inputfile">Input file of SimFQT Project</a>). For convenience and first use of SimFQT (the input fare file building can be long and heavy), SimFQT API enables to build a small default BOM tree.</p>
<h2><a class="anchor" id="ug_bom_build"></a>
Build of the fare quoting BOM tree</h2>
<p>First, a BOM root object (i.e., a root for all the classes in the project) is instantiated by the <code>stdair::STDAIR_ServiceContext</code> context object, when the <code>stdair::STDAIR_Service</code> is itself instantiated, that is to say during the instanciation of the <code>simfqt::SIMFQT_Service</code> object. The corresponding <code>type</code> (class) <code>stdair::BomRoot</code> is defined in the StdAir library.</p>
<p>Then, the BOM root can be either constructed thanks to the <code>simfqt::SIMFQT_Service::buildSampleBom()</code> method:</p>
 <div class="fragment"><div class="line">    <span class="keywordtype">void</span> buildSampleBom();    </div>
</div><!-- fragment --></p>
<p>or can be constructed using the fare dump file described above thanks to the <code> simfqt::SIMFQT_Service::parseAndLoad (const stdair::Filename_T&amp;)</code> method:</p>
 <div class="fragment"><div class="line">    <span class="keywordtype">void</span> parseAndLoad (<span class="keyword">const</span> FareFilePath&amp; iFareFilename);</div>
</div><!-- fragment --></p>
<h2><a class="anchor" id="ug_bom_display"></a>
Display of the fare quoting BOM tree</h2>
<p>The fare quoting BOM tree can be displayed as done in the <code>batches::simfqt.cpp</code> program:  <div class="fragment"></div><!-- fragment --></p>
<p>When the default bom tree is used (<code>-b</code> option of the main program <code><a class="el" href="simfqt_8cpp.html">simfqt.cpp</a></code>), the fare quoting BOM tree display should look like:</p>
<div class="fragment"><div class="line">===============================================================</div>
<div class="line">BomRoot:  -- ROOT -- </div>
<div class="line">===============================================================</div>
<div class="line">+++++++++++++++++++++++++++++++++++++++++++++++++</div>
<div class="line">AirportPair: LHR, SYD</div>
<div class="line">+++++++++++++++++++++++++++++++++++++++++++++++++</div>
<div class="line">------------------------------------------</div>
<div class="line">DatePeriod: [2011-Jan-15/2011-Dec-30]</div>
<div class="line">------------------------------------------</div>
<div class="line">******************************************</div>
<div class="line">PosChannel: LHR,DN</div>
<div class="line">******************************************</div>
<div class="line">----------------------------------------</div>
<div class="line">TimePeriod: 00:00:00-23:00:00</div>
<div class="line">----------------------------------------</div>
<div class="line">--------------------------------------</div>
<div class="line">Fare-Features: RT -- 0-1-1-1-0</div>
<div class="line">--------------------------------------</div>
<div class="line">------------------------------------</div>
<div class="line">AirlineClassList: BA Y</div>
<div class="line">------------------------------------</div>
</div><!-- fragment --><p>Here the fare quoting BOM tree is just composed of one fare rule.</p>
<h2><a class="anchor" id="ug_bom_structure"></a>
Structure of the fare quoting BOM tree</h2>
<p>As one can guess looking at the BOM tree display above, the tree is constructed as follow:</p>
<ul>
<li>At the top of the tree, we find a <code>stdair::BomRoot</code> object (i.e., a root for all the classes in the project).</li>
<li>Just under the root, at the first level, we find <code>stdair::AirportPair</code> objects (i.e., all the possible combinations of origin-destination). In the instance above, the only combination possible is from London to Sydney.</li>
<li>At the next level, under a particular <code>stdair::AirportPair</code>, we find all the date periods of the fare rules applicable for this origin-destination.</li>
<li>Then, under a particular <code>stdair::DatePeriod</code>, we find all the possible combinations of point-of-sale and channel applicable.</li>
<li>Under a particular <code>stdair::PosChannel</code> object, we have the correponding <code>stdair::TimePeriod</code> objects.</li>
<li>At the next-to-last level, we have <code>stdair::FareFeatures</code> objects, that is to say the trip type, the advanced purchase and stay duration required, ...</li>
<li>Finally we find the code of the airline publishing the current fare rule and the applicable class code.</li>
</ul>
<h1><a class="anchor" id="ug_procedure"></a>
The fare quoting procedure</h1>
<p>The project SimFQT aims at fare quoting a list of <a href="http://stdair.sourceforge.net/TravelSolutionStruct_8hpp.html ">travel solutions</a> corresponding to a <a href="http://stdair.sourceforge.net/BookingRequestStruct_8hpp.html ">booking request</a>. The fare quoter looks for all the fare rules matching a travel solution: when a fare rule matches, it creates a <a href="http://stdair.sourceforge.net/FareOptionStruct_8hpp.html">fare option </a> object and adds this object to the current travel solution.</p>
<p>A few steps:</p>
<ul>
<li><a class="el" href="users_guide.html#ug_procedure_bookingrequest">Instanciate the default booking request</a></li>
<li><a class="el" href="users_guide.html#ug_procedure_travelsolution">Instanciate the default travel solution list</a></li>
<li><a class="el" href="users_guide.html#ug_procedure_fareQuote">Fare Quoting a list of travel solution</a></li>
</ul>
<h2><a class="anchor" id="ug_procedure_bookingrequest"></a>
Instanciate the default booking request</h2>
<p>A default booking request can be built using the <code>simfqt::SIMFQT_Service::buildBookingRequest</code> method:  <div class="fragment"><div class="line">    stdair::BookingRequestStruct buildBookingRequest(<span class="keyword">const</span> <span class="keywordtype">bool</span> isForCRS = <span class="keyword">false</span>);</div>
</div><!-- fragment --></p>
<h2><a class="anchor" id="ug_procedure_travelsolution"></a>
Instanciate the default travel solution list</h2>
<p>In the following sample, a list of travel solutions is given as input/output parameter of the <code>simfqt::SIMFQT_Service::buildSampleTravelSolutions</code> method: <div class="fragment"><div class="line">    <span class="keywordtype">void</span> buildSampleTravelSolutions (stdair::TravelSolutionList_T&amp;);</div>
</div><!-- fragment --></p>
<h2><a class="anchor" id="ug_procedure_fareQuote"></a>
Fare Quoting a list of travel solution</h2>
<p>Once a booking request, its correponding list of travel solutions and the fare Quote BOM tree are constructed, the main fonction of the module can be called:</p>
<p><div class="fragment"><div class="line">    <span class="keywordtype">void</span> quotePrices (<span class="keyword">const</span> stdair::BookingRequestStruct&amp;,</div>
<div class="line">                      stdair::TravelSolutionList_T&amp;);</div>
</div><!-- fragment --></p>
<p>For each travel solution of the list, the applicable fare rules are picked from the BOM tree (information such as the trip type or the booking request date are only contained into the booking request, that is why we need this object too).</p>
<p>Each chosen fare rule enables to create a fare option structure which is finally stored into the travel solution.</p>
<h1><a class="anchor" id="ug_error_message"></a>
Error Messages</h1>
<p>This section lists the fatal errors you may encounter when using SimFQT:</p>
<ul>
<li><a class="el" href="users_guide.html#ug_error_message_input_not_found">Fare input file not found</a></li>
<li><a class="el" href="users_guide.html#ug_error_message_input_not_parsed">Fare input file can not be parsed</a></li>
<li><a class="el" href="users_guide.html#ug_error_message_missing_fare_rule">Error Messages for missing fare rules</a></li>
</ul>
<h2><a class="anchor" id="ug_error_message_input_not_found"></a>
Fare input file not found</h2>
<p>In this case, the output error message will be similar to: </p>
<pre class="fragment">terminate called after throwing an instance of 'SIMFQT::FareInputFileNotFoundException'
  what():  The fare input file '~/&lt;YourFileName&gt;.csv' does not exist or can not be read
Aborted
</pre><p>You can check:</p>
<ul>
<li>the given path to your input file is correct.</li>
<li>the specified file name &lt;YourFileName&gt; is correct.</li>
<li>the file permission settings: is the file "readable"?.</li>
</ul>
<h2><a class="anchor" id="ug_error_message_input_not_parsed"></a>
Fare input file can not be parsed</h2>
<p>This error message means that your input file has been opened but has not been fully read. </p>
<pre class="fragment">terminate called after throwing an instance of 'SIMFQT::FareFileParsingFailedException'
  what():  Parsing of fare input file: ~/&lt;YourFileName&gt;.csv failed
Aborted
</pre><p> Your input file structure is somehow incorrect. See the tutorial section <a class="el" href="tutorials.html#tut_how_build_fare_file">How to build a fare input file?</a>.</p>
<h2><a class="anchor" id="ug_error_message_missing_fare_rule"></a>
Error Messages for missing fare rules</h2>
<p>If you obtain one of the error messages below and you are currently using your own input file, that means it has been fully read. However, at least one fare rule is missing to complete the fare quote.</p>
<ul>
<li>If your error message is about a missing airport pair, you should obtain a similar report: <pre class="fragment">terminate called after throwing an instance of 'SIMFQT::AirportPairNotFoundException'
  what():  No available fare rule for the Origin-Destination pair: xxx, xxx
Aborted
</pre> You need to be sure that all your travel solutions have at least one corresponding origin-destination fare rule. It seems you should add one origin-destination (i.e., xxx, xxx) fare rule into your input file.</li>
</ul>
<ul>
<li>If your error message is about a missing fare rule for a flight date, you should obtain a similar report: <pre class="fragment">terminate called after throwing an instance of 'SIMFQT::FlightDateNotFoundException'
  what():  No available fare rule for the flight date x, xxxx-xxx-xx and to the Origin-Destination pair: xxx, xxx
Aborted
</pre> You need to be sure that all your travel solutions have at least one corresponding fare rule: same origin-destination and valid date range. It seems you should add/change a fare rule with the Origin-Destination pair: xxx, xxx: its date range must include the flight date xxxx-xxx-xx.</li>
</ul>
<ul>
<li>If your error message is about a missing fare rule for a point-of sale and/or channel, you should obtain a similar report: <pre class="fragment">terminate called after throwing an instance of 'SIMFQT::PosOrChannelNotFoundException'
  what():  No available fare rule for the point of sale xxx, the channel xx, the flight date x, xxxx-xxx-xx and the Origin-Destination pair: xxx, xxx
Aborted
</pre> You need to be sure that all your travel solutions have at least one corresponding fare rule: same origin-destination, valid date range, same point-of-sale and same channel. It seems you should add/change a fare rule to have the same combination as given in the output error message: "the point of sale xxx, the channel xx, the flight date x, xxxx-xxx-xx and the Origin-Destination pair: xxx, xxx".</li>
</ul>
<ul>
<li>If your error message is about a missing fare rule for a flight time, you should obtain a similar report: <pre class="fragment">terminate called after throwing an instance of 'SIMFQT::FlightTimeNotFoundException'
  what():  No available fare rule corresponding to 'xx; x, xxxx-xxx-xx; xxx, xxx; xx:xx' (parsed key) and to 'xxx, xx' (POS and channel)
Aborted
</pre> You need to be sure that all your travel solutions have at least one corresponding fare rule: same origin-destination, valid date range, same point-of-sale, same channel and valid time range. Add/change a fare rule if necessary.</li>
</ul>
<ul>
<li>If your error message is about a missing fare rule for some features, you should obtain a similar report: <pre class="fragment">terminate called after throwing an instance of 'SIMFQT::FeaturesNotFoundException'
  what():  No available fare rule corresponding to a trip type xx, to a stay duration of x, to a request date time of xxxx-xxx-xx xx:xx:xx, to 'xx; x, xxxx-xxx-xx; xxx, xxx; xx:xx' (parsed key) and to 'xxx, xx' (POS and channel), to 'xx; x, xxxx-xxx-xx; xxx, xxx; xx:xx' (parsed key) and to 'xxx, xx' (POS and channel)
Aborted
</pre> You need to be sure that all your travel solutions have at least one corresponding fare rule: same origin-destination, valid date range, same point-of-sale, same channel, valid time range and valid features. The features are:<ul>
<li>the trip type. Maybe you need both "OW" (One-Way) and "RT" (Round-trip) fare rules?</li>
<li>the minimum stay duration. You can try "0" for this parameter to include all the possible stay durations.</li>
<li>the advance purchase. You can try "0" for this parameter to include all the booking requests up to departure date.</li>
</ul>
</li>
</ul>
<ul>
<li>If your error message is about a missing fare rule for an airline, you should obtain a similar report: <pre class="fragment">terminate called after throwing an instance of 'SIMFQT::AirlineNotFoundException'
  what():  No available fare rule corresponding to 'xx; x, xxxx-xxx-xx; xxx, xxx; xx:xx' (parsed key), to 'xxxx-xxx-xx xx:xx:xx, for (xxx, xx) xxx-xxx (xx) xxxx-xxx-xx (x days) xx:xx:xx x x x x x' (booking request) and to 'xxx, xx' (POS and channel)
Aborted
</pre> At least one of your fare rules is correct except that the fare into question must be defined by the airline operating (see the first two letters of the parsed key in the error message to know which airline is operating). </li>
</ul>
</div></div><!-- contents -->
</div><!-- doc-content -->
		
		<li class="footer">Generated on Wed May 22 2013 21:31:10 for SimFQT by
		  <a href="http://www.doxygen.org/index.html">
			<img class="footer" src="doxygen.png" alt="doxygen"/></a> 
		  1.8.3.1
		</li>
		<li class="footer">
		  <a href="http://sourceforge.net/projects/simfqt"><img class="footer" src="http://sflogo.sourceforge.net/sflogo.php?group_id=295242&type=12&format=.png" alt="SourceForge Logo"></a>
		</li>
	  </ul>
	</div>
  </body>
</html>