EVOLUTION-MANAGER
Edit File: classDDFRecord.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.5"/> <title>ISO8211Lib: DDFRecord 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="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 style="padding-left: 0.5em;"> <div id="projectname">ISO8211Lib </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> <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 class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="classDDFRecord-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">DDFRecord Class Reference</div> </div> </div><!--header--> <div class="contents"> <p><code>#include <<a class="el" href="iso8211_8h_source.html">iso8211.h</a>></code></p> <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:a8a243fb41033a70db9a99b8984c1f352"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDDFRecord.html">DDFRecord</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#a8a243fb41033a70db9a99b8984c1f352">Clone</a> ()</td></tr> <tr class="separator:a8a243fb41033a70db9a99b8984c1f352"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acf505e128d8e164056abc75511330abe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDDFRecord.html">DDFRecord</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#acf505e128d8e164056abc75511330abe">CloneOn</a> (<a class="el" href="classDDFModule.html">DDFModule</a> *)</td></tr> <tr class="separator:acf505e128d8e164056abc75511330abe"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab0ca462b4d5b4b57ad079ed7bc2d1d18"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#ab0ca462b4d5b4b57ad079ed7bc2d1d18">Dump</a> (FILE *)</td></tr> <tr class="separator:ab0ca462b4d5b4b57ad079ed7bc2d1d18"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a727954617b99da01d2797568859cb0f0"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#a727954617b99da01d2797568859cb0f0">GetFieldCount</a> () const </td></tr> <tr class="separator:a727954617b99da01d2797568859cb0f0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4e8fd2dfba6339f0e02f2d7f9a6932a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDDFField.html">DDFField</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#a4e8fd2dfba6339f0e02f2d7f9a6932a1">FindField</a> (const char *, int=0)</td></tr> <tr class="separator:a4e8fd2dfba6339f0e02f2d7f9a6932a1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a304aff436017b95527a0d6df2c1820ee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDDFField.html">DDFField</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#a304aff436017b95527a0d6df2c1820ee">GetField</a> (int)</td></tr> <tr class="separator:a304aff436017b95527a0d6df2c1820ee"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aeb15a9b69025c31bd754c006b1de306c"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#aeb15a9b69025c31bd754c006b1de306c">GetIntSubfield</a> (const char *, int, const char *, int, int *=nullptr)</td></tr> <tr class="separator:aeb15a9b69025c31bd754c006b1de306c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8d3c56d3292621509a123f2a7ebdb5ac"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#a8d3c56d3292621509a123f2a7ebdb5ac">GetFloatSubfield</a> (const char *, int, const char *, int, int *=nullptr)</td></tr> <tr class="separator:a8d3c56d3292621509a123f2a7ebdb5ac"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7ae61be5c90df8a547813f32b09a8ecd"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#a7ae61be5c90df8a547813f32b09a8ecd">GetStringSubfield</a> (const char *, int, const char *, int, int *=nullptr)</td></tr> <tr class="separator:a7ae61be5c90df8a547813f32b09a8ecd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7041fdadfd37957174adb0151252ec43"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#a7041fdadfd37957174adb0151252ec43">SetIntSubfield</a> (const char *pszField, int iFieldIndex, const char *pszSubfield, int iSubfieldIndex, int nValue)</td></tr> <tr class="separator:a7041fdadfd37957174adb0151252ec43"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa624b9531c6e01ffce9a6feab1dcbf2f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#aa624b9531c6e01ffce9a6feab1dcbf2f">SetStringSubfield</a> (const char *pszField, int iFieldIndex, const char *pszSubfield, int iSubfieldIndex, const char *pszValue, int nValueLength=-1)</td></tr> <tr class="separator:aa624b9531c6e01ffce9a6feab1dcbf2f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae20d96b1a92e826b1c379ef1893c7c5c"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#ae20d96b1a92e826b1c379ef1893c7c5c">SetFloatSubfield</a> (const char *pszField, int iFieldIndex, const char *pszSubfield, int iSubfieldIndex, double dfNewValue)</td></tr> <tr class="separator:ae20d96b1a92e826b1c379ef1893c7c5c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afc6f767e085bda281f048a3d93bceaff"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#afc6f767e085bda281f048a3d93bceaff">GetDataSize</a> () const </td></tr> <tr class="separator:afc6f767e085bda281f048a3d93bceaff"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7c54f9f861d4301ff20aef781a1a6817"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#a7c54f9f861d4301ff20aef781a1a6817">GetData</a> () const </td></tr> <tr class="separator:a7c54f9f861d4301ff20aef781a1a6817"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa3af65fd52e8a2a0fa21071216cdb050"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDDFModule.html">DDFModule</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#aa3af65fd52e8a2a0fa21071216cdb050">GetModule</a> ()</td></tr> <tr class="separator:aa3af65fd52e8a2a0fa21071216cdb050"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abba3ff29671aa53cc8710f10cc8c0efb"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#abba3ff29671aa53cc8710f10cc8c0efb">ResizeField</a> (<a class="el" href="classDDFField.html">DDFField</a> *poField, int nNewDataSize)</td></tr> <tr class="separator:abba3ff29671aa53cc8710f10cc8c0efb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a56bbf45471c03822b925a90dc153ca60"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#a56bbf45471c03822b925a90dc153ca60">DeleteField</a> (<a class="el" href="classDDFField.html">DDFField</a> *poField)</td></tr> <tr class="separator:a56bbf45471c03822b925a90dc153ca60"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a37f6acc612998cfd3d64bc3f9dc3bc5c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDDFField.html">DDFField</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#a37f6acc612998cfd3d64bc3f9dc3bc5c">AddField</a> (<a class="el" href="classDDFFieldDefn.html">DDFFieldDefn</a> *)</td></tr> <tr class="separator:a37f6acc612998cfd3d64bc3f9dc3bc5c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9f2b3fcc7fa05cf5a234fea04fd5b407"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#a9f2b3fcc7fa05cf5a234fea04fd5b407">CreateDefaultFieldInstance</a> (<a class="el" href="classDDFField.html">DDFField</a> *poField, int iIndexWithinField)</td></tr> <tr class="separator:a9f2b3fcc7fa05cf5a234fea04fd5b407"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6d4c805ce592dc1bc70e601858f4da1b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#a6d4c805ce592dc1bc70e601858f4da1b">SetFieldRaw</a> (<a class="el" href="classDDFField.html">DDFField</a> *poField, int iIndexWithinField, const char *pachRawData, int nRawDataSize)</td></tr> <tr class="separator:a6d4c805ce592dc1bc70e601858f4da1b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a41782abc633cba1cdb6a6bcecbaafd84"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classDDFRecord.html#a41782abc633cba1cdb6a6bcecbaafd84">Write</a> ()</td></tr> <tr class="separator:a41782abc633cba1cdb6a6bcecbaafd84"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Contains instance data from one data record (DR). The data is contained as a list of <a class="el" href="classDDFField.html">DDFField</a> instances partitioning the raw data into fields. </p> </div><h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="a37f6acc612998cfd3d64bc3f9dc3bc5c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classDDFField.html">DDFField</a> * DDFRecord::AddField </td> <td>(</td> <td class="paramtype"><a class="el" href="classDDFFieldDefn.html">DDFFieldDefn</a> * </td> <td class="paramname"><em>poDefn</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Add a new field to record.</p> <p>Add a new zero sized field to the record. The new field is always added at the end of the record.</p> <p>NOTE: This method doesn't currently update the header information for the record to include the field information for this field, so the resulting record image isn't suitable for writing to disk. However, everything else about the record state should be updated properly to reflect the new field.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">poDefn</td><td>the definition of the field to be added.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the field object on success, or NULL on failure. </dd></dl> </div> </div> <a class="anchor" id="a8a243fb41033a70db9a99b8984c1f352"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classDDFRecord.html">DDFRecord</a> * DDFRecord::Clone </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Make a copy of a record.</p> <p>This method is used to make a copy of a record that will become (mostly) the properly of application. However, it is automatically destroyed if the <a class="el" href="classDDFModule.html">DDFModule</a> it was created relative to is destroyed, as its field and subfield definitions relate to that <a class="el" href="classDDFModule.html">DDFModule</a>. However, it does persist even when the record returned by <a class="el" href="classDDFModule.html#a2922aa33316aec6a3d4781b77e531eae">DDFModule::ReadRecord()</a> is invalidated, such as when reading a new record. This allows an application to cache whole DDFRecords.</p> <dl class="section return"><dt>Returns</dt><dd>A new copy of the <a class="el" href="classDDFRecord.html">DDFRecord</a>. This can be delete'd by the application when no longer needed, otherwise it will be cleaned up when the <a class="el" href="classDDFModule.html">DDFModule</a> it relates to is destroyed or closed. </dd></dl> </div> </div> <a class="anchor" id="acf505e128d8e164056abc75511330abe"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classDDFRecord.html">DDFRecord</a> * DDFRecord::CloneOn </td> <td>(</td> <td class="paramtype"><a class="el" href="classDDFModule.html">DDFModule</a> * </td> <td class="paramname"><em>poTargetModule</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Recreate a record referencing another module.</p> <p>Works similarly to the <a class="el" href="classDDFRecord.html#a8a243fb41033a70db9a99b8984c1f352">DDFRecord::Clone()</a> method, but creates the new record with reference to a different <a class="el" href="classDDFModule.html">DDFModule</a>. All <a class="el" href="classDDFFieldDefn.html">DDFFieldDefn</a> references are transcribed onto the new module based on field names. If any fields don't have a similarly named field on the target module the operation will fail. No validation of field types and properties is done, but this operation is intended only to be used between modules with matching definitions of all affected fields.</p> <p>The new record will be managed as a clone by the target module in a manner similar to regular clones.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">poTargetModule</td><td>the module on which the record copy should be created.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>NULL on failure or a pointer to the cloned record. </dd></dl> </div> </div> <a class="anchor" id="a9f2b3fcc7fa05cf5a234fea04fd5b407"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DDFRecord::CreateDefaultFieldInstance </td> <td>(</td> <td class="paramtype"><a class="el" href="classDDFField.html">DDFField</a> * </td> <td class="paramname"><em>poField</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>iIndexWithinField</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Initialize default instance.</p> <p>This method is normally only used internally by the <a class="el" href="classDDFRecord.html#a37f6acc612998cfd3d64bc3f9dc3bc5c">AddField()</a> method to initialize the new field instance with default subfield values. It installs default data for one instance of the field in the record using the <a class="el" href="classDDFFieldDefn.html#abd26a6ecf4b1814dcf44399e7bc15e6e">DDFFieldDefn::GetDefaultValue()</a> method and <a class="el" href="classDDFRecord.html#a6d4c805ce592dc1bc70e601858f4da1b">DDFRecord::SetFieldRaw()</a>.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">poField</td><td>the field within the record to be assign a default instance. </td></tr> <tr><td class="paramname">iIndexWithinField</td><td>the instance to set (may not have been tested with values other than 0).</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>TRUE on success or FALSE on failure. </dd></dl> </div> </div> <a class="anchor" id="a56bbf45471c03822b925a90dc153ca60"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DDFRecord::DeleteField </td> <td>(</td> <td class="paramtype"><a class="el" href="classDDFField.html">DDFField</a> * </td> <td class="paramname"><em>poTarget</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Delete a field instance from a record.</p> <p>Remove a field from this record, cleaning up the data portion and repacking the fields list. We don't try to reallocate the data area of the record to be smaller.</p> <p>NOTE: This method doesn't actually remove the header information for this field from the record tag list yet. This should be added if the resulting record is even to be written back to disk!</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">poTarget</td><td>the field instance on this record to delete.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>TRUE on success, or FALSE on failure. Failure can occur if poTarget isn't really a field on this record. </dd></dl> </div> </div> <a class="anchor" id="ab0ca462b4d5b4b57ad079ed7bc2d1d18"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void DDFRecord::Dump </td> <td>(</td> <td class="paramtype">FILE * </td> <td class="paramname"><em>fp</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Write out record contents to debugging file.</p> <p>A variety of information about this record, and all its fields and subfields is written to the given debugging file handle. Note that field definition information (ala <a class="el" href="classDDFFieldDefn.html">DDFFieldDefn</a>) isn't written.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">fp</td><td>The standard IO file handle to write to. i.e. stderr </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a4e8fd2dfba6339f0e02f2d7f9a6932a1"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classDDFField.html">DDFField</a> * DDFRecord::FindField </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszName</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>iFieldIndex</em> = <code>0</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Find the named field within this record.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszName</td><td>The name of the field to fetch. The comparison is case insensitive. </td></tr> <tr><td class="paramname">iFieldIndex</td><td>The instance of this field to fetch. Use zero (the default) for the first instance.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Pointer to the requested <a class="el" href="classDDFField.html">DDFField</a>. This pointer is to an internal object, and should not be freed. It remains valid until the next record read. </dd></dl> </div> </div> <a class="anchor" id="a7c54f9f861d4301ff20aef781a1a6817"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const char* DDFRecord::GetData </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</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>Fetch the raw data for this record. The returned pointer is effectively to the data for the first field of the record, and is of size <a class="el" href="classDDFRecord.html#afc6f767e085bda281f048a3d93bceaff">GetDataSize()</a>. </p> </div> </div> <a class="anchor" id="afc6f767e085bda281f048a3d93bceaff"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int DDFRecord::GetDataSize </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</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>Fetch size of records raw data (<a class="el" href="classDDFRecord.html#a7c54f9f861d4301ff20aef781a1a6817">GetData()</a>) in bytes. </p> </div> </div> <a class="anchor" id="a304aff436017b95527a0d6df2c1820ee"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classDDFField.html">DDFField</a> * DDFRecord::GetField </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>i</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Fetch field object based on index.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">i</td><td>The index of the field to fetch. Between 0 and <a class="el" href="classDDFRecord.html#a727954617b99da01d2797568859cb0f0">GetFieldCount()</a>-1.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="classDDFField.html">DDFField</a> pointer, or NULL if the index is out of range. </dd></dl> </div> </div> <a class="anchor" id="a727954617b99da01d2797568859cb0f0"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int DDFRecord::GetFieldCount </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</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>Get the number of DDFFields on this record. </p> </div> </div> <a class="anchor" id="a8d3c56d3292621509a123f2a7ebdb5ac"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double DDFRecord::GetFloatSubfield </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszField</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>iFieldIndex</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszSubfield</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>iSubfieldIndex</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </td> <td class="paramname"><em>pnSuccess</em> = <code>nullptr</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Fetch value of a subfield as a float (double). This is a convenience function for fetching a subfield of a field within this record.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszField</td><td>The name of the field containing the subfield. </td></tr> <tr><td class="paramname">iFieldIndex</td><td>The instance of this field within the record. Use zero for the first instance of this field. </td></tr> <tr><td class="paramname">pszSubfield</td><td>The name of the subfield within the selected field. </td></tr> <tr><td class="paramname">iSubfieldIndex</td><td>The instance of this subfield within the record. Use zero for the first instance. </td></tr> <tr><td class="paramname">pnSuccess</td><td>Pointer to an int which will be set to TRUE if the fetch succeeds, or FALSE if it fails. Use NULL if you don't want to check success. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The value of the subfield, or zero if it failed for some reason. </dd></dl> </div> </div> <a class="anchor" id="aeb15a9b69025c31bd754c006b1de306c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DDFRecord::GetIntSubfield </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszField</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>iFieldIndex</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszSubfield</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>iSubfieldIndex</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </td> <td class="paramname"><em>pnSuccess</em> = <code>nullptr</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Fetch value of a subfield as an integer. This is a convenience function for fetching a subfield of a field within this record.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszField</td><td>The name of the field containing the subfield. </td></tr> <tr><td class="paramname">iFieldIndex</td><td>The instance of this field within the record. Use zero for the first instance of this field. </td></tr> <tr><td class="paramname">pszSubfield</td><td>The name of the subfield within the selected field. </td></tr> <tr><td class="paramname">iSubfieldIndex</td><td>The instance of this subfield within the record. Use zero for the first instance. </td></tr> <tr><td class="paramname">pnSuccess</td><td>Pointer to an int which will be set to TRUE if the fetch succeeds, or FALSE if it fails. Use NULL if you don't want to check success. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The value of the subfield, or zero if it failed for some reason. </dd></dl> </div> </div> <a class="anchor" id="aa3af65fd52e8a2a0fa21071216cdb050"></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="classDDFModule.html">DDFModule</a>* DDFRecord::GetModule </td> <td>(</td> <td class="paramname"></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>Fetch the <a class="el" href="classDDFModule.html">DDFModule</a> with which this record is associated. </p> </div> </div> <a class="anchor" id="a7ae61be5c90df8a547813f32b09a8ecd"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char * DDFRecord::GetStringSubfield </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszField</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>iFieldIndex</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszSubfield</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>iSubfieldIndex</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </td> <td class="paramname"><em>pnSuccess</em> = <code>nullptr</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Fetch value of a subfield as a string. This is a convenience function for fetching a subfield of a field within this record.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszField</td><td>The name of the field containing the subfield. </td></tr> <tr><td class="paramname">iFieldIndex</td><td>The instance of this field within the record. Use zero for the first instance of this field. </td></tr> <tr><td class="paramname">pszSubfield</td><td>The name of the subfield within the selected field. </td></tr> <tr><td class="paramname">iSubfieldIndex</td><td>The instance of this subfield within the record. Use zero for the first instance. </td></tr> <tr><td class="paramname">pnSuccess</td><td>Pointer to an int which will be set to TRUE if the fetch succeeds, or FALSE if it fails. Use NULL if you don't want to check success. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The value of the subfield, or NULL if it failed for some reason. The returned pointer is to internal data and should not be modified or freed by the application. </dd></dl> </div> </div> <a class="anchor" id="abba3ff29671aa53cc8710f10cc8c0efb"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DDFRecord::ResizeField </td> <td>(</td> <td class="paramtype"><a class="el" href="classDDFField.html">DDFField</a> * </td> <td class="paramname"><em>poField</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>nNewDataSize</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Alter field data size within record.</p> <p>This method will rearrange a <a class="el" href="classDDFRecord.html">DDFRecord</a> altering the amount of space reserved for one of the existing fields. All following fields will be shifted accordingly. This includes updating the <a class="el" href="classDDFField.html">DDFField</a> infos, and actually moving stuff within the data array after reallocating to the desired size.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">poField</td><td>the field to alter. </td></tr> <tr><td class="paramname">nNewDataSize</td><td>the number of data bytes to be reserved for the field.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>TRUE on success or FALSE on failure. </dd></dl> </div> </div> <a class="anchor" id="a6d4c805ce592dc1bc70e601858f4da1b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DDFRecord::SetFieldRaw </td> <td>(</td> <td class="paramtype"><a class="el" href="classDDFField.html">DDFField</a> * </td> <td class="paramname"><em>poField</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>iIndexWithinField</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>pachRawData</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>nRawDataSize</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Set the raw contents of a field instance.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">poField</td><td>the field to set data within. </td></tr> <tr><td class="paramname">iIndexWithinField</td><td>The instance of this field to replace. Must be a value between 0 and GetRepeatCount(). If GetRepeatCount() is used, a new instance of the field is appended. </td></tr> <tr><td class="paramname">pachRawData</td><td>the raw data to replace this field instance with. </td></tr> <tr><td class="paramname">nRawDataSize</td><td>the number of bytes pointed to by pachRawData.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>TRUE on success or FALSE on failure. </dd></dl> </div> </div> <a class="anchor" id="ae20d96b1a92e826b1c379ef1893c7c5c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DDFRecord::SetFloatSubfield </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszField</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>iFieldIndex</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszSubfield</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>iSubfieldIndex</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>dfNewValue</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Set a float subfield in record.</p> <p>The value of a given subfield is replaced with a new float value formatted appropriately.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszField</td><td>the field name to operate on. </td></tr> <tr><td class="paramname">iFieldIndex</td><td>the field index to operate on (zero based). </td></tr> <tr><td class="paramname">pszSubfield</td><td>the subfield name to operate on. </td></tr> <tr><td class="paramname">iSubfieldIndex</td><td>the subfield index to operate on (zero based). </td></tr> <tr><td class="paramname">dfNewValue</td><td>the new value to place in the subfield.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>TRUE if successful, and FALSE if not. </dd></dl> </div> </div> <a class="anchor" id="a7041fdadfd37957174adb0151252ec43"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DDFRecord::SetIntSubfield </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszField</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>iFieldIndex</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszSubfield</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>iSubfieldIndex</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>nNewValue</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Set an integer subfield in record.</p> <p>The value of a given subfield is replaced with a new integer value formatted appropriately.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszField</td><td>the field name to operate on. </td></tr> <tr><td class="paramname">iFieldIndex</td><td>the field index to operate on (zero based). </td></tr> <tr><td class="paramname">pszSubfield</td><td>the subfield name to operate on. </td></tr> <tr><td class="paramname">iSubfieldIndex</td><td>the subfield index to operate on (zero based). </td></tr> <tr><td class="paramname">nNewValue</td><td>the new value to place in the subfield.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>TRUE if successful, and FALSE if not. </dd></dl> </div> </div> <a class="anchor" id="aa624b9531c6e01ffce9a6feab1dcbf2f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DDFRecord::SetStringSubfield </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszField</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>iFieldIndex</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszSubfield</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>iSubfieldIndex</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszValue</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>nValueLength</em> = <code>-1</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Set a string subfield in record.</p> <p>The value of a given subfield is replaced with a new string value formatted appropriately.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszField</td><td>the field name to operate on. </td></tr> <tr><td class="paramname">iFieldIndex</td><td>the field index to operate on (zero based). </td></tr> <tr><td class="paramname">pszSubfield</td><td>the subfield name to operate on. </td></tr> <tr><td class="paramname">iSubfieldIndex</td><td>the subfield index to operate on (zero based). </td></tr> <tr><td class="paramname">pszValue</td><td>the new string to place in the subfield. This may be arbitrary binary bytes if nValueLength is specified. </td></tr> <tr><td class="paramname">nValueLength</td><td>the number of valid bytes in pszValue, may be -1 to internally fetch with strlen().</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>TRUE if successful, and FALSE if not. </dd></dl> </div> </div> <a class="anchor" id="a41782abc633cba1cdb6a6bcecbaafd84"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DDFRecord::Write </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Write record out to module.</p> <p>This method writes the current record to the module to which it is attached. Normally this would be at the end of the file, and only used for modules newly created with DDFModule::Create(). Rewriting existing records is not supported at this time. Calling <a class="el" href="classDDFRecord.html#a41782abc633cba1cdb6a6bcecbaafd84">Write()</a> multiple times on a <a class="el" href="classDDFRecord.html">DDFRecord</a> will result it multiple copies being written at the end of the module.</p> <dl class="section return"><dt>Returns</dt><dd>TRUE on success or FALSE on failure. </dd></dl> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="iso8211_8h_source.html">iso8211.h</a></li> <li>ddfrecord.cpp</li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.5 </small></address> </body> </html>