<!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>airrac/service/AIRRAC_Service.cpp Source File</title> <link rel="shortcut icon" href="favicon.ico"> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="airrac.css" rel="stylesheet" type="text/css"/> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </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-24983440-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://airrac.sourceforge.net"><img height="45px" alt="AirRAC Logo" src="airrac_logo.png"></a>  <span id="projectnumber">0.2.3</span> </div> <div id="projectbrief">C++ Simulated Revenue Accounting (RAC) System Library</div> </td> <!-- begin SOURCEFORGE_CUSTOM--> <td> <div id="sflogo"><a href="http://airrac.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.7.5 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <script type="text/javascript" src="dynsections.js"></script> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related 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 class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</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 id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> </div> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> initNavTree('AIRRAC__Service_8cpp.html',''); </script> <div id="doc-content"> <div class="header"> <div class="headertitle"> <div class="title">AIRRAC_Service.cpp</div> </div> </div> <div class="contents"> <a href="AIRRAC__Service_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// //////////////////////////////////////////////////////////////////////</span> <a name="l00002"></a>00002 <span class="comment">// Import section</span> <a name="l00003"></a>00003 <span class="comment">// //////////////////////////////////////////////////////////////////////</span> <a name="l00004"></a>00004 <span class="comment">// STL</span> <a name="l00005"></a>00005 <span class="preprocessor">#include <cassert></span> <a name="l00006"></a>00006 <span class="comment">// Boost</span> <a name="l00007"></a>00007 <span class="preprocessor">#include <boost/make_shared.hpp></span> <a name="l00008"></a>00008 <span class="comment">// StdAir</span> <a name="l00009"></a>00009 <span class="preprocessor">#include <stdair/basic/BasChronometer.hpp></span> <a name="l00010"></a>00010 <span class="preprocessor">#include <stdair/bom/BomDisplay.hpp></span> <a name="l00011"></a>00011 <span class="preprocessor">#include <stdair/service/Logger.hpp></span> <a name="l00012"></a>00012 <span class="preprocessor">#include <stdair/STDAIR_Service.hpp></span> <a name="l00013"></a>00013 <span class="comment">// Airrac</span> <a name="l00014"></a>00014 <span class="preprocessor">#include <<a class="code" href="BasConst__AIRRAC__Service_8hpp.html">airrac/basic/BasConst_AIRRAC_Service.hpp</a>></span> <a name="l00015"></a>00015 <span class="preprocessor">#include <<a class="code" href="FacAirracServiceContext_8hpp.html">airrac/factory/FacAirracServiceContext.hpp</a>></span> <a name="l00016"></a>00016 <span class="preprocessor">#include <<a class="code" href="YieldParser_8hpp.html">airrac/command/YieldParser.hpp</a>></span> <a name="l00017"></a>00017 <span class="preprocessor">#include <<a class="code" href="YieldManager_8hpp.html">airrac/command/YieldManager.hpp</a>></span> <a name="l00018"></a>00018 <span class="preprocessor">#include <<a class="code" href="AIRRAC__ServiceContext_8hpp.html">airrac/service/AIRRAC_ServiceContext.hpp</a>></span> <a name="l00019"></a>00019 <span class="preprocessor">#include <<a class="code" href="AIRRAC__Service_8hpp.html">airrac/AIRRAC_Service.hpp</a>></span> <a name="l00020"></a>00020 <a name="l00021"></a>00021 <span class="keyword">namespace </span>AIRRAC { <a name="l00022"></a>00022 <a name="l00023"></a>00023 <span class="comment">// //////////////////////////////////////////////////////////////////////</span> <a name="l00024"></a>00024 AIRRAC_Service::AIRRAC_Service() : _airracServiceContext (NULL) { <a name="l00025"></a>00025 assert (<span class="keyword">false</span>); <a name="l00026"></a>00026 } <a name="l00027"></a>00027 <a name="l00028"></a>00028 <span class="comment">// //////////////////////////////////////////////////////////////////////</span> <a name="l00029"></a>00029 AIRRAC_Service::AIRRAC_Service (<span class="keyword">const</span> AIRRAC_Service& iService) { <a name="l00030"></a>00030 assert (<span class="keyword">false</span>); <a name="l00031"></a>00031 } <a name="l00032"></a>00032 <a name="l00033"></a>00033 <span class="comment">// ////////////////////////////////////////////////////////////////////</span> <a name="l00034"></a><a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#a77eac1b9b24021e58761df3f9136d33d">00034</a> AIRRAC_Service::AIRRAC_Service (<span class="keyword">const</span> stdair::BasLogParams& iLogParams) <a name="l00035"></a>00035 : _airracServiceContext (NULL) { <a name="l00036"></a>00036 <a name="l00037"></a>00037 <span class="comment">// Initialise the STDAIR service handler</span> <a name="l00038"></a>00038 stdair::STDAIR_ServicePtr_T lSTDAIR_Service_ptr = <a name="l00039"></a>00039 initStdAirService (iLogParams); <a name="l00040"></a>00040 <a name="l00041"></a>00041 <span class="comment">// Initialise the service context</span> <a name="l00042"></a>00042 initServiceContext(); <a name="l00043"></a>00043 <a name="l00044"></a>00044 <span class="comment">// Add the StdAir service context to the AIRRAC service context</span> <a name="l00045"></a>00045 <span class="comment">// \note AIRRAC owns the STDAIR service resources here.</span> <a name="l00046"></a>00046 <span class="keyword">const</span> <span class="keywordtype">bool</span> ownStdairService = <span class="keyword">true</span>; <a name="l00047"></a>00047 addStdAirService (lSTDAIR_Service_ptr, ownStdairService); <a name="l00048"></a>00048 <a name="l00049"></a>00049 <span class="comment">// Initialise the (remaining of the) context</span> <a name="l00050"></a>00050 initAirracService(); <a name="l00051"></a>00051 } <a name="l00052"></a>00052 <a name="l00053"></a>00053 <span class="comment">// ////////////////////////////////////////////////////////////////////</span> <a name="l00054"></a><a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#a3d90e9fa927cf7053e6b311943de5d0d">00054</a> AIRRAC_Service::AIRRAC_Service (<span class="keyword">const</span> stdair::BasLogParams& iLogParams, <a name="l00055"></a>00055 <span class="keyword">const</span> stdair::BasDBParams& iDBParams) <a name="l00056"></a>00056 : _airracServiceContext (NULL) { <a name="l00057"></a>00057 <a name="l00058"></a>00058 <span class="comment">// Initialise the STDAIR service handler</span> <a name="l00059"></a>00059 stdair::STDAIR_ServicePtr_T lSTDAIR_Service_ptr = <a name="l00060"></a>00060 initStdAirService (iLogParams, iDBParams); <a name="l00061"></a>00061 <a name="l00062"></a>00062 <span class="comment">// Initialise the service context</span> <a name="l00063"></a>00063 initServiceContext(); <a name="l00064"></a>00064 <a name="l00065"></a>00065 <span class="comment">// Add the StdAir service context to the AIRRAC service context</span> <a name="l00066"></a>00066 <span class="comment">// \note AIRRAC owns the STDAIR service resources here.</span> <a name="l00067"></a>00067 <span class="keyword">const</span> <span class="keywordtype">bool</span> ownStdairService = <span class="keyword">true</span>; <a name="l00068"></a>00068 addStdAirService (lSTDAIR_Service_ptr, ownStdairService); <a name="l00069"></a>00069 <a name="l00070"></a>00070 <span class="comment">// Initialise the (remaining of the) context</span> <a name="l00071"></a>00071 initAirracService(); <a name="l00072"></a>00072 } <a name="l00073"></a>00073 <a name="l00074"></a>00074 <span class="comment">// ////////////////////////////////////////////////////////////////////</span> <a name="l00075"></a>00075 AIRRAC_Service:: <a name="l00076"></a><a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#a7af9a8a3d16d3e584c5fd5477ee8b333">00076</a> AIRRAC_Service (stdair::STDAIR_ServicePtr_T ioSTDAIR_Service_ptr) <a name="l00077"></a>00077 : _airracServiceContext (NULL) { <a name="l00078"></a>00078 <a name="l00079"></a>00079 <span class="comment">// Initialise the service context</span> <a name="l00080"></a>00080 initServiceContext(); <a name="l00081"></a>00081 <a name="l00082"></a>00082 <span class="comment">// Store the STDAIR service object within the (AIRRAC) service context</span> <a name="l00083"></a>00083 <span class="comment">// \note Airrac does not own the STDAIR service resources here.</span> <a name="l00084"></a>00084 <span class="keyword">const</span> <span class="keywordtype">bool</span> doesNotOwnStdairService = <span class="keyword">false</span>; <a name="l00085"></a>00085 addStdAirService (ioSTDAIR_Service_ptr, doesNotOwnStdairService); <a name="l00086"></a>00086 <a name="l00087"></a>00087 <span class="comment">// Initialise the context</span> <a name="l00088"></a>00088 initAirracService(); <a name="l00089"></a>00089 } <a name="l00090"></a>00090 <a name="l00091"></a>00091 <span class="comment">// //////////////////////////////////////////////////////////////////////</span> <a name="l00092"></a><a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#a9026376696291b107c91daa037afca8e">00092</a> <a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#a9026376696291b107c91daa037afca8e">AIRRAC_Service::~AIRRAC_Service</a>() { <a name="l00093"></a>00093 <span class="comment">// Delete/Clean all the objects from memory</span> <a name="l00094"></a>00094 finalise(); <a name="l00095"></a>00095 } <a name="l00096"></a>00096 <a name="l00097"></a>00097 <span class="comment">// //////////////////////////////////////////////////////////////////////</span> <a name="l00098"></a>00098 <span class="keywordtype">void</span> AIRRAC_Service::finalise() { <a name="l00099"></a>00099 assert (_airracServiceContext != NULL); <a name="l00100"></a>00100 <span class="comment">// Reset the (Boost.)Smart pointer pointing on the STDAIR_Service object.</span> <a name="l00101"></a>00101 _airracServiceContext->reset(); <a name="l00102"></a>00102 } <a name="l00103"></a>00103 <a name="l00104"></a>00104 <span class="comment">// //////////////////////////////////////////////////////////////////////</span> <a name="l00105"></a>00105 <span class="keywordtype">void</span> AIRRAC_Service::initServiceContext() { <a name="l00106"></a>00106 <span class="comment">// Initialise the service context</span> <a name="l00107"></a>00107 AIRRAC_ServiceContext& lAIRRAC_ServiceContext = <a name="l00108"></a>00108 <a class="code" href="classAIRRAC_1_1FacAirracServiceContext.html#aea5dcf03ba01699f7836086f1cf48e0a">FacAirracServiceContext::instance</a>().create(); <a name="l00109"></a>00109 _airracServiceContext = &lAIRRAC_ServiceContext; <a name="l00110"></a>00110 } <a name="l00111"></a>00111 <a name="l00112"></a>00112 <span class="comment">// //////////////////////////////////////////////////////////////////////</span> <a name="l00113"></a>00113 stdair::STDAIR_ServicePtr_T AIRRAC_Service:: <a name="l00114"></a>00114 initStdAirService (<span class="keyword">const</span> stdair::BasLogParams& iLogParams, <a name="l00115"></a>00115 <span class="keyword">const</span> stdair::BasDBParams& iDBParams) { <a name="l00116"></a>00116 <a name="l00124"></a>00124 stdair::STDAIR_ServicePtr_T lSTDAIR_Service_ptr = <a name="l00125"></a>00125 boost::make_shared<stdair::STDAIR_Service> (iLogParams, iDBParams); <a name="l00126"></a>00126 <a name="l00127"></a>00127 <span class="keywordflow">return</span> lSTDAIR_Service_ptr; <a name="l00128"></a>00128 <a name="l00129"></a>00129 } <a name="l00130"></a>00130 <a name="l00131"></a>00131 <span class="comment">// //////////////////////////////////////////////////////////////////////</span> <a name="l00132"></a>00132 stdair::STDAIR_ServicePtr_T AIRRAC_Service:: <a name="l00133"></a>00133 initStdAirService (<span class="keyword">const</span> stdair::BasLogParams& iLogParams) { <a name="l00134"></a>00134 <a name="l00142"></a>00142 stdair::STDAIR_ServicePtr_T lSTDAIR_Service_ptr = <a name="l00143"></a>00143 boost::make_shared<stdair::STDAIR_Service> (iLogParams); <a name="l00144"></a>00144 <a name="l00145"></a>00145 <span class="keywordflow">return</span> lSTDAIR_Service_ptr; <a name="l00146"></a>00146 } <a name="l00147"></a>00147 <a name="l00148"></a>00148 <span class="comment">// ////////////////////////////////////////////////////////////////////</span> <a name="l00149"></a>00149 <span class="keywordtype">void</span> AIRRAC_Service:: <a name="l00150"></a>00150 addStdAirService (stdair::STDAIR_ServicePtr_T ioSTDAIR_Service_ptr, <a name="l00151"></a>00151 <span class="keyword">const</span> <span class="keywordtype">bool</span> iOwnStdairService) { <a name="l00152"></a>00152 <a name="l00153"></a>00153 <span class="comment">// Retrieve the Airrac service context</span> <a name="l00154"></a>00154 assert (_airracServiceContext != NULL); <a name="l00155"></a>00155 AIRRAC_ServiceContext& lAIRRAC_ServiceContext = *_airracServiceContext; <a name="l00156"></a>00156 <a name="l00157"></a>00157 <span class="comment">// Store the STDAIR service object within the (AIRRAC) service context</span> <a name="l00158"></a>00158 lAIRRAC_ServiceContext.setSTDAIR_Service (ioSTDAIR_Service_ptr, <a name="l00159"></a>00159 iOwnStdairService); <a name="l00160"></a>00160 } <a name="l00161"></a>00161 <a name="l00162"></a>00162 <span class="comment">// ////////////////////////////////////////////////////////////////////</span> <a name="l00163"></a>00163 <span class="keywordtype">void</span> AIRRAC_Service::initAirracService() { <a name="l00164"></a>00164 <span class="comment">// Do nothing at this stage. A sample BOM tree may be built by</span> <a name="l00165"></a>00165 <span class="comment">// calling the buildSampleBom() method</span> <a name="l00166"></a>00166 } <a name="l00167"></a>00167 <a name="l00168"></a>00168 <span class="comment">// ////////////////////////////////////////////////////////////////////</span> <a name="l00169"></a>00169 <span class="keywordtype">void</span> <a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#a6160821dd3f1d7615f4d40fe05fb0a3c">AIRRAC_Service::</a> <a name="l00170"></a><a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#a6160821dd3f1d7615f4d40fe05fb0a3c">00170</a> <a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#a6160821dd3f1d7615f4d40fe05fb0a3c"> parseAndLoad</a> (<span class="keyword">const</span> <a class="code" href="classAIRRAC_1_1YieldFilePath.html">YieldFilePath</a>& iYieldFilename) { <a name="l00171"></a>00171 <a name="l00172"></a>00172 <span class="comment">// Retrieve the BOM root object.</span> <a name="l00173"></a>00173 assert (_airracServiceContext != NULL); <a name="l00174"></a>00174 <a class="code" href="classAIRRAC_1_1AIRRAC__ServiceContext.html" title="Inner class holding the context for the AIRRAC Service object.">AIRRAC_ServiceContext</a>& lAIRRAC_ServiceContext = *_airracServiceContext; <a name="l00175"></a>00175 stdair::STDAIR_Service& lSTDAIR_Service = <a name="l00176"></a>00176 lAIRRAC_ServiceContext.getSTDAIR_Service(); <a name="l00177"></a>00177 stdair::BomRoot& lBomRoot = lSTDAIR_Service.getBomRoot(); <a name="l00178"></a>00178 <a name="l00179"></a>00179 <span class="comment">// Initialise the airline inventories</span> <a name="l00180"></a>00180 <a class="code" href="classAIRRAC_1_1YieldParser.html#a9a68b26f86fbaeba7e4be87e02f2a2e0">YieldParser::generateYieldStore</a> (iYieldFilename, lBomRoot); <a name="l00181"></a>00181 } <a name="l00182"></a>00182 <a name="l00183"></a>00183 <span class="comment">// ////////////////////////////////////////////////////////////////////</span> <a name="l00184"></a><a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#a03d65f3cac0fb488ae3d309f09d76bff">00184</a> <span class="keywordtype">void</span> <a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#a03d65f3cac0fb488ae3d309f09d76bff">AIRRAC_Service::buildSampleBom</a>() { <a name="l00185"></a>00185 <a name="l00186"></a>00186 <span class="comment">// Retrieve the AirRAC service context</span> <a name="l00187"></a>00187 <span class="keywordflow">if</span> (_airracServiceContext == NULL) { <a name="l00188"></a>00188 <span class="keywordflow">throw</span> stdair::NonInitialisedServiceException (<span class="stringliteral">"The AirRAC service has not"</span> <a name="l00189"></a>00189 <span class="stringliteral">" been initialised"</span>); <a name="l00190"></a>00190 } <a name="l00191"></a>00191 assert (_airracServiceContext != NULL); <a name="l00192"></a>00192 <a name="l00193"></a>00193 <span class="comment">// Retrieve the AirRAC service context and whether it owns the Stdair</span> <a name="l00194"></a>00194 <span class="comment">// service</span> <a name="l00195"></a>00195 <a class="code" href="classAIRRAC_1_1AIRRAC__ServiceContext.html" title="Inner class holding the context for the AIRRAC Service object.">AIRRAC_ServiceContext</a>& lAIRRAC_ServiceContext = *_airracServiceContext; <a name="l00196"></a>00196 <span class="keyword">const</span> <span class="keywordtype">bool</span> doesOwnStdairService = <a name="l00197"></a>00197 lAIRRAC_ServiceContext.getOwnStdairServiceFlag(); <a name="l00198"></a>00198 <a name="l00199"></a>00199 <span class="comment">// Retrieve the StdAir service object from the (AirRAC) service context</span> <a name="l00200"></a>00200 stdair::STDAIR_Service& lSTDAIR_Service = <a name="l00201"></a>00201 lAIRRAC_ServiceContext.getSTDAIR_Service(); <a name="l00202"></a>00202 <a name="l00207"></a>00207 <span class="keywordflow">if</span> (doesOwnStdairService == <span class="keyword">true</span>) { <a name="l00208"></a>00208 <span class="comment">//</span> <a name="l00209"></a>00209 lSTDAIR_Service.buildSampleBom(); <a name="l00210"></a>00210 } <a name="l00211"></a>00211 <a name="l00227"></a>00227 } <a name="l00228"></a>00228 <a name="l00229"></a>00229 <span class="comment">// //////////////////////////////////////////////////////////////////////</span> <a name="l00230"></a>00230 <span class="keywordtype">void</span> <a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#a4926ec141f0f069e769396e136759761">AIRRAC_Service::</a> <a name="l00231"></a><a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#a4926ec141f0f069e769396e136759761">00231</a> <a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#a4926ec141f0f069e769396e136759761"> buildSampleTravelSolutions</a>(stdair::TravelSolutionList_T& ioTravelSolutionList){ <a name="l00232"></a>00232 <a name="l00233"></a>00233 <span class="comment">// Retrieve the AIRRAC service context</span> <a name="l00234"></a>00234 <span class="keywordflow">if</span> (_airracServiceContext == NULL) { <a name="l00235"></a>00235 <span class="keywordflow">throw</span> stdair::NonInitialisedServiceException (<span class="stringliteral">"The AirRAC service has not"</span> <a name="l00236"></a>00236 <span class="stringliteral">" been initialised"</span>); <a name="l00237"></a>00237 } <a name="l00238"></a>00238 assert (_airracServiceContext != NULL); <a name="l00239"></a>00239 <a name="l00240"></a>00240 <a class="code" href="classAIRRAC_1_1AIRRAC__ServiceContext.html" title="Inner class holding the context for the AIRRAC Service object.">AIRRAC_ServiceContext</a>& lAIRRAC_ServiceContext = *_airracServiceContext; <a name="l00241"></a>00241 <a name="l00242"></a>00242 <span class="comment">// Retrieve the STDAIR service object from the (AirRAC) service context</span> <a name="l00243"></a>00243 stdair::STDAIR_Service& lSTDAIR_Service = <a name="l00244"></a>00244 lAIRRAC_ServiceContext.getSTDAIR_Service(); <a name="l00245"></a>00245 <a name="l00246"></a>00246 <span class="comment">// Delegate the BOM building to the dedicated service</span> <a name="l00247"></a>00247 lSTDAIR_Service.buildSampleTravelSolutions (ioTravelSolutionList); <a name="l00248"></a>00248 } <a name="l00249"></a>00249 <a name="l00250"></a>00250 <span class="comment">// //////////////////////////////////////////////////////////////////////</span> <a name="l00251"></a><a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#af5ac937a8b6fad7a8a552e2ba321db27">00251</a> std::string <a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#af5ac937a8b6fad7a8a552e2ba321db27">AIRRAC_Service::csvDisplay</a>()<span class="keyword"> const </span>{ <a name="l00252"></a>00252 <a name="l00253"></a>00253 <span class="comment">// Retrieve the AIRRAC service context</span> <a name="l00254"></a>00254 <span class="keywordflow">if</span> (_airracServiceContext == NULL) { <a name="l00255"></a>00255 <span class="keywordflow">throw</span> stdair::NonInitialisedServiceException (<span class="stringliteral">"The Airrac service "</span> <a name="l00256"></a>00256 <span class="stringliteral">"has not been initialised"</span>); <a name="l00257"></a>00257 } <a name="l00258"></a>00258 assert (_airracServiceContext != NULL); <a name="l00259"></a>00259 <a name="l00260"></a>00260 <a class="code" href="classAIRRAC_1_1AIRRAC__ServiceContext.html" title="Inner class holding the context for the AIRRAC Service object.">AIRRAC_ServiceContext</a>& lAIRRAC_ServiceContext = *_airracServiceContext; <a name="l00261"></a>00261 <a name="l00262"></a>00262 <span class="comment">// Retrieve the STDAIR service object from the (Airrac) service context</span> <a name="l00263"></a>00263 stdair::STDAIR_Service& lSTDAIR_Service = <a name="l00264"></a>00264 lAIRRAC_ServiceContext.getSTDAIR_Service(); <a name="l00265"></a>00265 <a name="l00266"></a>00266 <span class="comment">// Get the root of the BOM tree, on which all of the other BOM objects</span> <a name="l00267"></a>00267 <span class="comment">// are attached</span> <a name="l00268"></a>00268 stdair::BomRoot& lBomRoot = lSTDAIR_Service.getBomRoot(); <a name="l00269"></a>00269 <a name="l00270"></a>00270 <span class="comment">// Delegate the BOM display to the dedicated service</span> <a name="l00271"></a>00271 std::ostringstream oCSVStr; <a name="l00272"></a>00272 stdair::BomDisplay::csvSimFQTAirRACDisplay (oCSVStr, lBomRoot); <a name="l00273"></a>00273 <span class="keywordflow">return</span> oCSVStr.str(); <a name="l00274"></a>00274 <a name="l00275"></a>00275 } <a name="l00276"></a>00276 <a name="l00277"></a>00277 <span class="comment">// //////////////////////////////////////////////////////////////////////</span> <a name="l00278"></a>00278 std::string <a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#af5ac937a8b6fad7a8a552e2ba321db27">AIRRAC_Service::</a> <a name="l00279"></a><a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#a9428368e890ac7feb489fcc9d284fd99">00279</a> <a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#af5ac937a8b6fad7a8a552e2ba321db27"> csvDisplay</a> (<span class="keyword">const</span> stdair::TravelSolutionList_T& ioTravelSolutionList)<span class="keyword"> const </span>{ <a name="l00280"></a>00280 <a name="l00281"></a>00281 <span class="comment">// Retrieve the AirRAC service context</span> <a name="l00282"></a>00282 <span class="keywordflow">if</span> (_airracServiceContext == NULL) { <a name="l00283"></a>00283 <span class="keywordflow">throw</span> stdair::NonInitialisedServiceException (<span class="stringliteral">"The AirRAC service has not"</span> <a name="l00284"></a>00284 <span class="stringliteral">" been initialised"</span>); <a name="l00285"></a>00285 } <a name="l00286"></a>00286 assert (_airracServiceContext != NULL); <a name="l00287"></a>00287 <a name="l00288"></a>00288 <span class="comment">// Retrieve the AirRAC service context</span> <a name="l00289"></a>00289 <a class="code" href="classAIRRAC_1_1AIRRAC__ServiceContext.html" title="Inner class holding the context for the AIRRAC Service object.">AIRRAC_ServiceContext</a>& lAIRRAC_ServiceContext = *_airracServiceContext; <a name="l00290"></a>00290 <a name="l00291"></a>00291 <span class="comment">// Retrieve the STDAIR service object from the (AirRAC) service context</span> <a name="l00292"></a>00292 stdair::STDAIR_Service& lSTDAIR_Service = <a name="l00293"></a>00293 lAIRRAC_ServiceContext.getSTDAIR_Service(); <a name="l00294"></a>00294 <a name="l00295"></a>00295 <span class="comment">// Delegate the BOM building to the dedicated service</span> <a name="l00296"></a>00296 <span class="keywordflow">return</span> lSTDAIR_Service.csvDisplay (ioTravelSolutionList); <a name="l00297"></a>00297 } <a name="l00298"></a>00298 <a name="l00299"></a>00299 <span class="comment">// ////////////////////////////////////////////////////////////////////</span> <a name="l00300"></a>00300 <span class="keywordtype">void</span> <a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#ad27f8f3e426ad14e5601969bcad3dfd4">AIRRAC_Service::</a> <a name="l00301"></a><a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#ad27f8f3e426ad14e5601969bcad3dfd4">00301</a> <a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#ad27f8f3e426ad14e5601969bcad3dfd4"> calculateYields</a> (stdair::TravelSolutionList_T& ioTravelSolutionList) { <a name="l00302"></a>00302 <a name="l00303"></a>00303 <span class="comment">// Retrieve the Airrac service context</span> <a name="l00304"></a>00304 <span class="keywordflow">if</span> (_airracServiceContext == NULL) { <a name="l00305"></a>00305 <span class="keywordflow">throw</span> stdair::NonInitialisedServiceException (<span class="stringliteral">"The AirRAC service has not"</span> <a name="l00306"></a>00306 <span class="stringliteral">" been initialised"</span>); <a name="l00307"></a>00307 } <a name="l00308"></a>00308 assert (_airracServiceContext != NULL); <a name="l00309"></a>00309 <a class="code" href="classAIRRAC_1_1AIRRAC__ServiceContext.html" title="Inner class holding the context for the AIRRAC Service object.">AIRRAC_ServiceContext</a>& lAIRRAC_ServiceContext = *_airracServiceContext; <a name="l00310"></a>00310 <a name="l00311"></a>00311 <span class="comment">// Retrieve the StdAir service context</span> <a name="l00312"></a>00312 stdair::STDAIR_Service& lSTDAIR_Service = <a name="l00313"></a>00313 lAIRRAC_ServiceContext.getSTDAIR_Service(); <a name="l00314"></a>00314 <a name="l00315"></a>00315 <span class="comment">// Get the root of the BOM tree, on which all of the other BOM objects</span> <a name="l00316"></a>00316 <span class="comment">// will be attached</span> <a name="l00317"></a>00317 stdair::BomRoot& lBomRoot = lSTDAIR_Service.getBomRoot(); <a name="l00318"></a>00318 <a name="l00319"></a>00319 <span class="comment">// Delegate the booking to the dedicated command: set the yields</span> <a name="l00320"></a>00320 <span class="comment">// for each travel solution of the given list</span> <a name="l00321"></a>00321 stdair::BasChronometer lYieldChronometer; <a name="l00322"></a>00322 lYieldChronometer.start(); <a name="l00323"></a>00323 YieldManager::calculateYield (ioTravelSolutionList, lBomRoot); <a name="l00324"></a>00324 <span class="keyword">const</span> <span class="keywordtype">double</span> lYieldMeasure = lYieldChronometer.elapsed(); <a name="l00325"></a>00325 <a name="l00326"></a>00326 <span class="comment">// DEBUG</span> <a name="l00327"></a>00327 STDAIR_LOG_DEBUG (<span class="stringliteral">"Yield calculation: "</span> << lYieldMeasure << <span class="stringliteral">" - "</span> <a name="l00328"></a>00328 << lAIRRAC_ServiceContext.display()); <a name="l00329"></a>00329 } <a name="l00330"></a>00330 <a name="l00331"></a>00331 <span class="comment">// ////////////////////////////////////////////////////////////////////</span> <a name="l00332"></a><a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#abb6a17d042a47b961fcafccfa0ffe58e">00332</a> <span class="keywordtype">void</span> <a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#abb6a17d042a47b961fcafccfa0ffe58e">AIRRAC_Service::updateYields</a> () { <a name="l00333"></a>00333 <span class="comment">// Retrieve the AirRAC service context</span> <a name="l00334"></a>00334 assert (_airracServiceContext != NULL); <a name="l00335"></a>00335 <a class="code" href="classAIRRAC_1_1AIRRAC__ServiceContext.html" title="Inner class holding the context for the AIRRAC Service object.">AIRRAC_ServiceContext</a>& lAIRRAC_ServiceContext = *_airracServiceContext; <a name="l00336"></a>00336 <a name="l00337"></a>00337 <span class="comment">// Retrieve the StdAir service context</span> <a name="l00338"></a>00338 stdair::STDAIR_Service& lSTDAIR_Service = <a name="l00339"></a>00339 lAIRRAC_ServiceContext.getSTDAIR_Service(); <a name="l00340"></a>00340 <a name="l00341"></a>00341 <span class="comment">// Get the root of the BOM tree, on which all of the other BOM objects</span> <a name="l00342"></a>00342 <span class="comment">// will be attached</span> <a name="l00343"></a>00343 stdair::BomRoot& lBomRoot = lSTDAIR_Service.getBomRoot(); <a name="l00344"></a>00344 <a name="l00345"></a>00345 <span class="comment">// Update the default yields to the booking classes.</span> <a name="l00346"></a>00346 <a class="code" href="classAIRRAC_1_1AIRRAC__Service.html#abb6a17d042a47b961fcafccfa0ffe58e">YieldManager::updateYields</a> (lBomRoot); <a name="l00347"></a>00347 } <a name="l00348"></a>00348 } </pre></div></div> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="AIRRAC__Service_8cpp.html">AIRRAC_Service.cpp</a> </li> <!-- 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Defines</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> <li class="footer">Generated on Tue Dec 6 2011 14:11:38 for AirRAC by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.5 </li> <li class="footer"> <a href="http://sourceforge.net/projects/airrac"><img class="footer" src="http://sflogo.sourceforge.net/sflogo.php?group_id=317250&type=12&format=.png" alt="SourceForge Logo"></a> </li> </ul> </div> </body> </html>