Files
bootloader/doc/host_html/classblfwk_1_1_source_file.html
László Monda e6c1fce5b4 Add KBOOT.
2016-08-10 01:45:15 +02:00

532 lines
39 KiB
HTML

<!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 http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Kinetis Bootloader Host: blfwk::SourceFile Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.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/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="nxp_logo_small.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Kinetis Bootloader Host
&#160;<span id="projectnumber">2.0.0</span>
</div>
<div id="projectbrief">Host Tools for Kinetis devices</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<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>Introduction</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</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="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></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('classblfwk_1_1_source_file.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)">
</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="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classblfwk_1_1_source_file-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">blfwk::SourceFile Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Abstract base class for a source file containing executable code.
<a href="classblfwk_1_1_source_file.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="src_2blfwk_2_source_file_8h_source.html">SourceFile.h</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for blfwk::SourceFile:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="classblfwk_1_1_source_file__inherit__graph.svg" width="538" height="190"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for blfwk::SourceFile:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="classblfwk_1_1_source_file__coll__graph.svg" width="500" height="579"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:adae94562410f32ab49ebd3275b733998"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#adae94562410f32ab49ebd3275b733998">source_file_t</a> { <br />
&#160;&#160;<a class="el" href="classblfwk_1_1_source_file.html#adae94562410f32ab49ebd3275b733998a5db2add13330cd84a585fcaed48aa869">kBinarySourceFile</a>,
<br />
&#160;&#160;<a class="el" href="classblfwk_1_1_source_file.html#adae94562410f32ab49ebd3275b733998a87d9f3d7198bfc4fb3f060e0e5443b72">kELFSourceFile</a>,
<br />
&#160;&#160;<a class="el" href="classblfwk_1_1_source_file.html#adae94562410f32ab49ebd3275b733998a0ddf54173856700b914bf86d73ebc6a1">kIntelHexSourceFile</a>,
<br />
&#160;&#160;<a class="el" href="classblfwk_1_1_source_file.html#adae94562410f32ab49ebd3275b733998aa2bf9a344afe3034a1f6f61eac3d5a05">kSBSourceFile</a>,
<br />
&#160;&#160;<a class="el" href="classblfwk_1_1_source_file.html#adae94562410f32ab49ebd3275b733998a69c6137855aa55ef0489be8280fb4292">kSRecordSourceFile</a>
<br />
}<tr class="memdesc:adae94562410f32ab49ebd3275b733998"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set of supported executable image file formats. <a href="classblfwk_1_1_source_file.html#adae94562410f32ab49ebd3275b733998">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:adae94562410f32ab49ebd3275b733998"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa1725fc0dd2bfb273368aeff942000c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa1725fc0dd2bfb273368aeff942000c8"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#aa1725fc0dd2bfb273368aeff942000c8">SourceFile</a> (const std::string &amp;path, <a class="el" href="classblfwk_1_1_source_file.html#adae94562410f32ab49ebd3275b733998">source_file_t</a> filetype)</td></tr>
<tr class="memdesc:aa1725fc0dd2bfb273368aeff942000c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
<tr class="separator:aa1725fc0dd2bfb273368aeff942000c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb46a420d0bd2070581c66d9da5e0bf4"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#acb46a420d0bd2070581c66d9da5e0bf4">~SourceFile</a> ()</td></tr>
<tr class="memdesc:acb46a420d0bd2070581c66d9da5e0bf4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="#acb46a420d0bd2070581c66d9da5e0bf4">More...</a><br /></td></tr>
<tr class="separator:acb46a420d0bd2070581c66d9da5e0bf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7c3cda0a5cb1eb29c1c12ff380b06c0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#ae7c3cda0a5cb1eb29c1c12ff380b06c0">setOptions</a> (<a class="el" href="classblfwk_1_1_option_context.html">OptionContext</a> *context)</td></tr>
<tr class="memdesc:ae7c3cda0a5cb1eb29c1c12ff380b06c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the option context. <a href="#ae7c3cda0a5cb1eb29c1c12ff380b06c0">More...</a><br /></td></tr>
<tr class="separator:ae7c3cda0a5cb1eb29c1c12ff380b06c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53f5dab50e8fecb2d4d7ec53b45fabc1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a53f5dab50e8fecb2d4d7ec53b45fabc1"></a>
const <a class="el" href="classblfwk_1_1_option_context.html">OptionContext</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#a53f5dab50e8fecb2d4d7ec53b45fabc1">getOptions</a> () const </td></tr>
<tr class="memdesc:a53f5dab50e8fecb2d4d7ec53b45fabc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the option context. <br /></td></tr>
<tr class="separator:a53f5dab50e8fecb2d4d7ec53b45fabc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1133162fe35fd5139a8105ef18076c4f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1133162fe35fd5139a8105ef18076c4f"></a>
<a class="el" href="classblfwk_1_1_source_file.html#adae94562410f32ab49ebd3275b733998">source_file_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#a1133162fe35fd5139a8105ef18076c4f">getFileType</a> () const </td></tr>
<tr class="memdesc:a1133162fe35fd5139a8105ef18076c4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the file type. <br /></td></tr>
<tr class="separator:a1133162fe35fd5139a8105ef18076c4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9724c2d6fcf119f1617274e39fad3581"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9724c2d6fcf119f1617274e39fad3581"></a>
const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#a9724c2d6fcf119f1617274e39fad3581">getPath</a> () const </td></tr>
<tr class="memdesc:a9724c2d6fcf119f1617274e39fad3581"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the path to the file. <br /></td></tr>
<tr class="separator:a9724c2d6fcf119f1617274e39fad3581"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82a95e9ec0b19b5e2851647dad25b911"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a82a95e9ec0b19b5e2851647dad25b911"></a>
unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#a82a95e9ec0b19b5e2851647dad25b911">getSize</a> () const </td></tr>
<tr class="memdesc:a82a95e9ec0b19b5e2851647dad25b911"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size in bytes of the file. <br /></td></tr>
<tr class="separator:a82a95e9ec0b19b5e2851647dad25b911"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Opening and closing</div></td></tr>
<tr class="memitem:adca85268a0c1382d42b9380ffe31c39e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#adca85268a0c1382d42b9380ffe31c39e">open</a> ()</td></tr>
<tr class="memdesc:adca85268a0c1382d42b9380ffe31c39e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens the file. <a href="#adca85268a0c1382d42b9380ffe31c39e">More...</a><br /></td></tr>
<tr class="separator:adca85268a0c1382d42b9380ffe31c39e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a7c83d27c642615ae2c8bbf46fc025d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0a7c83d27c642615ae2c8bbf46fc025d"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#a0a7c83d27c642615ae2c8bbf46fc025d">close</a> ()</td></tr>
<tr class="memdesc:a0a7c83d27c642615ae2c8bbf46fc025d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes the file. <br /></td></tr>
<tr class="separator:a0a7c83d27c642615ae2c8bbf46fc025d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8919b8da1fbd6fa9ec6bac03e07f4ef7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8919b8da1fbd6fa9ec6bac03e07f4ef7"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#a8919b8da1fbd6fa9ec6bac03e07f4ef7">isOpen</a> () const </td></tr>
<tr class="memdesc:a8919b8da1fbd6fa9ec6bac03e07f4ef7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the file is already open. <br /></td></tr>
<tr class="separator:a8919b8da1fbd6fa9ec6bac03e07f4ef7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Format capabilities</div></td></tr>
<tr class="memitem:a200d470901aab4e53cff7be5c7aec4e1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a200d470901aab4e53cff7be5c7aec4e1"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>supportsNamedSections</b> () const =0</td></tr>
<tr class="separator:a200d470901aab4e53cff7be5c7aec4e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ecbfdeeb87b60b8b678b7b33a679972"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5ecbfdeeb87b60b8b678b7b33a679972"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>supportsNamedSymbols</b> () const =0</td></tr>
<tr class="separator:a5ecbfdeeb87b60b8b678b7b33a679972"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Data source creation</div></td></tr>
<tr class="memitem:af57254c687966a6fe0ce11b3eee05f46"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af57254c687966a6fe0ce11b3eee05f46"></a>
virtual <a class="el" href="classblfwk_1_1_data_source.html">DataSource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#af57254c687966a6fe0ce11b3eee05f46">createDataSource</a> ()=0</td></tr>
<tr class="memdesc:af57254c687966a6fe0ce11b3eee05f46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a data source from the entire file. <br /></td></tr>
<tr class="separator:af57254c687966a6fe0ce11b3eee05f46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a133cf25e96d7526b2bad4dabf2d3374c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classblfwk_1_1_data_source.html">DataSource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#a133cf25e96d7526b2bad4dabf2d3374c">createDataSource</a> (<a class="el" href="classblfwk_1_1_string_matcher.html">StringMatcher</a> &amp;matcher)</td></tr>
<tr class="memdesc:a133cf25e96d7526b2bad4dabf2d3374c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a data source out of one or more sections of the file. <a href="#a133cf25e96d7526b2bad4dabf2d3374c">More...</a><br /></td></tr>
<tr class="separator:a133cf25e96d7526b2bad4dabf2d3374c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1560a6ef0141423d6e4978d67f8468f6"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classblfwk_1_1_data_source.html">DataSource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#a1560a6ef0141423d6e4978d67f8468f6">createDataSource</a> (const std::string &amp;section)</td></tr>
<tr class="memdesc:a1560a6ef0141423d6e4978d67f8468f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a data source out of one section of the file. <a href="#a1560a6ef0141423d6e4978d67f8468f6">More...</a><br /></td></tr>
<tr class="separator:a1560a6ef0141423d6e4978d67f8468f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Entry point</div></td></tr>
<tr class="memitem:a96faa0343f122e994890dd4054f5dbbf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a96faa0343f122e994890dd4054f5dbbf"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#a96faa0343f122e994890dd4054f5dbbf">hasEntryPoint</a> ()=0</td></tr>
<tr class="memdesc:a96faa0343f122e994890dd4054f5dbbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if an entry point was set in the file. <br /></td></tr>
<tr class="separator:a96faa0343f122e994890dd4054f5dbbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af057132271f46e08c8c9e54ca04a773a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af057132271f46e08c8c9e54ca04a773a"></a>
virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#af057132271f46e08c8c9e54ca04a773a">getEntryPointAddress</a> ()</td></tr>
<tr class="memdesc:af057132271f46e08c8c9e54ca04a773a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the entry point address. <br /></td></tr>
<tr class="separator:af057132271f46e08c8c9e54ca04a773a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Data target creation</div></td></tr>
<tr class="memitem:a0c6c26132f1c024fdd0a71580a6b9e23"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0c6c26132f1c024fdd0a71580a6b9e23"></a>
virtual <a class="el" href="classblfwk_1_1_data_target.html">DataTarget</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>createDataTargetForSection</b> (const std::string &amp;section)</td></tr>
<tr class="separator:a0c6c26132f1c024fdd0a71580a6b9e23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f7a5fca0207d2960b56defbb557f7f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5f7a5fca0207d2960b56defbb557f7f3"></a>
virtual <a class="el" href="classblfwk_1_1_data_target.html">DataTarget</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>createDataTargetForSymbol</b> (const std::string &amp;symbol)</td></tr>
<tr class="separator:a5f7a5fca0207d2960b56defbb557f7f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93b7c1e8e1b3f0b9eaa5d7ecd038718a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a93b7c1e8e1b3f0b9eaa5d7ecd038718a"></a>
virtual <a class="el" href="classblfwk_1_1_data_target.html">DataTarget</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>createDataTargetForEntryPoint</b> ()</td></tr>
<tr class="separator:a93b7c1e8e1b3f0b9eaa5d7ecd038718a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Symbols</div></td></tr>
<tr class="memitem:a7c4c0f799bc15ac74739197b9a16bf0b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c4c0f799bc15ac74739197b9a16bf0b"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#a7c4c0f799bc15ac74739197b9a16bf0b">hasSymbol</a> (const std::string &amp;name)</td></tr>
<tr class="memdesc:a7c4c0f799bc15ac74739197b9a16bf0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether a symbol exists in the source file. <br /></td></tr>
<tr class="separator:a7c4c0f799bc15ac74739197b9a16bf0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af45e73f6dc5da4cdfb503c97e5ab8e6a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af45e73f6dc5da4cdfb503c97e5ab8e6a"></a>
virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#af45e73f6dc5da4cdfb503c97e5ab8e6a">getSymbolValue</a> (const std::string &amp;name)</td></tr>
<tr class="memdesc:af45e73f6dc5da4cdfb503c97e5ab8e6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of a symbol. <br /></td></tr>
<tr class="separator:af45e73f6dc5da4cdfb503c97e5ab8e6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a895a7375d01aaed725dba7524325a36a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a895a7375d01aaed725dba7524325a36a"></a>
virtual unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#a895a7375d01aaed725dba7524325a36a">getSymbolSize</a> (const std::string &amp;name)</td></tr>
<tr class="memdesc:a895a7375d01aaed725dba7524325a36a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the size of a symbol. <br /></td></tr>
<tr class="separator:a895a7375d01aaed725dba7524325a36a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a32cff59ce3a989ccf10b25be0c4a12ef"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classblfwk_1_1_source_file.html">SourceFile</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#a32cff59ce3a989ccf10b25be0c4a12ef">openFile</a> (const std::string &amp;path)</td></tr>
<tr class="separator:a32cff59ce3a989ccf10b25be0c4a12ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a6d5c6fc36abf7fe67de1b18b25a78265"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d5c6fc36abf7fe67de1b18b25a78265"></a>
std::ifstream *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#a6d5c6fc36abf7fe67de1b18b25a78265">getStream</a> ()</td></tr>
<tr class="memdesc:a6d5c6fc36abf7fe67de1b18b25a78265"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal access to the input stream object. <br /></td></tr>
<tr class="separator:a6d5c6fc36abf7fe67de1b18b25a78265"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a7dfdeceff75c2ddb09de5bfd68730b2e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7dfdeceff75c2ddb09de5bfd68730b2e"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#a7dfdeceff75c2ddb09de5bfd68730b2e">m_path</a></td></tr>
<tr class="memdesc:a7dfdeceff75c2ddb09de5bfd68730b2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Path to the file. <br /></td></tr>
<tr class="separator:a7dfdeceff75c2ddb09de5bfd68730b2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2de3d6cf300bf5b26d83a7e1347aa98b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2de3d6cf300bf5b26d83a7e1347aa98b"></a>
<a class="el" href="group__smart__pointer.html#classsmart__ptr">smart_ptr</a>&lt; std::ifstream &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#a2de3d6cf300bf5b26d83a7e1347aa98b">m_stream</a></td></tr>
<tr class="memdesc:a2de3d6cf300bf5b26d83a7e1347aa98b"><td class="mdescLeft">&#160;</td><td class="mdescRight">File stream, or NULL if file is closed. <br /></td></tr>
<tr class="separator:a2de3d6cf300bf5b26d83a7e1347aa98b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea6f50965d574aa5292423ccc6da9e92"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aea6f50965d574aa5292423ccc6da9e92"></a>
<a class="el" href="group__smart__pointer.html#classsmart__ptr">smart_ptr</a>&lt; <a class="el" href="classblfwk_1_1_option_context.html">OptionContext</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#aea6f50965d574aa5292423ccc6da9e92">m_options</a></td></tr>
<tr class="memdesc:aea6f50965d574aa5292423ccc6da9e92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Table of option values. <br /></td></tr>
<tr class="separator:aea6f50965d574aa5292423ccc6da9e92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83beca715b2d74393e260424308752c9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a83beca715b2d74393e260424308752c9"></a>
<a class="el" href="classblfwk_1_1_source_file.html#adae94562410f32ab49ebd3275b733998">source_file_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#a83beca715b2d74393e260424308752c9">m_filetype</a></td></tr>
<tr class="memdesc:a83beca715b2d74393e260424308752c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Image file type. <br /></td></tr>
<tr class="separator:a83beca715b2d74393e260424308752c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6d6f53487bc9f00f78c1d72134cfcf2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad6d6f53487bc9f00f78c1d72134cfcf2"></a>
unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_source_file.html#ad6d6f53487bc9f00f78c1d72134cfcf2">m_size</a></td></tr>
<tr class="memdesc:ad6d6f53487bc9f00f78c1d72134cfcf2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size in bytes of the file. <br /></td></tr>
<tr class="separator:ad6d6f53487bc9f00f78c1d72134cfcf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Abstract base class for a source file containing executable code. </p>
<p>The purpose of this class cluster is to provide a common interface for accessing the contents of different file formats. This is accomplished through several small sets of methods along with the <a class="el" href="classblfwk_1_1_data_source.html" title="Abstract base class for data sources. ">DataSource</a> and <a class="el" href="classblfwk_1_1_data_target.html" title="Abstract base class for the target address or range of data. ">DataTarget</a> classes.</p>
<p>The primary interface for creating instances of <a class="el" href="classblfwk_1_1_source_file.html" title="Abstract base class for a source file containing executable code. ">SourceFile</a> is the static <a class="el" href="classblfwk_1_1_source_file.html#a32cff59ce3a989ccf10b25be0c4a12ef">SourceFile::openFile()</a> function. It will create the correct subclass of <a class="el" href="classblfwk_1_1_source_file.html" title="Abstract base class for a source file containing executable code. ">SourceFile</a> by inspecting the file to determine its type. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a class="anchor" id="adae94562410f32ab49ebd3275b733998"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="classblfwk_1_1_source_file.html#adae94562410f32ab49ebd3275b733998">blfwk::SourceFile::source_file_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set of supported executable image file formats. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="adae94562410f32ab49ebd3275b733998a5db2add13330cd84a585fcaed48aa869"></a>kBinarySourceFile&#160;</td><td class="fielddoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classblfwk_1_1_binary_source_file.html" title="Binary data file. ">blfwk::BinarySourceFile</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adae94562410f32ab49ebd3275b733998a87d9f3d7198bfc4fb3f060e0e5443b72"></a>kELFSourceFile&#160;</td><td class="fielddoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classblfwk_1_1_e_l_f_source_file.html" title="Executable and Loading Format (ELF) source file. ">blfwk::ELFSourceFile</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adae94562410f32ab49ebd3275b733998a0ddf54173856700b914bf86d73ebc6a1"></a>kIntelHexSourceFile&#160;</td><td class="fielddoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classblfwk_1_1_intel_hex_source_file.html" title="Executable file in the Intel Hex format. ">blfwk::IntelHexSourceFile</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adae94562410f32ab49ebd3275b733998aa2bf9a344afe3034a1f6f61eac3d5a05"></a>kSBSourceFile&#160;</td><td class="fielddoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classblfwk_1_1_s_b_source_file.html" title="SB Format (SB) source file. ">blfwk::SBSourceFile</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adae94562410f32ab49ebd3275b733998a69c6137855aa55ef0489be8280fb4292"></a>kSRecordSourceFile&#160;</td><td class="fielddoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classblfwk_1_1_s_record_source_file.html" title="Executable file in the Motorola S-record format. ">blfwk::SRecordSourceFile</a> </dd></dl>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="acb46a420d0bd2070581c66d9da5e0bf4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">SourceFile::~SourceFile </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destructor. </p>
<p>The file is closed if it had been left opened. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a133cf25e96d7526b2bad4dabf2d3374c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classblfwk_1_1_data_source.html">DataSource</a>* blfwk::SourceFile::createDataSource </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classblfwk_1_1_string_matcher.html">StringMatcher</a> &amp;&#160;</td>
<td class="paramname"><em>matcher</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a data source out of one or more sections of the file. </p>
<p>The <em>selector</em> object is used to perform the section name comparison. If the file does not support named sections, or if there is not a section with the given name, this method may return NULL. </p>
<p>Reimplemented in <a class="el" href="classblfwk_1_1_e_l_f_source_file.html#a51621a76d70e9194646e3a3ef9f2f73d">blfwk::ELFSourceFile</a>.</p>
</div>
</div>
<a class="anchor" id="a1560a6ef0141423d6e4978d67f8468f6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classblfwk_1_1_data_source.html">DataSource</a> * SourceFile::createDataSource </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>section</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a data source out of one section of the file. </p>
<p>If the file does not support named sections, or if there is not a section with the given name, this method may return NULL.</p>
<p>This method is just a small wrapper that creates an <a class="el" href="classblfwk_1_1_fixed_matcher.html" title="Simple string matcher that compares against a fixed value. ">FixedMatcher</a> string matcher instance and uses the <a class="el" href="classblfwk_1_1_source_file.html#af57254c687966a6fe0ce11b3eee05f46" title="Creates a data source from the entire file. ">createDataSource()</a> that takes a reference to a <a class="el" href="classblfwk_1_1_string_matcher.html" title="Abstract interface class used to select strings by name. ">StringMatcher</a>. </p>
</div>
</div>
<a class="anchor" id="adca85268a0c1382d42b9380ffe31c39e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SourceFile::open </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Opens the file. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>Raised if the file could not be opened successfully. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented in <a class="el" href="classblfwk_1_1_e_l_f_source_file.html#a4c7b543224830d2f3cb084dc80f28bca">blfwk::ELFSourceFile</a>, <a class="el" href="classblfwk_1_1_s_record_source_file.html#a3a32228816e4c894a6f959098e363a9f">blfwk::SRecordSourceFile</a>, and <a class="el" href="classblfwk_1_1_intel_hex_source_file.html#a70513fef51080b158ea5d2e349cf5048">blfwk::IntelHexSourceFile</a>.</p>
</div>
</div>
<a class="anchor" id="a32cff59ce3a989ccf10b25be0c4a12ef"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classblfwk_1_1_source_file.html">SourceFile</a> * SourceFile::openFile </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>path</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The supported file types are currently:</p><ul>
<li>ELF files</li>
<li>Motorola S-record files</li>
<li>Binary files</li>
<li>SB files</li>
<li>Intel Hex files</li>
</ul>
<p>Any file that is not picked up by the other subclasses will result in a an instance of BinaryDataFile.</p>
<dl class="section return"><dt>Returns</dt><dd>An instance of the correct subclass of <a class="el" href="classblfwk_1_1_source_file.html" title="Abstract base class for a source file containing executable code. ">SourceFile</a> for the given path.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>Thrown if the file cannot be opened.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classblfwk_1_1_e_l_f_source_file.html" title="Executable and Loading Format (ELF) source file. ">blfwk::ELFSourceFile</a> </dd>
<dd>
<a class="el" href="classblfwk_1_1_s_record_source_file.html" title="Executable file in the Motorola S-record format. ">blfwk::SRecordSourceFile</a> </dd>
<dd>
<a class="el" href="classblfwk_1_1_binary_source_file.html" title="Binary data file. ">blfwk::BinarySourceFile</a> </dd>
<dd>
<a class="el" href="classblfwk_1_1_s_b_source_file.html" title="SB Format (SB) source file. ">blfwk::SBSourceFile</a> </dd>
<dd>
<a class="el" href="classblfwk_1_1_intel_hex_source_file.html" title="Executable file in the Intel Hex format. ">blfwk::IntelHexSourceFile</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ae7c3cda0a5cb1eb29c1c12ff380b06c0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void blfwk::SourceFile::setOptions </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classblfwk_1_1_option_context.html">OptionContext</a> *&#160;</td>
<td class="paramname"><em>context</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the option context. </p>
<p>The source file will take ownership of the <em>context</em> and delete it when the source file is itself deleted. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="src_2blfwk_2_source_file_8h_source.html">src/blfwk/SourceFile.h</a></li>
<li>src/blfwk/src/SourceFile.cpp</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>blfwk</b></li><li class="navelem"><a class="el" href="classblfwk_1_1_source_file.html">SourceFile</a></li>
<li class="footer">Generated on Mon Mar 7 2016 16:49:51 for Kinetis Bootloader Host by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
</ul>
</div>
</body>
</html>