<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.1.1">
  <compounddef id="dsproc3_8h" kind="file">
    <compoundname>dsproc3.h</compoundname>
    <includes local="yes">armutils.h</includes>
    <includes local="yes">cds3.h</includes>
    <includes refid="dsproc3__internal_8h" local="yes">dsproc3_internal.h</includes>
    <includedby refid="dsproc_8c" local="yes">dsproc.c</includedby>
    <includedby refid="dsproc__csv2cds_8c" local="yes">dsproc_csv2cds.c</includedby>
    <includedby refid="dsproc__csv__ingest__config_8c" local="yes">dsproc_csv_ingest_config.c</includedby>
    <includedby refid="dsproc__csv__parser_8c" local="yes">dsproc_csv_parser.c</includedby>
    <includedby refid="dsproc__dataset__atts_8c" local="yes">dsproc_dataset_atts.c</includedby>
    <includedby refid="dsproc__dataset__compare_8c" local="yes">dsproc_dataset_compare.c</includedby>
    <includedby refid="dsproc__dataset__dims_8c" local="yes">dsproc_dataset_dims.c</includedby>
    <includedby refid="dsproc__dataset__fetch_8c" local="yes">dsproc_dataset_fetch.c</includedby>
    <includedby refid="dsproc__dataset__filters_8c" local="yes">dsproc_dataset_filters.c</includedby>
    <includedby refid="dsproc__dataset__store_8c" local="yes">dsproc_dataset_store.c</includedby>
    <includedby refid="dsproc__dataset__times_8c" local="yes">dsproc_dataset_times.c</includedby>
    <includedby refid="dsproc__dataset__vars_8c" local="yes">dsproc_dataset_vars.c</includedby>
    <includedby refid="dsproc__datasets_8c" local="yes">dsproc_datasets.c</includedby>
    <includedby refid="dsproc__datastream__dod_8c" local="yes">dsproc_datastream_dod.c</includedby>
    <includedby refid="dsproc__datastream__files_8c" local="yes">dsproc_datastream_files.c</includedby>
    <includedby refid="dsproc__datastreams_8c" local="yes">dsproc_datastreams.c</includedby>
    <includedby refid="dsproc__deprecated_8c" local="yes">dsproc_deprecated.c</includedby>
    <includedby refid="dsproc__dqrdb_8c" local="yes">dsproc_dqrdb.c</includedby>
    <includedby refid="dsproc__dsdb_8c" local="yes">dsproc_dsdb.c</includedby>
    <includedby refid="dsproc__exec_8c" local="yes">dsproc_exec.c</includedby>
    <includedby refid="dsproc__file__utils_8c" local="yes">dsproc_file_utils.c</includedby>
    <includedby refid="dsproc__hooks_8c" local="yes">dsproc_hooks.c</includedby>
    <includedby refid="dsproc__main_8c" local="yes">dsproc_main.c</includedby>
    <includedby refid="dsproc__map__data_8c" local="yes">dsproc_map_data.c</includedby>
    <includedby refid="dsproc__merge__obs_8c" local="yes">dsproc_merge_obs.c</includedby>
    <includedby refid="dsproc__messages_8c" local="yes">dsproc_messages.c</includedby>
    <includedby refid="dsproc__outlier__filters_8c" local="yes">dsproc_outlier_filters.c</includedby>
    <includedby refid="dsproc__parse__args_8c" local="yes">dsproc_parse_args.c</includedby>
    <includedby refid="dsproc__print_8c" local="yes">dsproc_print.c</includedby>
    <includedby refid="dsproc__qc__utils_8c" local="yes">dsproc_qc_utils.c</includedby>
    <includedby refid="dsproc__rename_8c" local="yes">dsproc_rename.c</includedby>
    <includedby refid="dsproc__retriever_8c" local="yes">dsproc_retriever.c</includedby>
    <includedby refid="dsproc__solar__position_8c" local="yes">dsproc_solar_position.c</includedby>
    <includedby refid="dsproc__standard__qc_8c" local="yes">dsproc_standard_qc.c</includedby>
    <includedby refid="dsproc__time__utils_8c" local="yes">dsproc_time_utils.c</includedby>
    <includedby refid="dsproc__trans__params_8c" local="yes">dsproc_trans_params.c</includedby>
    <includedby refid="dsproc__transform_8c" local="yes">dsproc_transform.c</includedby>
    <includedby refid="dsproc__update__stored__metadata_8c" local="yes">dsproc_update_stored_metadata.c</includedby>
    <includedby refid="dsproc__var__tag_8c" local="yes">dsproc_var_tag.c</includedby>
    <includedby refid="dsproc__version_8c" local="yes">dsproc_version.c</includedby>
    <incdepgraph>
      <node id="33">
        <label>armutils/time_utils.h</label>
        <link refid="time__utils_8h" external="libarmutils.tag"/>
      </node>
      <node id="35">
        <label>cds3.h</label>
        <link refid="cds3_8h" external="libcds3.tag"/>
      </node>
      <node id="25">
        <label>armutils/armutils_version.h</label>
        <link refid="armutils__version_8h" external="libarmutils.tag"/>
      </node>
      <node id="29">
        <label>armutils/dsenv.h</label>
        <link refid="dsenv_8h" external="libarmutils.tag"/>
      </node>
      <node id="24">
        <label>armutils.h</label>
        <link refid="armutils_8h" external="libarmutils.tag"/>
        <childnode refid="25" relation="include">
        </childnode>
        <childnode refid="26" relation="include">
        </childnode>
        <childnode refid="27" relation="include">
        </childnode>
        <childnode refid="29" relation="include">
        </childnode>
        <childnode refid="30" relation="include">
        </childnode>
        <childnode refid="31" relation="include">
        </childnode>
        <childnode refid="32" relation="include">
        </childnode>
        <childnode refid="28" relation="include">
        </childnode>
        <childnode refid="34" relation="include">
        </childnode>
        <childnode refid="33" relation="include">
        </childnode>
      </node>
      <node id="36">
        <label>dsproc3_internal.h</label>
        <link refid="dsproc3__internal_8h"/>
        <childnode refid="37" relation="include">
        </childnode>
        <childnode refid="38" relation="include">
        </childnode>
      </node>
      <node id="37">
        <label>dsdb3.h</label>
        <link refid="dsdb3_8h" external="libdsdb3.tag"/>
      </node>
      <node id="28">
        <label>armutils/regex_utils.h</label>
        <link refid="regex__utils_8h" external="libarmutils.tag"/>
      </node>
      <node id="38">
        <label>ncds3.h</label>
        <link refid="ncds3_8h" external="libncds3.tag"/>
      </node>
      <node id="27">
        <label>armutils/dir_utils.h</label>
        <link refid="dir__utils_8h" external="libarmutils.tag"/>
        <childnode refid="28" relation="include">
        </childnode>
      </node>
      <node id="32">
        <label>armutils/regex_time.h</label>
        <link refid="regex__time_8h" external="libarmutils.tag"/>
        <childnode refid="33" relation="include">
        </childnode>
      </node>
      <node id="31">
        <label>armutils/file_utils.h</label>
        <link refid="file__utils_8h" external="libarmutils.tag"/>
      </node>
      <node id="30">
        <label>armutils/endian_swap.h</label>
        <link refid="endian__swap_8h" external="libarmutils.tag"/>
      </node>
      <node id="34">
        <label>armutils/string_utils.h</label>
        <link refid="string__utils_8h" external="libarmutils.tag"/>
      </node>
      <node id="23">
        <label>dsproc3.h</label>
        <link refid="dsproc3.h"/>
        <childnode refid="24" relation="include">
        </childnode>
        <childnode refid="35" relation="include">
        </childnode>
        <childnode refid="36" relation="include">
        </childnode>
      </node>
      <node id="26">
        <label>armutils/benchmark.h</label>
        <link refid="benchmark_8h" external="libarmutils.tag"/>
      </node>
    </incdepgraph>
    <invincdepgraph>
      <node id="55">
        <label>dsproc_datastreams.c</label>
        <link refid="dsproc__datastreams_8c"/>
      </node>
      <node id="48">
        <label>dsproc_dataset_filters.c</label>
        <link refid="dsproc__dataset__filters_8c"/>
      </node>
      <node id="57">
        <label>dsproc_dqrdb.c</label>
        <link refid="dsproc__dqrdb_8c"/>
      </node>
      <node id="69">
        <label>dsproc_qc_utils.c</label>
        <link refid="dsproc__qc__utils_8c"/>
      </node>
      <node id="72">
        <label>dsproc_solar_position.c</label>
        <link refid="dsproc__solar__position_8c"/>
      </node>
      <node id="71">
        <label>dsproc_retriever.c</label>
        <link refid="dsproc__retriever_8c"/>
      </node>
      <node id="76">
        <label>dsproc_transform.c</label>
        <link refid="dsproc__transform_8c"/>
      </node>
      <node id="61">
        <label>dsproc_hooks.c</label>
        <link refid="dsproc__hooks_8c"/>
      </node>
      <node id="42">
        <label>dsproc_csv_ingest_config.c</label>
        <link refid="dsproc__csv__ingest__config_8c"/>
      </node>
      <node id="78">
        <label>dsproc_var_tag.c</label>
        <link refid="dsproc__var__tag_8c"/>
      </node>
      <node id="60">
        <label>dsproc_file_utils.c</label>
        <link refid="dsproc__file__utils_8c"/>
      </node>
      <node id="43">
        <label>dsproc_csv_parser.c</label>
        <link refid="dsproc__csv__parser_8c"/>
      </node>
      <node id="64">
        <label>dsproc_merge_obs.c</label>
        <link refid="dsproc__merge__obs_8c"/>
      </node>
      <node id="63">
        <label>dsproc_map_data.c</label>
        <link refid="dsproc__map__data_8c"/>
      </node>
      <node id="47">
        <label>dsproc_dataset_fetch.c</label>
        <link refid="dsproc__dataset__fetch_8c"/>
      </node>
      <node id="44">
        <label>dsproc_dataset_atts.c</label>
        <link refid="dsproc__dataset__atts_8c"/>
      </node>
      <node id="40">
        <label>dsproc.c</label>
        <link refid="dsproc_8c"/>
      </node>
      <node id="70">
        <label>dsproc_rename.c</label>
        <link refid="dsproc__rename_8c"/>
      </node>
      <node id="77">
        <label>dsproc_update_stored_metadata.c</label>
        <link refid="dsproc__update__stored__metadata_8c"/>
      </node>
      <node id="62">
        <label>dsproc_main.c</label>
        <link refid="dsproc__main_8c"/>
      </node>
      <node id="53">
        <label>dsproc_datastream_dod.c</label>
        <link refid="dsproc__datastream__dod_8c"/>
      </node>
      <node id="50">
        <label>dsproc_dataset_times.c</label>
        <link refid="dsproc__dataset__times_8c"/>
      </node>
      <node id="68">
        <label>dsproc_print.c</label>
        <link refid="dsproc__print_8c"/>
      </node>
      <node id="52">
        <label>dsproc_datasets.c</label>
        <link refid="dsproc__datasets_8c"/>
      </node>
      <node id="45">
        <label>dsproc_dataset_compare.c</label>
        <link refid="dsproc__dataset__compare_8c"/>
      </node>
      <node id="65">
        <label>dsproc_messages.c</label>
        <link refid="dsproc__messages_8c"/>
      </node>
      <node id="75">
        <label>dsproc_trans_params.c</label>
        <link refid="dsproc__trans__params_8c"/>
      </node>
      <node id="58">
        <label>dsproc_dsdb.c</label>
        <link refid="dsproc__dsdb_8c"/>
      </node>
      <node id="66">
        <label>dsproc_outlier_filters.c</label>
        <link refid="dsproc__outlier__filters_8c"/>
      </node>
      <node id="56">
        <label>dsproc_deprecated.c</label>
        <link refid="dsproc__deprecated_8c"/>
      </node>
      <node id="74">
        <label>dsproc_time_utils.c</label>
        <link refid="dsproc__time__utils_8c"/>
      </node>
      <node id="73">
        <label>dsproc_standard_qc.c</label>
        <link refid="dsproc__standard__qc_8c"/>
      </node>
      <node id="79">
        <label>dsproc_version.c</label>
        <link refid="dsproc__version_8c"/>
      </node>
      <node id="49">
        <label>dsproc_dataset_store.c</label>
        <link refid="dsproc__dataset__store_8c"/>
      </node>
      <node id="59">
        <label>dsproc_exec.c</label>
        <link refid="dsproc__exec_8c"/>
      </node>
      <node id="46">
        <label>dsproc_dataset_dims.c</label>
        <link refid="dsproc__dataset__dims_8c"/>
      </node>
      <node id="54">
        <label>dsproc_datastream_files.c</label>
        <link refid="dsproc__datastream__files_8c"/>
      </node>
      <node id="67">
        <label>dsproc_parse_args.c</label>
        <link refid="dsproc__parse__args_8c"/>
      </node>
      <node id="51">
        <label>dsproc_dataset_vars.c</label>
        <link refid="dsproc__dataset__vars_8c"/>
      </node>
      <node id="39">
        <label>dsproc3.h</label>
        <link refid="dsproc3.h"/>
        <childnode refid="40" relation="include">
        </childnode>
        <childnode refid="41" relation="include">
        </childnode>
        <childnode refid="42" relation="include">
        </childnode>
        <childnode refid="43" relation="include">
        </childnode>
        <childnode refid="44" relation="include">
        </childnode>
        <childnode refid="45" relation="include">
        </childnode>
        <childnode refid="46" relation="include">
        </childnode>
        <childnode refid="47" relation="include">
        </childnode>
        <childnode refid="48" relation="include">
        </childnode>
        <childnode refid="49" relation="include">
        </childnode>
        <childnode refid="50" relation="include">
        </childnode>
        <childnode refid="51" relation="include">
        </childnode>
        <childnode refid="52" relation="include">
        </childnode>
        <childnode refid="53" relation="include">
        </childnode>
        <childnode refid="54" relation="include">
        </childnode>
        <childnode refid="55" relation="include">
        </childnode>
        <childnode refid="56" relation="include">
        </childnode>
        <childnode refid="57" relation="include">
        </childnode>
        <childnode refid="58" relation="include">
        </childnode>
        <childnode refid="59" relation="include">
        </childnode>
        <childnode refid="60" relation="include">
        </childnode>
        <childnode refid="61" relation="include">
        </childnode>
        <childnode refid="62" relation="include">
        </childnode>
        <childnode refid="63" relation="include">
        </childnode>
        <childnode refid="64" relation="include">
        </childnode>
        <childnode refid="65" relation="include">
        </childnode>
        <childnode refid="66" relation="include">
        </childnode>
        <childnode refid="67" relation="include">
        </childnode>
        <childnode refid="68" relation="include">
        </childnode>
        <childnode refid="69" relation="include">
        </childnode>
        <childnode refid="70" relation="include">
        </childnode>
        <childnode refid="71" relation="include">
        </childnode>
        <childnode refid="72" relation="include">
        </childnode>
        <childnode refid="73" relation="include">
        </childnode>
        <childnode refid="74" relation="include">
        </childnode>
        <childnode refid="75" relation="include">
        </childnode>
        <childnode refid="76" relation="include">
        </childnode>
        <childnode refid="77" relation="include">
        </childnode>
        <childnode refid="78" relation="include">
        </childnode>
        <childnode refid="79" relation="include">
        </childnode>
      </node>
      <node id="41">
        <label>dsproc_csv2cds.c</label>
        <link refid="dsproc__csv2cds_8c"/>
      </node>
    </invincdepgraph>
    <innerclass refid="structVarTarget" prot="public">VarTarget</innerclass>
    <innerclass refid="structVarDQR" prot="public">VarDQR</innerclass>
    <innerclass refid="structCSVParser" prot="public">CSVParser</innerclass>
    <innerclass refid="structCSVStrMap" prot="public">CSVStrMap</innerclass>
    <innerclass refid="structCSV2CDSMap" prot="public">CSV2CDSMap</innerclass>
    <innerclass refid="structCSVTimeCol" prot="public">CSVTimeCol</innerclass>
    <innerclass refid="structCSVFieldMap" prot="public">CSVFieldMap</innerclass>
    <innerclass refid="structCSVConf" prot="public">CSVConf</innerclass>
      <sectiondef kind="define">
      <memberdef kind="define" id="group__DSPROC__MAIN_1ga4023bd74807f2a8fa0c4c7b82802faa0" prot="public" static="no">
        <name>DSP_RETRIEVER</name>
        <initializer>0x001</initializer>
        <briefdescription>
<para>Flag specifying that the data retrieval process should be run. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="42" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="42" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__MAIN_1ga55ba56cc545ae9689cd9aebd2606e017" prot="public" static="no">
        <name>DSP_RETRIEVER_REQUIRED</name>
        <initializer>0x002</initializer>
        <briefdescription>
<para>Flag specifying if a retriever definition is required. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="45" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="45" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__MAIN_1ga78aa4b909a2223e6a061d0f84cf6525a" prot="public" static="no">
        <name>DSP_TRANSFORM</name>
        <initializer>0x004</initializer>
        <briefdescription>
<para>Flag specifying that the data transformation process should be run. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="48" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="48" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__MAIN_1gabc7755bb9091b5049de1f7ce77d3cd9e" prot="public" static="no">
        <name>DSP_INGEST</name>
        <initializer>0x100</initializer>
        <briefdescription>
<para>Flag specifying that this is an ingest process. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="51" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="51" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__MESSAGES_1ga4d56e48d35f7598e3cf90c5e42477e45" prot="public" static="no">
        <name>DSPROC_ERROR</name>
        <param><defname>status</defname></param>
        <param><defname>...</defname></param>
        <initializer><ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga89cbe8d1543e14f0f2fd633e41882ca6" kindref="member">dsproc_error</ref>(__func__, __FILE__, __LINE__, status, __VA_ARGS__)</initializer>
        <briefdescription>
<para>Convenience macro for the <ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga89cbe8d1543e14f0f2fd633e41882ca6" kindref="member">dsproc_error()</ref> function. </para>        </briefdescription>
        <detaileddescription>
<para>Usage: DSPROC_ERROR(const char *status, const char *format, ...)</para><para>See printf for a complete description of the format string. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="211" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="210" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__MESSAGES_1gafe4fa57945d752a9707db1528afe36b2" prot="public" static="no">
        <name>DSPROC_WARNING</name>
        <param><defname>...</defname></param>
        <initializer><ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga8d9986da0a39b0a9666e3e125e4a7298" kindref="member">dsproc_warning</ref>(__func__, __FILE__, __LINE__, __VA_ARGS__)</initializer>
        <briefdescription>
<para>Convenience macro for the <ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga8d9986da0a39b0a9666e3e125e4a7298" kindref="member">dsproc_warning()</ref> function. </para>        </briefdescription>
        <detaileddescription>
<para>Usage: DSPROC_WARNING(const char *format, ...)</para><para>See printf for a complete description of the format string. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="221" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="220" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__MESSAGES_1gac829d7371ba57a86a7231f36f290f076" prot="public" static="no">
        <name>DSPROC_LOG</name>
        <param><defname>...</defname></param>
        <initializer><ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga62850a54fb66458f2e8ffe742734777f" kindref="member">dsproc_log</ref>(__func__, __FILE__, __LINE__, __VA_ARGS__)</initializer>
        <briefdescription>
<para>Convenience macro for the <ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga62850a54fb66458f2e8ffe742734777f" kindref="member">dsproc_log()</ref> function. </para>        </briefdescription>
        <detaileddescription>
<para>Usage: DSPROC_LOG(const char *format, ...)</para><para>See printf for a complete description of the format string. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="231" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="230" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__MESSAGES_1gac2de3f51f457208c96c038960dd87d78" prot="public" static="no">
        <name>DSPROC_BAD_FILE_WARNING</name>
        <param><defname>file_name</defname></param>
        <param><defname>...</defname></param>
        <initializer><ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga9f3c036c2c519f17474290eda45b0875" kindref="member">dsproc_bad_file_warning</ref>(__func__, __FILE__, __LINE__, file_name, __VA_ARGS__)</initializer>
        <briefdescription>
<para>Convenience macro for the <ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga9f3c036c2c519f17474290eda45b0875" kindref="member">dsproc_bad_file_warning()</ref> function. </para>        </briefdescription>
        <detaileddescription>
<para>Usage: DSPROC_BAD_FILE_WARNING(const char *file_name, const char *format, ...)</para><para>See printf for a complete description of the format string. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="241" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="240" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__MESSAGES_1gaaeaa49b7a832e651c3012030c4b0abc7" prot="public" static="no">
        <name>DSPROC_BAD_LINE_WARNING</name>
        <param><defname>file_name</defname></param>
        <param><defname>line_num</defname></param>
        <param><defname>...</defname></param>
        <initializer><ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga2a243a5cd390f07cd3e4990f10f4cb06" kindref="member">dsproc_bad_line_warning</ref>(__func__, __FILE__, __LINE__, file_name, line_num, __VA_ARGS__)</initializer>
        <briefdescription>
<para>Convenience macro for the <ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga2a243a5cd390f07cd3e4990f10f4cb06" kindref="member">dsproc_bad_line_warning()</ref> function. </para>        </briefdescription>
        <detaileddescription>
<para>Usage: DSPROC_BAD_LINE_WARNING(const char *file_name, int line_num, const char *format, ...)</para><para>See printf for a complete description of the format string. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="251" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="250" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__MESSAGES_1ga878551804aeabdc8b8a75d9271bc92f7" prot="public" static="no">
        <name>DSPROC_BAD_RECORD_WARNING</name>
        <param><defname>file_name</defname></param>
        <param><defname>rec_num</defname></param>
        <param><defname>...</defname></param>
        <initializer><ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga74644971b6494886fe4c180ffe61695b" kindref="member">dsproc_bad_record_warning</ref>(__func__, __FILE__, __LINE__, file_name, rec_num, __VA_ARGS__)</initializer>
        <briefdescription>
<para>Convenience macro for the <ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga74644971b6494886fe4c180ffe61695b" kindref="member">dsproc_bad_record_warning()</ref> function. </para>        </briefdescription>
        <detaileddescription>
<para>Usage: DSPROC_BAD_RECORD_WARNING(const char *file_name, int rec_num, const char *format, ...)</para><para>See printf for a complete description of the format string. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="261" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="260" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__MESSAGES_1gab86db00d79bf4487cb6f32ef3449b5cb" prot="public" static="no">
        <name>DSPROC_MENTOR_MAIL</name>
        <param><defname>...</defname></param>
        <initializer><ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga8b7257292379b40430dc5739da524eca" kindref="member">dsproc_mentor_mail</ref>(__func__, __FILE__, __LINE__, __VA_ARGS__)</initializer>
        <briefdescription>
<para>Convenience macro for the <ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga8b7257292379b40430dc5739da524eca" kindref="member">dsproc_mentor_mail()</ref> function. </para>        </briefdescription>
        <detaileddescription>
<para>Usage: DSPROC_MENTOR_MAIL(const char *format, ...)</para><para>See printf for a complete description of the format string. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="271" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="270" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__MESSAGES_1ga7577f8a24038144a7a09a19bd34cd632" prot="public" static="no">
        <name>DSPROC_DEBUG_LV1</name>
        <param><defname>...</defname></param>
        <initializer>if (<ref refid="msngr_8c_1ac791733161412261186acd64e02b55e0" kindref="member" external="libmsngr.tag">msngr_debug_level</ref> || <ref refid="msngr_8c_1a56b2f7386a8a816e5c14dcc982a2e90d" kindref="member" external="libmsngr.tag">msngr_provenance_level</ref>) \
    <ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga8b9f7c44722d89498cb163470a2d97f4" kindref="member">dsproc_debug</ref>(__func__, __FILE__, __LINE__, 1, __VA_ARGS__)</initializer>
        <briefdescription>
<para>Convenience macro for the <ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga8b9f7c44722d89498cb163470a2d97f4" kindref="member">dsproc_debug()</ref> function: level == 1. </para>        </briefdescription>
        <detaileddescription>
<para>Usage: DSPROC_DEBUG_LV1(const char *format, ...)</para><para>See printf for a complete description of the format string. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="282" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="280" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__MESSAGES_1ga34a46b217508dbe1c05ee9965b7a6cfa" prot="public" static="no">
        <name>DSPROC_DEBUG_LV2</name>
        <param><defname>...</defname></param>
        <initializer>if (<ref refid="msngr_8c_1ac791733161412261186acd64e02b55e0" kindref="member" external="libmsngr.tag">msngr_debug_level</ref> || <ref refid="msngr_8c_1a56b2f7386a8a816e5c14dcc982a2e90d" kindref="member" external="libmsngr.tag">msngr_provenance_level</ref>) \
    <ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga8b9f7c44722d89498cb163470a2d97f4" kindref="member">dsproc_debug</ref>(__func__, __FILE__, __LINE__, 2, __VA_ARGS__)</initializer>
        <briefdescription>
<para>Convenience macro for the <ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga8b9f7c44722d89498cb163470a2d97f4" kindref="member">dsproc_debug()</ref> function: level == 2. </para>        </briefdescription>
        <detaileddescription>
<para>Usage: DSPROC_DEBUG_LV2(const char *format, ...)</para><para>See printf for a complete description of the format string. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="293" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="291" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__MESSAGES_1ga2f78d317b8b0bdc63faaa7baf7093a92" prot="public" static="no">
        <name>DSPROC_DEBUG_LV3</name>
        <param><defname>...</defname></param>
        <initializer>if (<ref refid="msngr_8c_1ac791733161412261186acd64e02b55e0" kindref="member" external="libmsngr.tag">msngr_debug_level</ref> || <ref refid="msngr_8c_1a56b2f7386a8a816e5c14dcc982a2e90d" kindref="member" external="libmsngr.tag">msngr_provenance_level</ref>) \
    <ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga8b9f7c44722d89498cb163470a2d97f4" kindref="member">dsproc_debug</ref>(__func__, __FILE__, __LINE__, 3, __VA_ARGS__)</initializer>
        <briefdescription>
<para>Convenience macro for the <ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga8b9f7c44722d89498cb163470a2d97f4" kindref="member">dsproc_debug()</ref> function: level == 3. </para>        </briefdescription>
        <detaileddescription>
<para>Usage: DSPROC_DEBUG_LV3(const char *format, ...)</para><para>See printf for a complete description of the format string. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="304" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="302" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__MESSAGES_1gafbc22b7fd8809d72b13c9c370cb63a71" prot="public" static="no">
        <name>DSPROC_DEBUG_LV4</name>
        <param><defname>...</defname></param>
        <initializer>if (<ref refid="msngr_8c_1ac791733161412261186acd64e02b55e0" kindref="member" external="libmsngr.tag">msngr_debug_level</ref> || <ref refid="msngr_8c_1a56b2f7386a8a816e5c14dcc982a2e90d" kindref="member" external="libmsngr.tag">msngr_provenance_level</ref>) \
    <ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga8b9f7c44722d89498cb163470a2d97f4" kindref="member">dsproc_debug</ref>(__func__, __FILE__, __LINE__, 4, __VA_ARGS__)</initializer>
        <briefdescription>
<para>Convenience macro for the <ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga8b9f7c44722d89498cb163470a2d97f4" kindref="member">dsproc_debug()</ref> function: level == 4. </para>        </briefdescription>
        <detaileddescription>
<para>Usage: DSPROC_DEBUG_LV4(const char *format, ...)</para><para>See printf for a complete description of the format string. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="315" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="313" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__MESSAGES_1ga8f315c697d27c48356918c1795ec6e2c" prot="public" static="no">
        <name>DSPROC_DEBUG_LV5</name>
        <param><defname>...</defname></param>
        <initializer>if (<ref refid="msngr_8c_1ac791733161412261186acd64e02b55e0" kindref="member" external="libmsngr.tag">msngr_debug_level</ref> || <ref refid="msngr_8c_1a56b2f7386a8a816e5c14dcc982a2e90d" kindref="member" external="libmsngr.tag">msngr_provenance_level</ref>) \
    <ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga8b9f7c44722d89498cb163470a2d97f4" kindref="member">dsproc_debug</ref>(__func__, __FILE__, __LINE__, 5, __VA_ARGS__)</initializer>
        <briefdescription>
<para>Convenience macro for the <ref refid="group__INTERNAL__DSPROC__MESSAGES_1ga8b9f7c44722d89498cb163470a2d97f4" kindref="member">dsproc_debug()</ref> function: level == 5. </para>        </briefdescription>
        <detaileddescription>
<para>Usage: DSPROC_DEBUG_LV5(const char *format, ...)</para><para>See printf for a complete description of the format string. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="326" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="324" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__CONTROL_1gad316ac8a8dc7eb58cdc9e15edbbf9cb4" prot="public" static="no">
        <name>DSPROC_ABORT</name>
        <param><defname>status</defname></param>
        <param><defname>...</defname></param>
        <initializer><ref refid="group__INTERNAL__DSPROC__CONTROL_1gaad8289b0f86bd58a0e426fd770d6f6be" kindref="member">dsproc_abort</ref>(__func__, __FILE__, __LINE__, status, __VA_ARGS__)</initializer>
        <briefdescription>
<para>Convenience macro for the <ref refid="group__INTERNAL__DSPROC__CONTROL_1gaad8289b0f86bd58a0e426fd770d6f6be" kindref="member">dsproc_abort()</ref> function. </para>        </briefdescription>
        <detaileddescription>
<para>Usage: DSPROC_ABORT(const char *status, const char *format, ...)</para><para>See printf for a complete description of the format string. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="358" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="357" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__VARTAGS_1ga1121b44c68882d8c9e9bd655843ea03a" prot="public" static="no">
        <name>VAR_SKIP_TRANSFORM</name>
        <initializer>0x1</initializer>
        <briefdescription>
<para>Flag instructing the transform logic to ignore this variable. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="940" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="940" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__VARTAGS_1ga02194286a30a23338271544d63da047b" prot="public" static="no">
        <name>VAR_ROLLUP_TRANS_QC</name>
        <initializer>0x2</initializer>
        <briefdescription>
<para>Consolidate the transformation QC bits when mapped to the output dataset. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="943" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="943" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga4fe2ad6638ff1c3ac6f5da266214e781" prot="public" static="no">
        <name>DSPROC_SUCCESS</name>
        <initializer>&quot;Successful&quot;</initializer>
        <briefdescription>
<para>Successful. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1076" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1076" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" prot="public" static="no">
        <name>DSPROC_ENOMEM</name>
        <initializer>&quot;Memory Allocation Error&quot;</initializer>
        <briefdescription>
<para>Memory Allocation Error. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1079" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1079" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gae08eac8d5017d20768b25fa25e2e10df" prot="public" static="no">
        <name>DSPROC_EFORK</name>
        <initializer>&quot;Could Not Create Fork For New Process&quot;</initializer>
        <briefdescription>
<para>Could Not Create Fork For New Process. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1082" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1082" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gac42c79a320f8c015f9ccd37bcc90b8b5" prot="public" static="no">
        <name>DSPROC_ENODATA</name>
        <initializer>&quot;No Input Data Found&quot;</initializer>
        <briefdescription>
<para>No Input Data Found. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1085" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1085" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga8d992934244bb80a4ecbe169da808375" prot="public" static="no">
        <name>DSPROC_ENOOUTDATA</name>
        <initializer>&quot;No Output Data Created&quot;</initializer>
        <briefdescription>
<para>No Output Data Found. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1088" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1088" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga805c05915da4cf811b15218466737edc" prot="public" static="no">
        <name>DSPROC_EINITSIGS</name>
        <initializer>&quot;Could Not Initialize Signal Handlers&quot;</initializer>
        <briefdescription>
<para>Could Not Initialize Signal Handlers. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1091" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1091" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gaa46eef76917d8f759852101a557a94f6" prot="public" static="no">
        <name>DSPROC_ERUNTIME</name>
        <initializer>&quot;Maximum Run Time Limit Exceeded&quot;</initializer>
        <briefdescription>
<para>Maximum Run Time Limit Exceeded. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1094" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1094" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gae9c5b1df92d9a618962ded30c4097ce5" prot="public" static="no">
        <name>DSPROC_EFORCE</name>
        <initializer>&quot;Could Not Force Process To Continue&quot;</initializer>
        <briefdescription>
<para>Could Not Force Process To Continue. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1097" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1097" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga8d334e08d3248cf882966101ae22f10b" prot="public" static="no">
        <name>DSPROC_EDSPATH</name>
        <initializer>&quot;Could Not Determine Path To Datastream&quot;</initializer>
        <briefdescription>
<para>Could Not Determine Path To Datastream. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1100" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1100" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gafe33dc6e93600add3dcd34d85cbe8fca" prot="public" static="no">
        <name>DSPROC_ELOGSPATH</name>
        <initializer>&quot;Could Not Determine Path To Logs Directory&quot;</initializer>
        <briefdescription>
<para>Could Not Determine Path To Logs Directory. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1103" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1103" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gacdfcd13cd0796f828712a5db76ef67da" prot="public" static="no">
        <name>DSPROC_EACCESS</name>
        <initializer>&quot;Could Not Access File or Directory&quot;</initializer>
        <briefdescription>
<para>Could Not Open Log File. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1106" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1106" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gabb2bd96bdaaff60ff112a7b37eb1e721" prot="public" static="no">
        <name>DSPROC_ELOGOPEN</name>
        <initializer>&quot;Could Not Open Log File&quot;</initializer>
        <briefdescription>
<para>Could Not Open Log File. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1109" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1109" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga6e4a333e192dd9c0c1802d72232dad5b" prot="public" static="no">
        <name>DSPROC_EPROVOPEN</name>
        <initializer>&quot;Could Not Open Provenance Log&quot;</initializer>
        <briefdescription>
<para>Could Not Open Provenance Log. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1112" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1112" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga0a03bfbfa54bfd752ef787b35bebf880" prot="public" static="no">
        <name>DSPROC_EMAILINIT</name>
        <initializer>&quot;Could Not Initialize <ref refid="structMail" kindref="compound" external="libmsngr.tag">Mail</ref>&quot;</initializer>
        <briefdescription>
<para>Could Not Initialize <ref refid="structMail" kindref="compound" external="libmsngr.tag">Mail</ref>. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1115" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1115" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga994618de24d5dcb9d77222017f283afd" prot="public" static="no">
        <name>DSPROC_EDBERROR</name>
        <initializer>&quot;Database Error (see log file)&quot;</initializer>
        <briefdescription>
<para>Database Error (see log file) </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1118" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1118" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga02668edf9413b9356b67faaa753d1e4d" prot="public" static="no">
        <name>DSPROC_EDBCONNECT</name>
        <initializer>&quot;Database Connection Error&quot;</initializer>
        <briefdescription>
<para>Database Connection Error. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1121" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1121" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga56f0685fbf6a83fe55ed091f4153666b" prot="public" static="no">
        <name>DSPROC_EDQRDBERROR</name>
        <initializer>&quot;DQR Database Error (see log file)&quot;</initializer>
        <briefdescription>
<para><ref refid="structDQR" kindref="compound" external="libdsdb3.tag">DQR</ref> Database Error (see log file) </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1124" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1124" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gac022ecf2aac8fb41d867408012137bdf" prot="public" static="no">
        <name>DSPROC_EDQRDBCONNECT</name>
        <initializer>&quot;DQR Database Connection Error&quot;</initializer>
        <briefdescription>
<para><ref refid="structDQR" kindref="compound" external="libdsdb3.tag">DQR</ref> Database Connection Error. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1127" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1127" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga26dfe5e082ec0b148142bbf38a9c9a8b" prot="public" static="no">
        <name>DSPROC_EDIRLIST</name>
        <initializer>&quot;Could Not Get Directory Listing&quot;</initializer>
        <briefdescription>
<para>Directory List Error. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1130" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1130" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga74dc24d58cad1b8470e1000c3ca1752d" prot="public" static="no">
        <name>DSPROC_EREGEX</name>
        <initializer>&quot;Regular Expression Error&quot;</initializer>
        <briefdescription>
<para>Directory List Error. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1133" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1133" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga7bf9c9b014653e09b11b3df266530a44" prot="public" static="no">
        <name>DSPROC_EBADINDSC</name>
        <initializer>&quot;Invalid Input Datastream Class&quot;</initializer>
        <briefdescription>
<para>Invalid Input Datastream Class. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1136" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1136" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga47a8ed4d3d62ab239dd5622ce97a3721" prot="public" static="no">
        <name>DSPROC_ENOINDSC</name>
        <initializer>&quot;Could Not Find Input Datastream Class In Database&quot;</initializer>
        <briefdescription>
<para>Could Not Find Input Datastream Class In Database. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1139" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1139" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gacbc0ec5729ad0d667b41187750db7e2a" prot="public" static="no">
        <name>DSPROC_ETOOMANYINDSC</name>
        <initializer>&quot;Too Many Input Datastreams Defined In Database&quot;</initializer>
        <briefdescription>
<para>Too Many Input Datastream Classes In Database. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1142" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1142" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga034392f0adcc1fce373ddbd91564a009" prot="public" static="no">
        <name>DSPROC_EBADOUTDSC</name>
        <initializer>&quot;Invalid Output Datastream Class&quot;</initializer>
        <briefdescription>
<para>Invalid Output Datastream Class. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1145" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1145" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gaad95f132cb748c28c183bda869c569e4" prot="public" static="no">
        <name>DSPROC_EBADDSID</name>
        <initializer>&quot;Invalid Datastream ID&quot;</initializer>
        <briefdescription>
<para>Invalid Datastream ID. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1148" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1148" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gafb71ce3fd3873663eaf2ae048daded95" prot="public" static="no">
        <name>DSPROC_EBADOUTFORMAT</name>
        <initializer>&quot;Invalid Output Datastream Format&quot;</initializer>
        <briefdescription>
<para>Invalid Output Datastream Format. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1151" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1151" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga413ded43bc9fb80dc62e08009b03c0b4" prot="public" static="no">
        <name>DSPROC_EMINTIME</name>
        <initializer>&quot;Found Data Time Before Minimum Valid Time&quot;</initializer>
        <briefdescription>
<para>Found Data Time Before Minimum Valid Time. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1154" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1154" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga013171d1702d38446fcc3284f79fd15d" prot="public" static="no">
        <name>DSPROC_EFUTURETIME</name>
        <initializer>&quot;Found Data Time In The Future&quot;</initializer>
        <briefdescription>
<para>Found Data Time In The Future. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1157" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1157" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga8bf44d5b5a570500ac23f073b6bdbb7d" prot="public" static="no">
        <name>DSPROC_ETIMEORDER</name>
        <initializer>&quot;Invalid Time Order&quot;</initializer>
        <briefdescription>
<para>Invalid Time Order. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1160" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1160" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga5a7d3e3213b9c08f5b08a1c733bd51cd" prot="public" static="no">
        <name>DSPROC_ETIMEOVERLAP</name>
        <initializer>&quot;Found Overlapping Data Times&quot;</initializer>
        <briefdescription>
<para>Found Overlapping Data Times. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1163" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1163" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga1d6498ecbc8f8623a7b340ac76d2528b" prot="public" static="no">
        <name>DSPROC_EBASETIME</name>
        <initializer>&quot;Could Not Get Base Time For Time Variable&quot;</initializer>
        <briefdescription>
<para>Invalid Base Time. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1166" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1166" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga1a547d83928f5afa4b9c9c1b15e0f628" prot="public" static="no">
        <name>DSPROC_EGLOBALATT</name>
        <initializer>&quot;Invalid Global Attribute Value&quot;</initializer>
        <briefdescription>
<para>Invalid Global Attribute Value. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1169" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1169" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga8f02cfc176eaed490dd631ce9e821017" prot="public" static="no">
        <name>DSPROC_ETIMEVARTYPE</name>
        <initializer>&quot;Invalid Data Type For Time Variable&quot;</initializer>
        <briefdescription>
<para>Invalid Data Type For Time Variable. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1172" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1172" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gad4e3b3e69f5580589f7ab50edcb78313" prot="public" static="no">
        <name>DSPROC_EQCVARTYPE</name>
        <initializer>&quot;Invalid Data Type For QC Variable&quot;</initializer>
        <briefdescription>
<para>Invalid Data Type For QC Variable. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1175" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1175" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga3979fbc650c70592c8fabb649206eb70" prot="public" static="no">
        <name>DSPROC_EQCSAMPLESIZE</name>
        <initializer>&quot;Invalid QC Variable Sample Size&quot;</initializer>
        <briefdescription>
<para>Invalid QC Variable Sample Size. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1178" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1178" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga3777e67dea05751f11f6807be569deb1" prot="public" static="no">
        <name>DSPROC_EQCVARDIMS</name>
        <initializer>&quot;Invalid QC Variable Dimensions&quot;</initializer>
        <briefdescription>
<para>Invalid QC Variable Dimensions. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1181" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1181" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga227742bfd848def44cf3418f3ce5e86c" prot="public" static="no">
        <name>DSPROC_EVARTYPE</name>
        <initializer>&quot;Invalid Data Type For Variable&quot;</initializer>
        <briefdescription>
<para>Invalid Data Type For Variable. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1184" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1184" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gacc0c9d3eed0ff2bf47836ac5ed87569f" prot="public" static="no">
        <name>DSPROC_ESAMPLESIZE</name>
        <initializer>&quot;Invalid Variable Sample Size&quot;</initializer>
        <briefdescription>
<para>Invalid Variable Sample Size. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1187" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1187" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga322f57fcfb605e0814bb4532c6849b47" prot="public" static="no">
        <name>DSPROC_EDATAATTTYPE</name>
        <initializer>&quot;Data Attribute Has Invalid Data Type&quot;</initializer>
        <briefdescription>
<para>Data Attribute Has Invalid Data Type. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1190" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1190" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga5cacbddd60358c8c91a29c8965b197cd" prot="public" static="no">
        <name>DSPROC_EFILECOPY</name>
        <initializer>&quot;Could Not Copy File&quot;</initializer>
        <briefdescription>
<para>Could Not Copy File. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1193" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1193" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gafe0c2e2f6760128f25e1d84d52d2a960" prot="public" static="no">
        <name>DSPROC_EFILEMOVE</name>
        <initializer>&quot;Could Not Move File&quot;</initializer>
        <briefdescription>
<para>Could Not Move File. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1196" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1196" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga550878b8ef3c5f9e84530c0533a97b59" prot="public" static="no">
        <name>DSPROC_EFILEOPEN</name>
        <initializer>&quot;Could Not Open File&quot;</initializer>
        <briefdescription>
<para>Could Not Open File. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1199" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1199" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga34c8253e4c51d4f9a2de59f44d2807cd" prot="public" static="no">
        <name>DSPROC_EFILEREAD</name>
        <initializer>&quot;Could Not Read From File&quot;</initializer>
        <briefdescription>
<para>Could Not Read From File. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1202" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1202" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gab7c229a26ecf6891b5b6a14d2a402cea" prot="public" static="no">
        <name>DSPROC_EFILEWRITE</name>
        <initializer>&quot;Could Not Write To File&quot;</initializer>
        <briefdescription>
<para>Could Not Write To File. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1205" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1205" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gafb68b3ef2c023d1ebff166055e87ed96" prot="public" static="no">
        <name>DSPROC_EFILESTATS</name>
        <initializer>&quot;Could Not Get File Stats&quot;</initializer>
        <briefdescription>
<para>Could Not Get File Stats. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1208" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1208" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga71b906de7f9f14abeb5e02456475c5d0" prot="public" static="no">
        <name>DSPROC_EUNLINK</name>
        <initializer>&quot;Could Not Delete File&quot;</initializer>
        <briefdescription>
<para>Could Not Delete File. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1211" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1211" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga2f98b7dfb3fe0aa6f1573b07d691e18e" prot="public" static="no">
        <name>DSPROC_ENOSRCFILE</name>
        <initializer>&quot;Source File Does Not Exist&quot;</initializer>
        <briefdescription>
<para>Source File Does Not Exist. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1214" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1214" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga8f5cbf90ba7eb70c11542bf46411cb7b" prot="public" static="no">
        <name>DSPROC_ENOFILETIME</name>
        <initializer>&quot;Could Not Determine File Time&quot;</initializer>
        <briefdescription>
<para>Could Not Determine File Time. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1217" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1217" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gab168acfc06cf9c9a02c02abb0bb7a0e1" prot="public" static="no">
        <name>DSPROC_EDESTDIRMAKE</name>
        <initializer>&quot;Could Not Create Destination Directory&quot;</initializer>
        <briefdescription>
<para>Could Not Create Destination Directory. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1220" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1220" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga4ac4a74b3d47b8822c688d5d55f4ce32" prot="public" static="no">
        <name>DSPROC_ETIMECALC</name>
        <initializer>&quot;Time Calculation Error&quot;</initializer>
        <briefdescription>
<para>Time Calculation Error. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1223" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1223" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gae868720d81e842a0038e84ac113fe669" prot="public" static="no">
        <name>DSPROC_EFILEMD5</name>
        <initializer>&quot;Could Not Get File MD5&quot;</initializer>
        <briefdescription>
<para>Could Not Get File MD5. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1226" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1226" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga95741fca6f55deac43e4eeb554b1d0ee" prot="public" static="no">
        <name>DSPROC_EMD5CHECK</name>
        <initializer>&quot;Source And Destination File MD5s Do Not Match&quot;</initializer>
        <briefdescription>
<para>Source And Destination File MD5s Do Not Match. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1229" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1229" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gabcfba52b455e8f313a8f058a22fa3495" prot="public" static="no">
        <name>DSPROC_ECDSALLOCVAR</name>
        <initializer>&quot;Could Not Allocate Memory For Dataset Variable&quot;</initializer>
        <briefdescription>
<para>Could Not Allocate Memory For Dataset Variable. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1232" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1232" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga0d8ef0c2e2039d752efe9a0d666f0348" prot="public" static="no">
        <name>DSPROC_ECDSCOPYVAR</name>
        <initializer>&quot;Could Not Copy Dataset Variable&quot;</initializer>
        <briefdescription>
<para>Could Not Copy Dataset Variable. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1235" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1235" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga5cd5621a7a5050492bc4238d9222f91f" prot="public" static="no">
        <name>DSPROC_ECLONEVAR</name>
        <initializer>&quot;Could Not Clone Dataset Variable&quot;</initializer>
        <briefdescription>
<para>Could Not Copy Dataset Variable. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1238" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1238" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga86eaa60e98b0506b670ed8c3e3d7cb3b" prot="public" static="no">
        <name>DSPROC_ECDSDEFVAR</name>
        <initializer>&quot;Could Not Define Dataset Variable&quot;</initializer>
        <briefdescription>
<para>Could Not Define Dataset Variable. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1241" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1241" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga4bf06d9726b9219f5b70f77a08332f92" prot="public" static="no">
        <name>DSPROC_ECDSDELVAR</name>
        <initializer>&quot;Could Not Delete Dataset Variable&quot;</initializer>
        <briefdescription>
<para>Could Not Delete Dataset Variable. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1244" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1244" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga425360bb5b08adad6a0ec9860fb400af" prot="public" static="no">
        <name>DSPROC_ECDSCOPY</name>
        <initializer>&quot;Could Not Copy Dataset Metadata&quot;</initializer>
        <briefdescription>
<para>Could Not Copy Dataset Metadata. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1247" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1247" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga2e6fa221027625ba3f83ff4c327d83a2" prot="public" static="no">
        <name>DSPROC_ECDSCHANGEATT</name>
        <initializer>&quot;Could Not Change Attribute Value In Dataset&quot;</initializer>
        <briefdescription>
<para>Could Not Change Attribute Value In Dataset. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1250" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1250" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga8bc036b0bb04d86d17086fec96a569f3" prot="public" static="no">
        <name>DSPROC_ECDSSETATT</name>
        <initializer>&quot;Could Not Set Attribute Value In Dataset&quot;</initializer>
        <briefdescription>
<para>Could Not Set Attribute Value In Dataset. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1253" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1253" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga2510060a562b39a89a116442ceec8c04" prot="public" static="no">
        <name>DSPROC_ECDSSETDIM</name>
        <initializer>&quot;Could Not Set Dimension Length In Dataset&quot;</initializer>
        <briefdescription>
<para>Could Not Set Dimension Length In Dataset. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1256" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1256" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga29c532543589f2e3de61ba6fd86a7b74" prot="public" static="no">
        <name>DSPROC_ECDSSETDATA</name>
        <initializer>&quot;Could Not Set Variable Data In Dataset&quot;</initializer>
        <briefdescription>
<para>Could Not Set Variable Data In Dataset. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1259" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1259" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga0a1e704f7d8e7c509b8d0b26b920a600" prot="public" static="no">
        <name>DSPROC_ECDSSETTIME</name>
        <initializer>&quot;Could Not Set Time Values In Dataset&quot;</initializer>
        <briefdescription>
<para>Could Not Set Time Values In Dataset. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1262" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1262" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gaf4d6e65511fa56034bdee8886a49659b" prot="public" static="no">
        <name>DSPROC_ECDSGETTIME</name>
        <initializer>&quot;Could Not Get Time Values From Dataset&quot;</initializer>
        <briefdescription>
<para>Could Not Get Time Values From Dataset. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1265" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1265" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga30c0e08464fb558ad53b2b3d99663c96" prot="public" static="no">
        <name>DSPROC_EMERGE</name>
        <initializer>&quot;Could Not Merge Datasets&quot;</initializer>
        <briefdescription>
<para>Could Not Merge Datasets. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1268" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1268" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga23f0752494385b64b5491e874d0dca6d" prot="public" static="no">
        <name>DSPROC_EBOUNDSVAR</name>
        <initializer>&quot;Invalid Cell Boundary Variable or Definition&quot;</initializer>
        <briefdescription>
<para>Invalid Cell Boundary Variable or Definition. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1271" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1271" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gad03ffcc3419e13cb6b620fa4f3bc793c" prot="public" static="no">
        <name>DSPROC_ENODOD</name>
        <initializer>&quot;DOD Not Defined In Database&quot;</initializer>
        <briefdescription>
<para>DOD Not Defined In Database. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1274" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1274" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gae71f6e4a5df787d1b3ab1ffaa626dfb5" prot="public" static="no">
        <name>DSPROC_ENORETRIEVER</name>
        <initializer>&quot;Could Not Find <ref refid="structRetriever" kindref="compound" external="libdsdb3.tag">Retriever</ref> Definition In Database&quot;</initializer>
        <briefdescription>
<para>Could Not Find Data <ref refid="structRetriever" kindref="compound" external="libdsdb3.tag">Retriever</ref> Information. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1277" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1277" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gaadc4344c45de7818cc611d5a3e24ec27" prot="public" static="no">
        <name>DSPROC_EBADRETRIEVER</name>
        <initializer>&quot;Invalid <ref refid="structRetriever" kindref="compound" external="libdsdb3.tag">Retriever</ref> Definition&quot;</initializer>
        <briefdescription>
<para>Invalid <ref refid="structRetriever" kindref="compound" external="libdsdb3.tag">Retriever</ref> Definition. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1280" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1280" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gae03b888270c044f6f34e02adfd7ff937" prot="public" static="no">
        <name>DSPROC_EREQVAR</name>
        <initializer>&quot;Required Variable Missing From Dataset&quot;</initializer>
        <briefdescription>
<para>Required Variable Missing From Dataset. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1283" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1283" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga91f3f82f8f1dded470240491f55627c6" prot="public" static="no">
        <name>DSPROC_EREQATT</name>
        <initializer>&quot;Required Attribute Variable Missing From Variable or Dataset&quot;</initializer>
        <briefdescription>
<para>Required Attribute Variable Missing From Variable or Dataset. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1286" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1286" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga3d5447db76cc4de3e4d6b1c72908a5b3" prot="public" static="no">
        <name>DSPROC_ERETRIEVER</name>
        <initializer>&quot;Could Not Retrieve Input Data&quot;</initializer>
        <briefdescription>
<para>Could Not Retrieve Input Data. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1289" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1289" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gaa0c99dff8b9eff712f0a94e3272daef3" prot="public" static="no">
        <name>DSPROC_ENCCREATE</name>
        <initializer>&quot;Could Not Create NetCDF File&quot;</initializer>
        <briefdescription>
<para>Could Not Create NetCDF File. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1292" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1292" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga28ca5f22c79652416c1e5051069daace" prot="public" static="no">
        <name>DSPROC_ENCOPEN</name>
        <initializer>&quot;Could Not Open NetCDF File&quot;</initializer>
        <briefdescription>
<para>Could Not Open NetCDF File. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1295" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1295" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga9789a9a0d973984b052fa746d1c4224d" prot="public" static="no">
        <name>DSPROC_ENCCLOSE</name>
        <initializer>&quot;Could Not Close NetCDF File&quot;</initializer>
        <briefdescription>
<para>Could Not Close NetCDF File. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1298" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1298" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gadd9f72c5beed364fc1af57f8f7be1fb0" prot="public" static="no">
        <name>DSPROC_ENCSYNC</name>
        <initializer>&quot;Could Not Sync NetCDF File&quot;</initializer>
        <briefdescription>
<para>Could Not Close NetCDF File. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1301" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1301" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga11b31db537abc1c8fcf2152316f6e3f8" prot="public" static="no">
        <name>DSPROC_ENCREAD</name>
        <initializer>&quot;Could Not Read From NetCDF File&quot;</initializer>
        <briefdescription>
<para>NetCDF File Read Error. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1304" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1304" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga1c71b6b9e7913d7abf4f8a0bede248c3" prot="public" static="no">
        <name>DSPROC_ENCWRITE</name>
        <initializer>&quot;Could Not Write To NetCDF File&quot;</initializer>
        <briefdescription>
<para>NetCDF File Write Error. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1307" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1307" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gaa9d5d5dc92761f7075953da35a375a39" prot="public" static="no">
        <name>DSPROC_ENOTRANSFORM</name>
        <initializer>&quot;Could Not Find Data Transform Information&quot;</initializer>
        <briefdescription>
<para>Could Not Find Data Transform Information. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1310" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1310" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga7eaba1179b32e82cbde804d9e9b076ae" prot="public" static="no">
        <name>DSPROC_ETRANSFORM</name>
        <initializer>&quot;Could Not Transform Input Data&quot;</initializer>
        <briefdescription>
<para>Could Not Find Data Transform Information. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1313" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1313" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gac2d95f75958f353656e7603fc9e5bd49" prot="public" static="no">
        <name>DSPROC_ETRANSQCVAR</name>
        <initializer>&quot;Could Not Create Consolidated Transformation QC Variable&quot;</initializer>
        <briefdescription>
<para>Could Not Create Consolidated Transformation QC Variable. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1316" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1316" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga7fae90a86c49f78c27089cd466e49e2e" prot="public" static="no">
        <name>DSPROC_ETRANSPARAMLOAD</name>
        <initializer>&quot;Could Not Load Transform Parameters File&quot;</initializer>
        <briefdescription>
<para>Could Not Load Transform Parameters File. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1319" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1319" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gaace4472f609ae1ed8f1c783a2a699697" prot="public" static="no">
        <name>DSPROC_EVARMAP</name>
        <initializer>&quot;Could Not Map Input Variable To Output Variable&quot;</initializer>
        <briefdescription>
<para>Could Not Map Input Variable To Output Variable. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1322" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1322" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga578f7f64ebf563e305ca5ee235431876" prot="public" static="no">
        <name>DSPROC_ECSVPARSER</name>
        <initializer>&quot;Could Not Parse CSV File&quot;</initializer>
        <briefdescription>
<para>Could Not Parse Input CSV File. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1325" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1325" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1ga0db2287a71acfedc1385cf58bb515549" prot="public" static="no">
        <name>DSPROC_ECSVCONF</name>
        <initializer>&quot;Could Not Read CSV Ingest Configuration File&quot;</initializer>
        <briefdescription>
<para>Could Not Read CSV Ingest Configuration File. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1328" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1328" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__STATUS_1gabf8a13e4ec821b660a6fe9adc438246e" prot="public" static="no">
        <name>DSPROC_ECSV2CDS</name>
        <initializer>&quot;Could Not Map Input CSV Data To Output Dataset&quot;</initializer>
        <briefdescription>
<para>Could Not Map Input CSV Data To Output Dataset. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1331" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1331" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__CSV2CDS_1ga3050cdd90bca8880d5f7ab53445c7970" prot="public" static="no">
        <name>CSV_OVERWRITE</name>
        <initializer>0x1</initializer>
        <briefdescription>
<para>Mapping flag to specify that existing data should be overwritten. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1508" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1508" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__DSPROC__CSV__INGEST__CONFIG_1gac7c7a2973adb5cf8abea0688012192f6" prot="public" static="no">
        <name>CSV_CHECK_DATA_CONF</name>
        <initializer>0x01</initializer>
        <briefdescription>
<para>Flag used by csv_read_conf_file() to check for config files under the root directory defined by the CONF_DATA environment variable. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1581" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="1581" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="enum">
      <memberdef kind="enum" id="group__DSPROC__MAIN_1ga33494e92e6acc51e15df1336dfd42bad" prot="public" static="no">
        <name>ProcModel</name>
        <enumvalue id="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42bada9d2a3b74219ca1a0e415eec14021bdf6" prot="public">
          <name>PM_GENERIC</name>
          <initializer> DSP_RETRIEVER | DSP_TRANSFORM</initializer>
          <briefdescription>
<para>Generic VAP process. </para>          </briefdescription>
          <detaileddescription>
<para>The retriever definition will be used if it exists in the database but it is not required for the process to run. This will also run the transform logic for any variables that are found in the retrieved data that have been tagged with a coordinate system name. </para>          </detaileddescription>
        </enumvalue>
        <enumvalue id="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42bada43782459f23eb559303d7370f85bb1c5" prot="public">
          <name>PM_RETRIEVER_VAP</name>
          <initializer> DSP_RETRIEVER | DSP_RETRIEVER_REQUIRED</initializer>
          <briefdescription>
<para><ref refid="structRetriever" kindref="compound" external="libdsdb3.tag">Retriever</ref> only VAP. </para>          </briefdescription>
          <detaileddescription>
<para>This VAP requires a retriever definition to be specified in the database, but will bypass the transformation logic. </para>          </detaileddescription>
        </enumvalue>
        <enumvalue id="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42badabe84e68ed28ec2fdba708074abec6f8a" prot="public">
          <name>PM_TRANSFORM_VAP</name>
          <initializer> DSP_RETRIEVER | DSP_RETRIEVER_REQUIRED | DSP_TRANSFORM</initializer>
          <briefdescription>
<para>Transformation VAP. </para>          </briefdescription>
          <detaileddescription>
<para>This VAP requires a retriever definition to be specified in the database, and will run the transformation logic. </para>          </detaileddescription>
        </enumvalue>
        <enumvalue id="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42bada6069f0ae00a9a7f8099f72e126019722" prot="public">
          <name>PM_INGEST</name>
          <initializer> DSP_INGEST</initializer>
          <briefdescription>
<para>Ingest Process. </para>          </briefdescription>
          <detaileddescription>
<para>This is an Ingest process that loops over all raw files in the input datastream directory. </para>          </detaileddescription>
        </enumvalue>
        <enumvalue id="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42bada529cdc20d617a29624d504333df47a58" prot="public">
          <name>PM_RETRIEVER_INGEST</name>
          <initializer> DSP_INGEST | DSP_RETRIEVER | DSP_RETRIEVER_REQUIRED</initializer>
          <briefdescription>
<para>Ingest/VAP Hybrid Process that bypasses the transform logic. </para>          </briefdescription>
          <detaileddescription>
<para>This is an Ingest process that uses the PM_RETRIEVER_VAP processing model, but is designed to run in real-time like an ingest without the need for the &apos;-b begin_time&apos; command line argument. The standard VAP -b/-e command line options can still be used for reprocessing. </para>          </detaileddescription>
        </enumvalue>
        <enumvalue id="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42badadd8dbe1ca02cd82cb6877c441cff0ebe" prot="public">
          <name>PM_TRANSFORM_INGEST</name>
          <initializer> DSP_INGEST | DSP_RETRIEVER | DSP_RETRIEVER_REQUIRED | DSP_TRANSFORM</initializer>
          <briefdescription>
<para>Ingest/VAP Hybrid Process that uses the transform logic. </para>          </briefdescription>
          <detaileddescription>
<para>This is an Ingest process that uses the PM_TRANSFORM_VAP processing model, but is designed to run in real-time like an ingest without the need for the &apos;-b begin_time&apos; command line argument. The standard VAP -b/-e command line options can still be used for reprocessing. </para>          </detaileddescription>
        </enumvalue>
        <briefdescription>
<para>Process Models. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="56" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="56" bodyend="106"/>
      </memberdef>
      <memberdef kind="enum" id="group__DSPROC__CONTROL_1gaae8df92fad9018dec361ef5ada66c667" prot="public" static="no">
        <name>LogInterval</name>
        <enumvalue id="group__DSPROC__CONTROL_1ggaae8df92fad9018dec361ef5ada66c667a01975612e16c9cd4b610f8b267009eaa" prot="public">
          <name>LOG_MONTHLY</name>
          <initializer> 0</initializer>
          <briefdescription>
<para>create monthly log files </para>          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="group__DSPROC__CONTROL_1ggaae8df92fad9018dec361ef5ada66c667ab9a5ffa8dfb1129ed74b12ace9ec0955" prot="public">
          <name>LOG_DAILY</name>
          <initializer> 1</initializer>
          <briefdescription>
<para>create daily log files </para>          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="group__DSPROC__CONTROL_1ggaae8df92fad9018dec361ef5ada66c667a0a7bd1fb7b0bd92fc919bf24c583cf48" prot="public">
          <name>LOG_RUN</name>
          <initializer> 2</initializer>
          <briefdescription>
<para>create one log file per run </para>          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <briefdescription>
<para>Log File Intervals. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="363" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="363" bodyend="369"/>
      </memberdef>
      <memberdef kind="enum" id="group__DSPROC__CONTROL_1gaa84661e0fcef11e4b346bc7ed122eb3f" prot="public" static="no">
        <name>SplitMode</name>
        <enumvalue id="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3faae7d04a5dec790ac8cf738dfffd45e80" prot="public">
          <name>SPLIT_ON_STORE</name>
          <initializer> 0</initializer>
          <briefdescription>
<para>Always create a new file when data is stored. </para>          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3faf50477354748ac4aaeb744945ea81004" prot="public">
          <name>SPLIT_ON_HOURS</name>
          <initializer> 1</initializer>
          <briefdescription>
<para>Split start is the hour of the day for the first split [0-23], and split interval is in hours. </para>          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3fa01e320cd708e4f7a134484a56bb2c904" prot="public">
          <name>SPLIT_ON_DAYS</name>
          <initializer> 2</initializer>
          <briefdescription>
<para>Split start is the day of the month for the first split [1-31], and split interval is in days. </para>          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3fa2f01a9e9ab78c303b4731007e47fadec" prot="public">
          <name>SPLIT_ON_MONTHS</name>
          <initializer> 3</initializer>
          <briefdescription>
<para>Split start is the month of the year for the first split [1-12], and split interval is in months. </para>          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3fab47e3d9cfbc682f27a7d48144fcf420c" prot="public">
          <name>SPLIT_NONE</name>
          <initializer> 4</initializer>
          <briefdescription>
<para>Always append output to the previous file unless otherwise specified in the call to dsproc_store_dataset. </para>          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <briefdescription>
<para>Output File Splitting Mode. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="374" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="374" bodyend="391"/>
      </memberdef>
      <memberdef kind="enum" id="group__DSPROC__DATASTREAM_1ga15b890c351c132e694a5ead0c6a413da" prot="public" static="no">
        <name>DSRole</name>
        <enumvalue id="group__DSPROC__DATASTREAM_1gga15b890c351c132e694a5ead0c6a413daa6f20dd563fa70b31ad1c06c210b74af3" prot="public">
          <name>DSR_INPUT</name>
          <initializer>  1</initializer>
          <briefdescription>
<para>input datastream </para>          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="group__DSPROC__DATASTREAM_1gga15b890c351c132e694a5ead0c6a413daa65007e1eac434ec827bf3219392a1954" prot="public">
          <name>DSR_OUTPUT</name>
          <initializer>  2</initializer>
          <briefdescription>
<para>output datastream </para>          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <briefdescription>
<para>DataStream Roles. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="414" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" bodystart="414" bodyend="419"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="group__DSPROC__MAIN_1ga8645903a798bffe2afff542d0663a76b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_freeopts</definition>
        <argsstring>(void)</argsstring>
        <name>dsproc_freeopts</name>
        <param>
          <type>void</type>
        </param>
        <briefdescription>
<para>Free memory used by user defined command line options. </para>        </briefdescription>
        <detaileddescription>
<para>This function can be called after <ref refid="group__DSPROC__MAIN_1ga1679b444fc06ed04aa35b31d5d0b7aba" kindref="member">dsproc_main()</ref> returns to free all internal memory used by the user defined command line options.</para><para><simplesect kind="see"><para><ref refid="group__DSPROC__MAIN_1ga4dd7de0a5e50734e7da17d00f5febc41" kindref="member">dsproc_setopt()</ref>, <ref refid="group__DSPROC__MAIN_1gaa2c3ea00b8b2626fcb2588e4c4431c6b" kindref="member">dsproc_getopt()</ref> </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="108" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_parse_args.c" bodystart="1517" bodyend="1528"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MAIN_1gaa2c3ea00b8b2626fcb2588e4c4431c6b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_getopt</definition>
        <argsstring>(const char *option, const char **value)</argsstring>
        <name>dsproc_getopt</name>
        <param>
          <type>const char *</type>
          <declname>option</declname>
        </param>
        <param>
          <type>const char **</type>
          <declname>value</declname>
        </param>
        <briefdescription>
<para>Get user defined command line option. </para>        </briefdescription>
        <detaileddescription>
<para>Check if a user defined option was set on the command line and get the value if applicable.</para><para><bold>Example</bold> (see <ref refid="group__DSPROC__MAIN_1ga4dd7de0a5e50734e7da17d00f5febc41" kindref="member">dsproc_setopt()</ref> for example that sets these options): <programlisting><codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*strval;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>found;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>found<sp/>=<sp/><ref refid="group__DSPROC__MAIN_1gaa2c3ea00b8b2626fcb2588e4c4431c6b" kindref="member" tooltip="Get user defined command line option.">dsproc_getopt</ref>(</highlight><highlight class="stringliteral">&quot;o&quot;</highlight><highlight class="normal">,<sp/>&amp;strval);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(found)<sp/>{</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>printf(</highlight><highlight class="stringliteral">&quot;Option<sp/>&apos;-o&apos;<sp/>or<sp/>&apos;--my-option&apos;<sp/>was<sp/>set<sp/>by<sp/>user:<sp/>&apos;%s&apos;\n&quot;</highlight><highlight class="normal">,</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>strval);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>found<sp/>=<sp/><ref refid="group__DSPROC__MAIN_1gaa2c3ea00b8b2626fcb2588e4c4431c6b" kindref="member" tooltip="Get user defined command line option.">dsproc_getopt</ref>(</highlight><highlight class="stringliteral">&quot;p&quot;</highlight><highlight class="normal">,<sp/>&amp;strval);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(found)<sp/>{</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>printf(</highlight><highlight class="stringliteral">&quot;Option<sp/>&apos;-p&apos;<sp/>was<sp/>set<sp/>by<sp/>user.\n&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>found<sp/>=<sp/><ref refid="group__DSPROC__MAIN_1gaa2c3ea00b8b2626fcb2588e4c4431c6b" kindref="member" tooltip="Get user defined command line option.">dsproc_getopt</ref>(</highlight><highlight class="stringliteral">&quot;long-only&quot;</highlight><highlight class="normal">,<sp/>&amp;strval);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(found)<sp/>{</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>printf(</highlight><highlight class="stringliteral">&quot;Option<sp/>&apos;--long-only&apos;<sp/>was<sp/>set<sp/>by<sp/>user.\n&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
</programlisting></para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>option</parametername>
</parameternamelist>
<parameterdescription>
<para>The short or long option. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>value</parametername>
</parameternamelist>
<parameterdescription>
<para>output: pointer to the value.</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if the option was specified on the command line </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if the option was not specified on the command line</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="see"><para><ref refid="group__DSPROC__MAIN_1ga4dd7de0a5e50734e7da17d00f5febc41" kindref="member">dsproc_setopt()</ref>, <ref refid="group__DSPROC__MAIN_1ga8645903a798bffe2afff542d0663a76b" kindref="member">dsproc_freeopts()</ref> </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="112" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_parse_args.c" bodystart="1568" bodyend="1605"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MAIN_1ga4dd7de0a5e50734e7da17d00f5febc41" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_setopt</definition>
        <argsstring>(const char short_opt, const char *long_opt, const char *arg_name, const char *opt_desc)</argsstring>
        <name>dsproc_setopt</name>
        <param>
          <type>const char</type>
          <declname>short_opt</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>long_opt</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>arg_name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>opt_desc</declname>
        </param>
        <briefdescription>
<para>Set user defined command line option. </para>        </briefdescription>
        <detaileddescription>
<para>This function must be called before calling dsproc_main.</para><para><bold>Example</bold> (see <ref refid="group__DSPROC__MAIN_1gaa2c3ea00b8b2626fcb2588e4c4431c6b" kindref="member">dsproc_getopt()</ref> for example that gets these options): <programlisting><codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!<ref refid="group__DSPROC__MAIN_1ga4dd7de0a5e50734e7da17d00f5febc41" kindref="member" tooltip="Set user defined command line option.">dsproc_setopt</ref>(</highlight><highlight class="charliteral">&apos;o&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;my-option&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;value&quot;</highlight><highlight class="normal">,</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;User<sp/>defined<sp/>option<sp/>with<sp/>both<sp/>short<sp/>and<sp/>long<sp/>option\n&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;switches<sp/>that<sp/>also<sp/>takes<sp/>a<sp/>user<sp/>defined<sp/>argument.&quot;</highlight><highlight class="normal">))<sp/>{</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>exit(1);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!<ref refid="group__DSPROC__MAIN_1ga4dd7de0a5e50734e7da17d00f5febc41" kindref="member" tooltip="Set user defined command line option.">dsproc_setopt</ref>(</highlight><highlight class="charliteral">&apos;p&apos;</highlight><highlight class="normal">,<sp/>NULL,<sp/>NULL,</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;User<sp/>defined<sp/>option<sp/>with<sp/>only<sp/>a<sp/>short<sp/>option<sp/>switch.\n&quot;</highlight><highlight class="normal">))<sp/>{</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>exit(1);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!<ref refid="group__DSPROC__MAIN_1ga4dd7de0a5e50734e7da17d00f5febc41" kindref="member" tooltip="Set user defined command line option.">dsproc_setopt</ref>(</highlight><highlight class="charliteral">&apos;\0&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;--long-only&quot;</highlight><highlight class="normal">,<sp/>NULL,</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;User<sp/>defined<sp/>option<sp/>with<sp/>only<sp/>a<sp/>long<sp/>option<sp/>switch.&quot;</highlight><highlight class="normal">))<sp/>{</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>exit(1);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
</programlisting></para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>short_opt</parametername>
</parameternamelist>
<parameterdescription>
<para>- Short options are single letters and are prefixed by a single dash on the command line. Multiple short options can be grouped behind a single dash. Specify NULL for this argument if a short option should not be used. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>long_opt</parametername>
</parameternamelist>
<parameterdescription>
<para>- Long options are prefixed by two consecutive dashes on the command line. Specify NULL for this argument if a long option should not be used. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>arg_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- A single word description of the option argument to be used in the help message, or NULL if this option does not take an argument on the command line. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>opt_desc</parametername>
</parameternamelist>
<parameterdescription>
<para>- A brief description of the option to be used in the help message.</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if the option has already been used, or a memory allocation error occurred</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="see"><para><ref refid="group__DSPROC__MAIN_1gaa2c3ea00b8b2626fcb2588e4c4431c6b" kindref="member">dsproc_getopt()</ref>, <ref refid="group__DSPROC__MAIN_1ga8645903a798bffe2afff542d0663a76b" kindref="member">dsproc_freeopts()</ref> </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="118" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_parse_args.c" bodystart="1652" bodyend="1790"/>
        <references refid="dsproc__parse__args_8c_1a0852d26623086093453378b91ace78b7">_DSProcOpts</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MAIN_1gab1f5a6e0be37aa3b0bed376508c990d4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_use_nc_extension</definition>
        <argsstring>(void)</argsstring>
        <name>dsproc_use_nc_extension</name>
        <param>
          <type>void</type>
        </param>
        <briefdescription>
<para>Set the default NetCDF file extension to &apos;nc&apos; for output files. </para>        </briefdescription>
        <detaileddescription>
<para>The NetCDF file extension used by ARM has historically been &quot;cdf&quot;. This function can be used to change it to the new prefered extension of &quot;nc&quot;, and must be called <emphasis>before</emphasis> calling <ref refid="group__DSPROC__MAIN_1ga1679b444fc06ed04aa35b31d5d0b7aba" kindref="member">dsproc_main()</ref>. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="120" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastreams.c" bodystart="1421" bodyend="1424"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MAIN_1ga1679b444fc06ed04aa35b31d5d0b7aba" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_main</definition>
        <argsstring>(int argc, char **argv, ProcModel proc_model, const char *proc_version, int nproc_names, const char **proc_names)</argsstring>
        <name>dsproc_main</name>
        <param>
          <type>int</type>
          <declname>argc</declname>
        </param>
        <param>
          <type>char **</type>
          <declname>argv</declname>
        </param>
        <param>
          <type><ref refid="group__DSPROC__MAIN_1ga33494e92e6acc51e15df1336dfd42bad" kindref="member">ProcModel</ref></type>
          <declname>proc_model</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>proc_version</declname>
        </param>
        <param>
          <type>int</type>
          <declname>nproc_names</declname>
        </param>
        <param>
          <type>const char **</type>
          <declname>proc_names</declname>
        </param>
        <briefdescription>
<para>Datasystem Process Main Function. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>argc</parametername>
</parameternamelist>
<parameterdescription>
<para>- command line argument count </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>argv</parametername>
</parameternamelist>
<parameterdescription>
<para>- command line argument vector </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>proc_model</parametername>
</parameternamelist>
<parameterdescription>
<para>- processing model to use </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>proc_version</parametername>
</parameternamelist>
<parameterdescription>
<para>- process version </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>nproc_names</parametername>
</parameternamelist>
<parameterdescription>
<para>- number of valid process names </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>proc_names</parametername>
</parameternamelist>
<parameterdescription>
<para>- list of valid process names</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>suggested program exit value (0 = successful, 1 = failure) </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="128" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_main.c" bodystart="325" bodyend="413"/>
        <references refid="group__INTERNAL__DSPROC__MAIN_1ga9b8e577a6080df5efb8919ecaad52037" compoundref="dsproc_8c" startline="2723" endline="3169">dsproc_initialize</references>
        <references refid="group__INTERNAL__DSPROC__MAIN_1gab47d1b373c49eddd90d1c07acd511d19" compoundref="dsproc_8c" startline="3389" endline="3766">dsproc_finish</references>
        <references refid="group__INTERNAL__DSPROC__DSDB_1ga6029e7ab8aa6a5499adf44ea16a78fbb" compoundref="dsproc__dsdb_8c" startline="295" endline="306">dsproc_db_disconnect</references>
        <references refid="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42bada6069f0ae00a9a7f8099f72e126019722" compoundref="dsproc3_8h" startline="86">PM_INGEST</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MAIN_1ga1442bece6007cb86d66a1abeddbb7ab3" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_init_process_hook</definition>
        <argsstring>(void *(*_init_process_hook)(void))</argsstring>
        <name>dsproc_set_init_process_hook</name>
        <param>
          <type>void *(*)(void)</type>
          <declname>_init_process_hook</declname>
          <defname>init_process_hook</defname>
        </param>
        <briefdescription>
<para>VAP/Ingest: Set hook function to call when a process is first initialized. </para>        </briefdescription>
        <detaileddescription>
<para>This function must be called from the main function before <ref refid="group__DSPROC__MAIN_1ga1679b444fc06ed04aa35b31d5d0b7aba" kindref="member">dsproc_main()</ref> is called.</para><para>The specified init_process_hook() function will be called once just before the main data processing loop begins and before the initial database connection is closed.</para><para>The init_process_hook() function does not take any arguments, but it must return:</para><para><itemizedlist>
<listitem><para>void pointer to a user defined data structure or value that will be passed in as user_data to all other hook functions.</para></listitem><listitem><para>(void *)1 if no user data is returned.</para></listitem><listitem><para>NULL if a fatal error occurred and the process should exit.</para></listitem></itemizedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>init_process_hook</parametername>
</parameternamelist>
<parameterdescription>
<para>- function to call when the process is initialized </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="131" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_hooks.c" bodystart="590" bodyend="594"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MAIN_1ga26f3c0b904ac17d5b22558f1d3c8d652" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_finish_process_hook</definition>
        <argsstring>(void(*finish_process_hook)(void *user_data))</argsstring>
        <name>dsproc_set_finish_process_hook</name>
        <param>
          <type>void(*)(void *user_data)</type>
          <declname>finish_process_hook</declname>
        </param>
        <briefdescription>
<para>VAP/Ingest: Set hook function to call before a process finishes. </para>        </briefdescription>
        <detaileddescription>
<para>This function must be called from the main function before <ref refid="group__DSPROC__MAIN_1ga1679b444fc06ed04aa35b31d5d0b7aba" kindref="member">dsproc_main()</ref> is called, or from the init_process_hook() function.</para><para>The specified finish_process_hook() function will be called once just after the main data processing loop finishes. This function should be used to clean up any temporary files used, and to free any memory used by the structure returned by the init_process_hook() function.</para><para>The finish_process_hook function must take the following argument:</para><para><itemizedlist>
<listitem><para>void *user_data: value returned by the init_process_hook() function</para></listitem></itemizedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>finish_process_hook</parametername>
</parameternamelist>
<parameterdescription>
<para>- function to call before the process finishes </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="134" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_hooks.c" bodystart="613" bodyend="617"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MAIN_1ga200bd6330ec67173c80edc1be21b14da" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_process_data_hook</definition>
        <argsstring>(int(*process_data)(void *user_data, time_tbegin_date, time_tend_date, CDSGroup *input_data))</argsstring>
        <name>dsproc_set_process_data_hook</name>
        <param>
          <type>int(*)(void *user_data, time_tbegin_date, time_tend_date, <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *input_data)</type>
          <declname>process_data</declname>
          <defname>process_data_hook</defname>
        </param>
        <briefdescription>
<para>VAP: Set the main data processing function. </para>        </briefdescription>
        <detaileddescription>
<para>This function must be called from the main function before <ref refid="group__DSPROC__MAIN_1ga1679b444fc06ed04aa35b31d5d0b7aba" kindref="member">dsproc_main()</ref> is called, or from the init_process_hook() function.</para><para>The specified process_data_hook function will be called once per processing interval just after the output datasets are created, but before they are stored to disk.</para><para>The process_data_hook function must take the following arguments:</para><para><itemizedlist>
<listitem><para>void *user_data: value returned by the init_process_hook() function</para></listitem><listitem><para>time_t begin_date: the begin time of the current processing interval</para></listitem><listitem><para>time_t end_date: the end time of the current processing interval</para></listitem><listitem><para><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *input_data: pointer to the parent <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> containing the input data.</para></listitem></itemizedlist>
</para><para>And must return:</para><para><itemizedlist>
<listitem><para>1 if processing should continue normally</para></listitem><listitem><para>0 if processing should skip the current processing interval and continue on to the next one.</para></listitem><listitem><para>-1 if a fatal error occurred and the process should exit.</para></listitem></itemizedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>process_data_hook</parametername>
</parameternamelist>
<parameterdescription>
<para>- the main data processing function </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="141" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_hooks.c" bodystart="645" bodyend="653"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MAIN_1gad8ea17dd2aa81ac130f98d89d626e6fa" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_pre_retrieval_hook</definition>
        <argsstring>(int(*pre_retrieval_hook)(void *user_data, time_tbegin_date, time_tend_date))</argsstring>
        <name>dsproc_set_pre_retrieval_hook</name>
        <param>
          <type>int(*)(void *user_data, time_tbegin_date, time_tend_date)</type>
          <declname>pre_retrieval_hook</declname>
        </param>
        <briefdescription>
<para>VAP: Set hook function to call before data is retrieved. </para>        </briefdescription>
        <detaileddescription>
<para>This function must be called from the main function before <ref refid="group__DSPROC__MAIN_1ga1679b444fc06ed04aa35b31d5d0b7aba" kindref="member">dsproc_main()</ref> is called, or from the init_process_hook() function.</para><para>The specified pre_retrieval_hook function will be called once per processing interval just prior to data retrieval, and must take the following arguments:</para><para>The pre_retrieval_hook function must take the following arguments:</para><para><itemizedlist>
<listitem><para>void *user_data: value returned by the init_process_hook() function</para></listitem><listitem><para>time_t begin_date: the begin time of the current processing interval</para></listitem><listitem><para>time_t end_date: the end time of the current processing interval</para></listitem></itemizedlist>
</para><para>And must return:</para><para><itemizedlist>
<listitem><para>1 if processing should continue normally</para></listitem><listitem><para>0 if processing should skip the current processing interval and continue on to the next one.</para></listitem><listitem><para>-1 if a fatal error occurred and the process should exit.</para></listitem></itemizedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>pre_retrieval_hook</parametername>
</parameternamelist>
<parameterdescription>
<para>- function to call before data is retrieved </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="147" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_hooks.c" bodystart="680" bodyend="687"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MAIN_1gaefbf3270ce1234ce72441e17f48a6501" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_post_retrieval_hook</definition>
        <argsstring>(int(*post_retrieval_hook)(void *user_data, time_tbegin_date, time_tend_date, CDSGroup *ret_data))</argsstring>
        <name>dsproc_set_post_retrieval_hook</name>
        <param>
          <type>int(*)(void *user_data, time_tbegin_date, time_tend_date, <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *ret_data)</type>
          <declname>post_retrieval_hook</declname>
        </param>
        <briefdescription>
<para>VAP: Set hook function to call after data is retrieved. </para>        </briefdescription>
        <detaileddescription>
<para>This function must be called from the main function before <ref refid="group__DSPROC__MAIN_1ga1679b444fc06ed04aa35b31d5d0b7aba" kindref="member">dsproc_main()</ref> is called, or from the init_process_hook() function.</para><para>The specified post_retrieval_hook function will be called once per processing interval just after data retrieval, but before the retrieved observations are merged and QC is applied.</para><para>The post_retrieval_hook function must take the following arguments:</para><para><itemizedlist>
<listitem><para>void *user_data: value returned by the init_process_hook() function</para></listitem><listitem><para>time_t begin_date: the begin time of the current processing interval</para></listitem><listitem><para>time_t end_date: the end time of the current processing interval</para></listitem><listitem><para><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *ret_data: pointer to the parent <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> containing the retrieved data</para></listitem></itemizedlist>
</para><para>And must return:</para><para><itemizedlist>
<listitem><para>1 if processing should continue normally</para></listitem><listitem><para>0 if processing should skip the current processing interval and continue on to the next one.</para></listitem><listitem><para>-1 if a fatal error occurred and the process should exit.</para></listitem></itemizedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>post_retrieval_hook</parametername>
</parameternamelist>
<parameterdescription>
<para>- function to call after data is retrieved </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="154" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_hooks.c" bodystart="715" bodyend="723"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MAIN_1gaf0a2bd4827314d9ecd86f4a49439291f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_pre_transform_hook</definition>
        <argsstring>(int(*pre_transform_hook)(void *user_data, time_tbegin_date, time_tend_date, CDSGroup *ret_data))</argsstring>
        <name>dsproc_set_pre_transform_hook</name>
        <param>
          <type>int(*)(void *user_data, time_tbegin_date, time_tend_date, <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *ret_data)</type>
          <declname>pre_transform_hook</declname>
        </param>
        <briefdescription>
<para>VAP: Set hook function to call before the data is transformed. </para>        </briefdescription>
        <detaileddescription>
<para>This function must be called from the main function before <ref refid="group__DSPROC__MAIN_1ga1679b444fc06ed04aa35b31d5d0b7aba" kindref="member">dsproc_main()</ref> is called, or from the init_process_hook() function.</para><para>The specified pre_transform_hook function will be called once per processing interval just prior to data transformation, and after the retrieved observations are merged and QC is applied.</para><para>The pre_transform_hook function must take the following arguments:</para><para><itemizedlist>
<listitem><para>void *user_data: value returned by the init_process_hook() function</para></listitem><listitem><para>time_t begin_date: the begin time of the current processing interval</para></listitem><listitem><para>time_t end_date: the end time of the current processing interval</para></listitem><listitem><para><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *ret_data: pointer to the parent <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> containing the retrieved data</para></listitem></itemizedlist>
</para><para>And must return:</para><para><itemizedlist>
<listitem><para>1 if processing should continue normally</para></listitem><listitem><para>0 if processing should skip the current processing interval and continue on to the next one.</para></listitem><listitem><para>-1 if a fatal error occurred and the process should exit.</para></listitem></itemizedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>pre_transform_hook</parametername>
</parameternamelist>
<parameterdescription>
<para>- function to call before the data is transformed </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="161" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_hooks.c" bodystart="751" bodyend="759"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MAIN_1ga6af2754d1063d18450062875171217d6" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_post_transform_hook</definition>
        <argsstring>(int(*post_transform_hook)(void *user_data, time_tbegin_date, time_tend_date, CDSGroup *trans_data))</argsstring>
        <name>dsproc_set_post_transform_hook</name>
        <param>
          <type>int(*)(void *user_data, time_tbegin_date, time_tend_date, <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *trans_data)</type>
          <declname>post_transform_hook</declname>
        </param>
        <briefdescription>
<para>VAP: Set hook function to call after the data is transformed. </para>        </briefdescription>
        <detaileddescription>
<para>This function must be called from the main function before <ref refid="group__DSPROC__MAIN_1ga1679b444fc06ed04aa35b31d5d0b7aba" kindref="member">dsproc_main()</ref> is called, or from the init_process_hook() function.</para><para>The specified post_transform_hook function will be called once per processing interval just after data transformation, but before the output datasets are created.</para><para>The post_transform_hook function must take the following arguments:</para><para><itemizedlist>
<listitem><para>void *user_data: value returned by the init_process_hook() function</para></listitem><listitem><para>time_t begin_date: the begin time of the current processing interval</para></listitem><listitem><para>time_t end_date: the end time of the current processing interval</para></listitem><listitem><para><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *trans_data: pointer to the parent <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> containing the transformed data</para></listitem></itemizedlist>
</para><para>And must return:</para><para><itemizedlist>
<listitem><para>1 if processing should continue normally</para></listitem><listitem><para>0 if processing should skip the current processing interval and continue on to the next one.</para></listitem><listitem><para>-1 if a fatal error occurred and the process should exit.</para></listitem></itemizedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>post_transform_hook</parametername>
</parameternamelist>
<parameterdescription>
<para>- function to call after the data is transformed </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="168" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_hooks.c" bodystart="787" bodyend="795"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MAIN_1ga57db261858928ca170cecb234024b918" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_quicklook_hook</definition>
        <argsstring>(int(*quicklook_hook)(void *user_data, time_tbegin_date, time_tend_date))</argsstring>
        <name>dsproc_set_quicklook_hook</name>
        <param>
          <type>int(*)(void *user_data, time_tbegin_date, time_tend_date)</type>
          <declname>quicklook_hook</declname>
        </param>
        <briefdescription>
<para>VAP or Ingest: Set hook function to call after all data is stored. </para>        </briefdescription>
        <detaileddescription>
<para>This function must be called from the main function before <ref refid="group__DSPROC__MAIN_1ga1679b444fc06ed04aa35b31d5d0b7aba" kindref="member">dsproc_main()</ref> is called, or from the init_process_hook() function.</para><para>The specified quicklook_hook function will be called once per processing interval just after all data is stored.</para><para>The quicklook_hook function must take the following arguments:</para><para><itemizedlist>
<listitem><para>void *user_data: value returned by the init_process_hook() function</para></listitem><listitem><para>time_t begin_date: the begin time of the current processing interval</para></listitem><listitem><para>time_t end_date: the end time of the current processing interval</para></listitem></itemizedlist>
</para><para>And must return:</para><para><itemizedlist>
<listitem><para>1 if processing should continue normally</para></listitem><listitem><para>0 if processing should skip the current processing interval and continue on to the next one.</para></listitem><listitem><para>-1 if a fatal error occurred and the process should exit.</para></listitem></itemizedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>quicklook_hook</parametername>
</parameternamelist>
<parameterdescription>
<para>- function to call after all data is stored </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="174" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_hooks.c" bodystart="821" bodyend="828"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MAIN_1gaec68cde7e273a2d77b1eaa7a0c7343d1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_process_file_hook</definition>
        <argsstring>(int(*process_file_hook)(void *user_data, const char *input_dir, const char *file_name))</argsstring>
        <name>dsproc_set_process_file_hook</name>
        <param>
          <type>int(*)(void *user_data, const char *input_dir, const char *file_name)</type>
          <declname>process_file_hook</declname>
        </param>
        <briefdescription>
<para>Ingest: Set the main file processing function. </para>        </briefdescription>
        <detaileddescription>
<para>This function must be called from the main function before <ref refid="group__DSPROC__MAIN_1ga1679b444fc06ed04aa35b31d5d0b7aba" kindref="member">dsproc_main()</ref> is called, or from the init_process_hook() function.</para><para>The specified process_file_hook function will be called once for every file found in the input directory, and it must take the following arguments:</para><para><itemizedlist>
<listitem><para>void *user_data: value returned by the init_process_hook() function</para></listitem><listitem><para>const char *input_dir: full path to the input directory</para></listitem><listitem><para>const char *file_name: name of the file to process</para></listitem></itemizedlist>
</para><para>And must return:</para><para><itemizedlist>
<listitem><para>1 if processing should continue normally</para></listitem><listitem><para>0 if processing should skip the current file and continue on to the next one.</para></listitem><listitem><para>-1 if a fatal error occurred and the process should exit.</para></listitem></itemizedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>process_file_hook</parametername>
</parameternamelist>
<parameterdescription>
<para>- the main file processing function </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="180" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_hooks.c" bodystart="852" bodyend="859"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MAIN_1gaba4b338c3a4eeab6572007c19f5d3171" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_custom_qc_hook</definition>
        <argsstring>(int(*custom_qc_hook)(void *user_data, intds_id, CDSGroup *dataset))</argsstring>
        <name>dsproc_set_custom_qc_hook</name>
        <param>
          <type>int(*)(void *user_data, intds_id, <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *dataset)</type>
          <declname>custom_qc_hook</declname>
        </param>
        <briefdescription>
<para>Ingest: Set the custom QC function. </para>        </briefdescription>
        <detaileddescription>
<para>This function must be called from the main function before <ref refid="group__DSPROC__MAIN_1ga1679b444fc06ed04aa35b31d5d0b7aba" kindref="member">dsproc_main()</ref> is called, or from the init_process_hook() function.</para><para>The specified custom_qc_hook function will be called just after the standard QC checks are applied when the data is stored, and it must take the following arguments:</para><para><itemizedlist>
<listitem><para>void *user_data: value returned by the init_process_hook() function</para></listitem></itemizedlist>
</para><para><itemizedlist>
<listitem><para>int ds_id: datastream ID</para></listitem></itemizedlist>
</para><para><itemizedlist>
<listitem><para><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *dataset: pointer to the dataset</para></listitem></itemizedlist>
</para><para>And must return:</para><para><itemizedlist>
<listitem><para>1 if processing should continue normally</para></listitem><listitem><para>0 if processing should skip the current dataset and continue</para></listitem><listitem><para>-1 if a fatal error occurred and the process should exit</para></listitem></itemizedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>custom_qc_hook</parametername>
</parameternamelist>
<parameterdescription>
<para>- function used to apply custom QC checks </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="186" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_hooks.c" bodystart="885" bodyend="892"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MAIN_1ga033f84b0c73051b9b2083cc5c76cbc02" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_station_view_hook</definition>
        <argsstring>(void *user_data, time_t begin_date, time_t end_date, CDSGroup *trans_data)</argsstring>
        <name>dsproc_station_view_hook</name>
        <param>
          <type>void *</type>
          <declname>user_data</declname>
        </param>
        <param>
          <type>time_t</type>
          <declname>begin_date</declname>
        </param>
        <param>
          <type>time_t</type>
          <declname>end_date</declname>
        </param>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>trans_data</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="193" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_station_view_hook.c" bodystart="59" bodyend="450"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MESSAGES_1ga9cd7e5684665965697b02862b47b57e7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_get_debug_level</definition>
        <argsstring>(void)</argsstring>
        <name>dsproc_get_debug_level</name>
        <param>
          <type>void</type>
        </param>
        <briefdescription>
<para>Get the current debug level. </para>        </briefdescription>
        <detaileddescription>
<para><simplesect kind="return"><para></para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="328" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_messages.c" bodystart="454" bodyend="457"/>
        <references refid="messenger_8h_1ac791733161412261186acd64e02b55e0">msngr_debug_level</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__INFO_1ga78be2bbf2b8651efb06921b1df4f539e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char* dsproc_get_site</definition>
        <argsstring>(void)</argsstring>
        <name>dsproc_get_site</name>
        <param>
          <type>void</type>
        </param>
        <briefdescription>
<para>Get the process site. </para>        </briefdescription>
        <detaileddescription>
<para><simplesect kind="return"><para>site name </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="338" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc.c" bodystart="4015" bodyend="4018"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__INFO_1gaa1e4c8e971e35ae8aec470c83a4234e0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char* dsproc_get_facility</definition>
        <argsstring>(void)</argsstring>
        <name>dsproc_get_facility</name>
        <param>
          <type>void</type>
        </param>
        <briefdescription>
<para>Get the process facility. </para>        </briefdescription>
        <detaileddescription>
<para><simplesect kind="return"><para>facility </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="339" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc.c" bodystart="4025" bodyend="4028"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__INFO_1ga59224e5b61203d5deffcd2ce3885c541" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char* dsproc_get_name</definition>
        <argsstring>(void)</argsstring>
        <name>dsproc_get_name</name>
        <param>
          <type>void</type>
        </param>
        <briefdescription>
<para>Get the process name. </para>        </briefdescription>
        <detaileddescription>
<para><simplesect kind="return"><para>process name </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="340" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc.c" bodystart="4035" bodyend="4038"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CONTROL_1ga69a77c7be874fd5599465d297ad8ec5f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_datastream_split_mode</definition>
        <argsstring>(int ds_id, SplitMode split_mode, double split_start, double split_interval)</argsstring>
        <name>dsproc_set_datastream_split_mode</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type><ref refid="group__DSPROC__CONTROL_1gaa84661e0fcef11e4b346bc7ed122eb3f" kindref="member">SplitMode</ref></type>
          <declname>split_mode</declname>
        </param>
        <param>
          <type>double</type>
          <declname>split_start</declname>
        </param>
        <param>
          <type>double</type>
          <declname>split_interval</declname>
        </param>
        <briefdescription>
<para>Set the file splitting mode for output files. </para>        </briefdescription>
        <detaileddescription>
<para>Default for VAPs: always create a new file when data is stored</para><para><itemizedlist>
<listitem><para>split_mode = SPLIT_ON_STORE</para></listitem><listitem><para>split_start = ignored</para></listitem><listitem><para>split_interval = ignored</para></listitem></itemizedlist>
</para><para>Default for Ingests: daily files that split at midnight</para><para><itemizedlist>
<listitem><para>split_mode = SPLIT_ON_HOURS</para></listitem><listitem><para>split_start = 0</para></listitem><listitem><para>split_interval = 24</para></listitem></itemizedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>split_mode</parametername>
</parameternamelist>
<parameterdescription>
<para>- the file splitting mode (see SplitMode) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>split_start</parametername>
</parameternamelist>
<parameterdescription>
<para>- the start of the split interval (see SplitMode) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>split_interval</parametername>
</parameternamelist>
<parameterdescription>
<para>- the split interval (see SplitMode) </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="397" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastream_files.c" bodystart="1938" bodyend="2010"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="messenger_8h_1ac791733161412261186acd64e02b55e0">msngr_debug_level</references>
        <references refid="messenger_8h_1a56b2f7386a8a816e5c14dcc982a2e90d">msngr_provenance_level</references>
        <references refid="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3faae7d04a5dec790ac8cf738dfffd45e80" compoundref="dsproc3_8h" startline="376">SPLIT_ON_STORE</references>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3faf50477354748ac4aaeb744945ea81004" compoundref="dsproc3_8h" startline="378">SPLIT_ON_HOURS</references>
        <references refid="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3fa01e320cd708e4f7a134484a56bb2c904" compoundref="dsproc3_8h" startline="381">SPLIT_ON_DAYS</references>
        <references refid="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3fa2f01a9e9ab78c303b4731007e47fadec" compoundref="dsproc3_8h" startline="384">SPLIT_ON_MONTHS</references>
        <references refid="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3fab47e3d9cfbc682f27a7d48144fcf420c" compoundref="dsproc3_8h" startline="387">SPLIT_NONE</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CONTROL_1gafed0b2eb02002b05e8d0df38a32aa1a5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_log_interval</definition>
        <argsstring>(LogInterval interval, int use_begin_time)</argsstring>
        <name>dsproc_set_log_interval</name>
        <param>
          <type><ref refid="group__DSPROC__CONTROL_1gaae8df92fad9018dec361ef5ada66c667" kindref="member">LogInterval</ref></type>
          <declname>interval</declname>
        </param>
        <param>
          <type>int</type>
          <declname>use_begin_time</declname>
        </param>
        <briefdescription>
<para>Set Log file interval. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>interval</parametername>
</parameternamelist>
<parameterdescription>
<para>- log file interval:<itemizedlist>
<listitem><para>LOG_MONTHLY = create monthly log files</para></listitem><listitem><para>LOG_DAILY = create daily log files</para></listitem><listitem><para>LOG_RUN = create one log file per run</para></listitem></itemizedlist>
</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>use_begin_time</parametername>
</parameternamelist>
<parameterdescription>
<para>- VAP Only: flag indicating if the begin time specified on the command line should be used for the log file time. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="399" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc.c" bodystart="2578" bodyend="2582"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CONTROL_1ga3d3f8a373ea636fa3fb22c0ac127bb02" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_processing_interval_offset</definition>
        <argsstring>(time_t offset)</argsstring>
        <name>dsproc_set_processing_interval_offset</name>
        <param>
          <type>time_t</type>
          <declname>offset</declname>
        </param>
        <briefdescription>
<para>Set the offset to apply to the processing interval. </para>        </briefdescription>
        <detaileddescription>
<para>This function can be used to shift the processing interval and should be called from either the init-process or pre-retrieval hook function.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>offset</parametername>
</parameternamelist>
<parameterdescription>
<para>- offset in seconds </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="400" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc.c" bodystart="2639" bodyend="2645"/>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CONTROL_1gab6c7ecbeae2d47214316bff7d17af925" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_trans_qc_rollup_flag</definition>
        <argsstring>(int flag)</argsstring>
        <name>dsproc_set_trans_qc_rollup_flag</name>
        <param>
          <type>int</type>
          <declname>flag</declname>
        </param>
        <briefdescription>
<para>Set the global transformation QC rollup flag. </para>        </briefdescription>
        <detaileddescription>
<para>This function should typically be called from the users init_process function, but must be called before the post-transform hook returns.</para><para>Setting this flag to true specifies that all bad and indeterminate bits in transformation QC variables should be consolidated into a single bad or indeterminate bit when they are mapped to the output datasets. This bit consolidation will only be done if the input and output QC variables have the appropriate bit descriptions:</para><para><itemizedlist>
<listitem><para>The input transformation QC variables will be determined by checking the tag names in the bit description attributes. These must be in same order as the transformation would define them.</para></listitem></itemizedlist>
</para><para><itemizedlist>
<listitem><para>The output QC variables must contain two bit descriptions for the bad and indeterminate bits to use, and these bit descriptions must begin with the following text:</para><para><itemizedlist>
<listitem><para>&quot;Transformation could not finish&quot;</para></listitem><listitem><para>&quot;Transformation resulted in an indeterminate outcome&quot;</para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para><para>An alternative to calling this function is to set the &quot;ROLLUP TRANS QC&quot; flags for the output datastreams and/or retrieved variables. See <ref refid="group__INTERNAL__DSPROC__DATASTREAM_1ga93215e3446552c06245c24cb58432f53" kindref="member">dsproc_set_datastream_flags()</ref> and <ref refid="group__DSPROC__VARTAGS_1gaccbaaad7e618f92ba1efe4cd24958662" kindref="member">dsproc_set_var_flags()</ref>. These options should not typically be needed, however, because the internal mapping logic will determine when it is appropriate to do the bit consolidation.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>flag</parametername>
</parameternamelist>
<parameterdescription>
<para>- transformation QC rollup flag (1 = TRUE, 0 = FALSE) </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="401" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_map_data.c" bodystart="1476" bodyend="1483"/>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM_1ga9abd018709fe33b3105bc88fa1987c96" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_get_datastream_id</definition>
        <argsstring>(const char *site, const char *facility, const char *dsc_name, const char *dsc_level, DSRole role)</argsstring>
        <name>dsproc_get_datastream_id</name>
        <param>
          <type>const char *</type>
          <declname>site</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>facility</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>dsc_name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>dsc_level</declname>
        </param>
        <param>
          <type><ref refid="group__DSPROC__DATASTREAM_1ga15b890c351c132e694a5ead0c6a413da" kindref="member">DSRole</ref></type>
          <declname>role</declname>
        </param>
        <briefdescription>
<para>Get the ID of a datastream. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>site</parametername>
</parameternamelist>
<parameterdescription>
<para>- site name, or NULL to find first match </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>facility</parametername>
</parameternamelist>
<parameterdescription>
<para>- facility name, or NULL to find first match </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>dsc_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream class name </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>dsc_level</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream class level </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>role</parametername>
</parameternamelist>
<parameterdescription>
<para>- specifies input or output datastream</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>datastream ID</para></listitem><listitem><para>-1 if the datastream has not beed defined </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="426" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastreams.c" bodystart="1067" bodyend="1098"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM_1gadb5c417cc3a0f80fce823f2454c8a2ca" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_get_input_datastream_id</definition>
        <argsstring>(const char *dsc_name, const char *dsc_level)</argsstring>
        <name>dsproc_get_input_datastream_id</name>
        <param>
          <type>const char *</type>
          <declname>dsc_name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>dsc_level</declname>
        </param>
        <briefdescription>
<para>Get the ID of an input datastream. </para>        </briefdescription>
        <detaileddescription>
<para>This function will generate an error if the specified datastream class has not been defined in the database as an input for this process.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dsc_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream class name </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>dsc_level</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream class level</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>datastream ID</para></listitem><listitem><para>-1 if an error occurs </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="430" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastreams.c" bodystart="1116" bodyend="1135"/>
        <references refid="group__DSPROC__DATASTREAM_1ga9abd018709fe33b3105bc88fa1987c96" compoundref="dsproc__datastreams_8c" startline="1067" endline="1098">dsproc_get_datastream_id</references>
        <references refid="group__DSPROC__DATASTREAM_1gga15b890c351c132e694a5ead0c6a413daa6f20dd563fa70b31ad1c06c210b74af3" compoundref="dsproc3_8h" startline="416">DSR_INPUT</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga7bf9c9b014653e09b11b3df266530a44" compoundref="dsproc3_8h" startline="1136">DSPROC_EBADINDSC</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM_1ga89806725d9b5385df3e780ba120e7f63" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_get_input_datastream_ids</definition>
        <argsstring>(int **ids)</argsstring>
        <name>dsproc_get_input_datastream_ids</name>
        <param>
          <type>int **</type>
          <declname>ids</declname>
        </param>
        <briefdescription>
<para>Get the IDs of all input datastreams. </para>        </briefdescription>
        <detaileddescription>
<para>This function will return an array of all input datastream ids. The memory used by the returned array is dynamically allocated and must be freed by the calling process.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ids</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: pointer to a dymanically allocated array of input datastream ids</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>number of input datastreams</para></listitem><listitem><para>-1 if a memory allocation error occurs </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="432" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastreams.c" bodystart="1154" bodyend="1182"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
        <references refid="group__DSPROC__DATASTREAM_1gga15b890c351c132e694a5ead0c6a413daa6f20dd563fa70b31ad1c06c210b74af3" compoundref="dsproc3_8h" startline="416">DSR_INPUT</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM_1gaea7fc1c2a2ccf3e204a81233a605d432" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_get_output_datastream_id</definition>
        <argsstring>(const char *dsc_name, const char *dsc_level)</argsstring>
        <name>dsproc_get_output_datastream_id</name>
        <param>
          <type>const char *</type>
          <declname>dsc_name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>dsc_level</declname>
        </param>
        <briefdescription>
<para>Get the ID of an output datastream. </para>        </briefdescription>
        <detaileddescription>
<para>This function will generate an error if the specified datastream class has not been defined in the database as an output for this process.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dsc_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream class name </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>dsc_level</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream class level</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>datastream ID</para></listitem><listitem><para>-1 if an error occurs </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="436" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastreams.c" bodystart="1200" bodyend="1219"/>
        <references refid="group__DSPROC__DATASTREAM_1ga9abd018709fe33b3105bc88fa1987c96" compoundref="dsproc__datastreams_8c" startline="1067" endline="1098">dsproc_get_datastream_id</references>
        <references refid="group__DSPROC__DATASTREAM_1gga15b890c351c132e694a5ead0c6a413daa65007e1eac434ec827bf3219392a1954" compoundref="dsproc3_8h" startline="417">DSR_OUTPUT</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga034392f0adcc1fce373ddbd91564a009" compoundref="dsproc3_8h" startline="1145">DSPROC_EBADOUTDSC</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM_1ga232c0fb35aa38daad224c10b7e5204f2" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_get_output_datastream_ids</definition>
        <argsstring>(int **ids)</argsstring>
        <name>dsproc_get_output_datastream_ids</name>
        <param>
          <type>int **</type>
          <declname>ids</declname>
        </param>
        <briefdescription>
<para>Get the IDs of all output datastreams. </para>        </briefdescription>
        <detaileddescription>
<para>This function will return an array of all output datastream ids. The memory used by the returned array is dynamically allocated and must be freed by the calling process.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ids</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: pointer to a dymanically allocated array of output datastream ids</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>number of output datastreams</para></listitem><listitem><para>-1 if a memory allocation error occurs </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="438" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastreams.c" bodystart="1238" bodyend="1266"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
        <references refid="group__DSPROC__DATASTREAM_1gga15b890c351c132e694a5ead0c6a413daa65007e1eac434ec827bf3219392a1954" compoundref="dsproc3_8h" startline="417">DSR_OUTPUT</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM_1gafdd0388c2c76cf124a8be784c69a7839" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char* dsproc_datastream_name</definition>
        <argsstring>(int ds_id)</argsstring>
        <name>dsproc_datastream_name</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <briefdescription>
<para>Returns the fully qualified datastream name. </para>        </briefdescription>
        <detaileddescription>
<para>The returned datastream name belongs to the internal datastream structure and must not be freed or altered by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream ID</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the datastream name</para></listitem><listitem><para>NULL if the datastream ID is not valid </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="440" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastreams.c" bodystart="1280" bodyend="1289"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM_1ga53991f183de71e533f67675b3656e466" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char* dsproc_datastream_site</definition>
        <argsstring>(int ds_id)</argsstring>
        <name>dsproc_datastream_site</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <briefdescription>
<para>Returns the datastream site. </para>        </briefdescription>
        <detaileddescription>
<para>The returned site code belongs to the internal datastream structure and must not be freed or altered by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream ID</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the datastream site code</para></listitem><listitem><para>NULL if the datastream ID is not valid </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="441" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastreams.c" bodystart="1349" bodyend="1358"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM_1ga14e620670ed5e6f3d39ab7c9b11fa94a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char* dsproc_datastream_facility</definition>
        <argsstring>(int ds_id)</argsstring>
        <name>dsproc_datastream_facility</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <briefdescription>
<para>Returns the datastream facility. </para>        </briefdescription>
        <detaileddescription>
<para>The returned facility code belongs to the internal datastream structure and must not be freed or altered by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream ID</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the datastream facility code</para></listitem><listitem><para>NULL if the datastream ID is not valid </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="442" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastreams.c" bodystart="1372" bodyend="1381"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM_1gaa599c5528b8b1525353ee0e948cb1831" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char* dsproc_datastream_class_name</definition>
        <argsstring>(int ds_id)</argsstring>
        <name>dsproc_datastream_class_name</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <briefdescription>
<para>Returns the datastream class name. </para>        </briefdescription>
        <detaileddescription>
<para>The returned datastream class name belongs to the internal datastream structure and must not be freed or altered by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream ID</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the datastream class name</para></listitem><listitem><para>NULL if the datastream ID is not valid </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="443" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastreams.c" bodystart="1303" bodyend="1312"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM_1ga9ebd4a259caddd61a441330738ee79d5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char* dsproc_datastream_class_level</definition>
        <argsstring>(int ds_id)</argsstring>
        <name>dsproc_datastream_class_level</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <briefdescription>
<para>Returns the datastream class level. </para>        </briefdescription>
        <detaileddescription>
<para>The returned datastream class level belongs to the internal datastream structure and must not be freed or altered by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream ID</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the datastream class level</para></listitem><listitem><para>NULL if the datastream ID is not valid </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="444" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastreams.c" bodystart="1326" bodyend="1335"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM_1ga18725926d3880714f2be6fb7f3cb9730" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char* dsproc_datastream_path</definition>
        <argsstring>(int ds_id)</argsstring>
        <name>dsproc_datastream_path</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <briefdescription>
<para>Returns the path to the datastream directory. </para>        </briefdescription>
        <detaileddescription>
<para>The returned path belongs to the internal datastream structure and must not be freed or altered by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream ID</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the path to the datastream directory</para></listitem><listitem><para>NULL if the datastream path has not been set </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="445" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastreams.c" bodystart="1395" bodyend="1412"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM__FILES_1ga5980db27315e22c0857fc0e6571545b5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_add_datastream_file_patterns</definition>
        <argsstring>(int ds_id, int npatterns, const char **patterns, int ignore_case)</argsstring>
        <name>dsproc_add_datastream_file_patterns</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>int</type>
          <declname>npatterns</declname>
        </param>
        <param>
          <type>const char **</type>
          <declname>patterns</declname>
        </param>
        <param>
          <type>int</type>
          <declname>ignore_case</declname>
        </param>
        <briefdescription>
<para>Add datastream file patterns. </para>        </briefdescription>
        <detaileddescription>
<para>This function adds file patterns to look for when creating the list of files in the datastream directory. By default all files in the directory will be listed.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>npatterns</parametername>
</parameternamelist>
<parameterdescription>
<para>- number of file patterns </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>patterns</parametername>
</parameternamelist>
<parameterdescription>
<para>- list of extended regex file patterns (man regcomp) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ignore_case</parametername>
</parameternamelist>
<parameterdescription>
<para>- ingnore case in file patterns</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="459" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastream_files.c" bodystart="1855" bodyend="1894"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="messenger_8h_1ac791733161412261186acd64e02b55e0">msngr_debug_level</references>
        <references refid="messenger_8h_1a56b2f7386a8a816e5c14dcc982a2e90d">msngr_provenance_level</references>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM__FILES_1ga38197c4f0a8902eba75886b089f4df88" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_find_datastream_files</definition>
        <argsstring>(int ds_id, time_t begin_time, time_t end_time, char ***file_list)</argsstring>
        <name>dsproc_find_datastream_files</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>time_t</type>
          <declname>begin_time</declname>
        </param>
        <param>
          <type>time_t</type>
          <declname>end_time</declname>
        </param>
        <param>
          <type>char ***</type>
          <declname>file_list</declname>
        </param>
        <briefdescription>
<para>Find all files in a datastream directory for a specified time range. </para>        </briefdescription>
        <detaileddescription>
<para>This function will return a list of all files in a datastream directory containing data for the specified time range. This search will include the begin_time but exclude the end_time. That is, it will find files that include data greter than or equal to the begin time, and less than the end time.</para><para>If the begin_time is not specified, the file containing data for the time just prior to the end_time will be returned.</para><para>If the end_time is not specified, the file containing data for the time just after the begin_time will be returned.</para><para>The memory used by the returned file list is dynamically allocated and and must be freed using the <ref refid="group__DSPROC__DATASTREAM__FILES_1ga043642c0bd5c7b6f2063d1b0893c5616" kindref="member">dsproc_free_file_list()</ref> function.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>begin_time</parametername>
</parameternamelist>
<parameterdescription>
<para>- beginning of the time range to search </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>end_time</parametername>
</parameternamelist>
<parameterdescription>
<para>- end of the time range to search </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>file_list</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: pointer to the NULL terminated file list</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>nfiles</parametername>
</parameternamelist>
<parameterdescription>
<para>the number of files found </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>-1</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="465" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastream_files.c" bodystart="1370" bodyend="1540"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="messenger_8h_1ac791733161412261186acd64e02b55e0">msngr_debug_level</references>
        <references refid="messenger_8h_1a56b2f7386a8a816e5c14dcc982a2e90d">msngr_provenance_level</references>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__ARMUTILS__TIME__UTILS_1ga86c4dfd9a3f1caea39dd4cb320cbe729">format_secs1970</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1gaad95f132cb748c28c183bda869c569e4" compoundref="dsproc3_8h" startline="1148">DSPROC_EBADDSID</references>
        <references refid="group__DSPROC__STATUS_1ga8d334e08d3248cf882966101ae22f10b" compoundref="dsproc3_8h" startline="1100">DSPROC_EDSPATH</references>
        <references refid="group__DSPROC__STATUS_1ga8f5cbf90ba7eb70c11542bf46411cb7b" compoundref="dsproc3_8h" startline="1217">DSPROC_ENOFILETIME</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM__FILES_1ga043642c0bd5c7b6f2063d1b0893c5616" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_free_file_list</definition>
        <argsstring>(char **file_list)</argsstring>
        <name>dsproc_free_file_list</name>
        <param>
          <type>char **</type>
          <declname>file_list</declname>
        </param>
        <briefdescription>
<para>Free a null terminated list of file names. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>file_list</parametername>
</parameternamelist>
<parameterdescription>
<para>- null terminated list of file names </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="467" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastream_files.c" bodystart="1329" bodyend="1339"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM__FILES_1gaab26e606fd855641b468216997952ef5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_get_datastream_files</definition>
        <argsstring>(int ds_id, char ***file_list)</argsstring>
        <name>dsproc_get_datastream_files</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>char ***</type>
          <declname>file_list</declname>
        </param>
        <briefdescription>
<para>Get the list of files in a datastream directory. </para>        </briefdescription>
        <detaileddescription>
<para>By default the returned list will be sorted using the <ref refid="group__ARMUTILS__STRING__UTILS_1ga8e76b4c1a87c2127ed4b8250769b2d79" kindref="member" external="libarmutils.tag">qsort_numeric_strcmp()</ref> function for input datastreams with a datalevel starting with a 0. The <ref refid="group__ARMUTILS__STRING__UTILS_1ga0a670793c6c44af6ea4eba80f06001ae" kindref="member" external="libarmutils.tag">qsort_strcmp()</ref> function will be used for all other datastreams. A different file name compare function can be set using <ref refid="group__DSPROC__DATASTREAM__FILES_1ga1619dbe09b203cffba72038b11545e93" kindref="member">dsproc_set_file_name_compare_function()</ref>.</para><para>The memory used by the returned file list is dynamically allocated and and must be freed using the <ref refid="group__DSPROC__DATASTREAM__FILES_1ga043642c0bd5c7b6f2063d1b0893c5616" kindref="member">dsproc_free_file_list()</ref> function.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>file_list</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: pointer to the NULL terminated list of file names</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>number of files</para></listitem><listitem><para>-1 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="469" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastream_files.c" bodystart="1564" bodyend="1629"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
        <references refid="group__DSPROC__STATUS_1ga8d334e08d3248cf882966101ae22f10b" compoundref="dsproc3_8h" startline="1100">DSPROC_EDSPATH</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM__FILES_1ga9262725cb3dbd7d2d2246547c4119389" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_datastream_path</definition>
        <argsstring>(int ds_id, const char *path)</argsstring>
        <name>dsproc_set_datastream_path</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>path</declname>
        </param>
        <briefdescription>
<para>Set the path to the datastream directory. </para>        </briefdescription>
        <detaileddescription>
<para>Default datastream path set if path == NULL:</para><para><itemizedlist>
<listitem><para><ref refid="group__ARMUTILS__DSENV_1ga4c244a4f26ceb53cfbe886d960a9dad9" kindref="member" external="libarmutils.tag">dsenv_get_collection_dir()</ref> for level 0 input datastreams</para></listitem><listitem><para><ref refid="group__ARMUTILS__DSENV_1ga881d7b26c75ef247dc2c6c0d950ae07b" kindref="member" external="libarmutils.tag">dsenv_get_input_datastream_dir()</ref> for all other input datastreams</para></listitem><listitem><para><ref refid="group__ARMUTILS__DSENV_1gaeac24808fcf1bc210ffcaca7ab581813" kindref="member" external="libarmutils.tag">dsenv_get_output_datastream_dir()</ref> for output datastreams</para></listitem></itemizedlist>
</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>path</parametername>
</parameternamelist>
<parameterdescription>
<para>- path to the datastream directory, or NULL to set the default datastream path</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if an error occurs </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="471" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastream_files.c" bodystart="1651" bodyend="1780"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="group__DSPROC__DATASTREAM_1gga15b890c351c132e694a5ead0c6a413daa6f20dd563fa70b31ad1c06c210b74af3" compoundref="dsproc3_8h" startline="416">DSR_INPUT</references>
        <references refid="group__ARMUTILS__DSENV_1ga4c244a4f26ceb53cfbe886d960a9dad9">dsenv_get_collection_dir</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga8d334e08d3248cf882966101ae22f10b" compoundref="dsproc3_8h" startline="1100">DSPROC_EDSPATH</references>
        <references refid="group__ARMUTILS__DSENV_1ga881d7b26c75ef247dc2c6c0d950ae07b">dsenv_get_input_datastream_dir</references>
        <references refid="group__ARMUTILS__DSENV_1gaeac24808fcf1bc210ffcaca7ab581813">dsenv_get_output_datastream_dir</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
        <references refid="messenger_8h_1ac791733161412261186acd64e02b55e0">msngr_debug_level</references>
        <references refid="messenger_8h_1a56b2f7386a8a816e5c14dcc982a2e90d">msngr_provenance_level</references>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="group__DSPROC__DATASTREAM__FILES_1ga1619dbe09b203cffba72038b11545e93" compoundref="dsproc__datastream__files_8c" startline="1804" endline="1813">dsproc_set_file_name_compare_function</references>
        <references refid="group__ARMUTILS__STRING__UTILS_1ga8e76b4c1a87c2127ed4b8250769b2d79">qsort_numeric_strcmp</references>
        <references refid="group__ARMUTILS__STRING__UTILS_1ga0a670793c6c44af6ea4eba80f06001ae">qsort_strcmp</references>
        <references refid="group__DSPROC__DATASTREAM__FILES_1gad1eec8889d3dbcc6cc864ec38c1b46ae" compoundref="dsproc__datastream__files_8c" startline="1788" endline="1796">dsproc_set_file_name_time_function</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM__FILES_1ga1619dbe09b203cffba72038b11545e93" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_file_name_compare_function</definition>
        <argsstring>(int ds_id, int(*function)(const void *, const void *))</argsstring>
        <name>dsproc_set_file_name_compare_function</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>int(*)(const void *, const void *)</type>
          <declname>function</declname>
        </param>
        <briefdescription>
<para>Set the file name compare function used to sort the file list. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>function</parametername>
</parameternamelist>
<parameterdescription>
<para>- the file name compare function used to sort the file list </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="475" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastream_files.c" bodystart="1804" bodyend="1813"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM__FILES_1gad1eec8889d3dbcc6cc864ec38c1b46ae" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_file_name_time_function</definition>
        <argsstring>(int ds_id, time_t(*function)(const char *))</argsstring>
        <name>dsproc_set_file_name_time_function</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>time_t(*)(const char *)</type>
          <declname>function</declname>
        </param>
        <briefdescription>
<para>Set the function used to parse the time from a file name. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>function</parametername>
</parameternamelist>
<parameterdescription>
<para>- the function used to parse the time from a file name </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="479" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastream_files.c" bodystart="1788" bodyend="1796"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASTREAM__FILES_1gad0177e815219c5bb5c488fbf61814532" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_datastream_file_extension</definition>
        <argsstring>(int ds_id, const char *extension)</argsstring>
        <name>dsproc_set_datastream_file_extension</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>extension</declname>
        </param>
        <briefdescription>
<para>Set the datastream file extension. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>extension</parametername>
</parameternamelist>
<parameterdescription>
<para>- file extension </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="483" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datastream_files.c" bodystart="1902" bodyend="1916"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET_1ga18e8f1cea61bb03aec7a4445bb5b4b1c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char* dsproc_dataset_name</definition>
        <argsstring>(CDSGroup *dataset)</argsstring>
        <name>dsproc_dataset_name</name>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>dataset</declname>
        </param>
        <briefdescription>
<para>Returns the dataset name. </para>        </briefdescription>
        <detaileddescription>
<para>The returned name belongs to the dataset structure and must not be freed or altered by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the dataset</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the dataset name </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>NULL</parametername>
</parameternamelist>
<parameterdescription>
<para>if the specified dataset is NULL </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="493" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datasets.c" bodystart="365" bodyend="372"/>
        <references refid="structCDSGroup_1a09f68acfa7f871b417e7b9e84111aa0b">CDSGroup::name</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET_1ga8952211422f6cf2acc4f7e1d6e6193f7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char* dsproc_get_dataset_version</definition>
        <argsstring>(CDSGroup *dataset, int *major, int *minor, int *micro)</argsstring>
        <name>dsproc_get_dataset_version</name>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>dataset</declname>
        </param>
        <param>
          <type>int *</type>
          <declname>major</declname>
        </param>
        <param>
          <type>int *</type>
          <declname>minor</declname>
        </param>
        <param>
          <type>int *</type>
          <declname>micro</declname>
        </param>
        <briefdescription>
<para>Get the DOD version of a dataset. </para>        </briefdescription>
        <detaileddescription>
<para>The memory used by the return string belongs to the global dod_version attribute in the dataset and must not be altered or freed.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the dataset </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>major</parametername>
</parameternamelist>
<parameterdescription>
<para>output: major version number </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>minor</parametername>
</parameternamelist>
<parameterdescription>
<para>output: minor version number </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>micro</parametername>
</parameternamelist>
<parameterdescription>
<para>output: reserved for micro version number (this not currently implemented but I can see a need for it coming soon...)</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>DOD version of the dataset (as a character string)</para></listitem><listitem><para>NULL if the dod_version attribute was not found </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="499" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datasets.c" bodystart="390" bodyend="411"/>
        <references refid="group__CDS__ATTS_1gac852834efa99bfa716556450d08aaade">cds_get_att</references>
        <references refid="structCDSAtt_1a5f6e0c56a1e7e35767539e69727940d6">CDSAtt::type</references>
        <references refid="group__CDS__DATA__TYPES_1ggaf9b792da04e0b823868cf48a01503f0ba965c2d26bf80e13cf899fdb0ad4323fa">CDS_CHAR</references>
        <references refid="group__ARMUTILS__STRING__UTILS_1ga2f221ebc5cc2db9634d80b2981b65119">parse_version_string</references>
        <references refid="structCDSAtt_1ae573a395ceb26ece8102475e2b340c36">CDSAtt::value</references>
        <references refid="unionCDSData_1a9d88223a072d7ade9783a72c1d0f9f1e">CDSData::cp</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET_1gaabac86e3618c6373aadecdf05b0cc333" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
        <definition>CDSGroup* dsproc_get_output_dataset</definition>
        <argsstring>(int ds_id, int obs_index)</argsstring>
        <name>dsproc_get_output_dataset</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>int</type>
          <declname>obs_index</declname>
        </param>
        <briefdescription>
<para>Get an output dataset. </para>        </briefdescription>
        <detaileddescription>
<para>This function will return a pointer to the output dataset for the specifed datastream and observation. The obs_index should always be zero unless observation based processing is being used. This is because all input observations should have been merged into a single observation in the output datasets.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>output datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>obs_index</parametername>
</parameternamelist>
<parameterdescription>
<para>the index of the obervation to get the dataset for</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the output dataset </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>NULL</parametername>
</parameternamelist>
<parameterdescription>
<para>if it does not exist</para></parameterdescription>
</parameteritem>
</parameterlist>
<bold>Example:</bold> Get the dataset for an output datastream <programlisting><codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*dsc_name<sp/><sp/>=<sp/></highlight><highlight class="stringliteral">&quot;example&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*dsc_level<sp/>=<sp/></highlight><highlight class="stringliteral">&quot;c1&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ds_id;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/>*dataset;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/>ds_id<sp/><sp/><sp/>=<sp/><ref refid="group__DSPROC__DATASTREAM_1gaea7fc1c2a2ccf3e204a81233a605d432" kindref="member" tooltip="Get the ID of an output datastream.">dsproc_get_output_datastream_id</ref>(dsc_name,<sp/>dsc_level);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/>dataset<sp/>=<sp/><ref refid="group__DSPROC__DATASET_1gaabac86e3618c6373aadecdf05b0cc333" kindref="member" tooltip="Get an output dataset.">dsproc_get_output_dataset</ref>(ds_id,<sp/>0);</highlight></codeline>
</programlisting> </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="503" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datasets.c" bodystart="441" bodyend="485"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="group__DSPROC__DATASTREAM_1gga15b890c351c132e694a5ead0c6a413daa65007e1eac434ec827bf3219392a1954" compoundref="dsproc3_8h" startline="417">DSR_OUTPUT</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET_1ga4e2820c02adab94b868f09bf9a183b61" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
        <definition>CDSGroup* dsproc_get_retrieved_dataset</definition>
        <argsstring>(int ds_id, int obs_index)</argsstring>
        <name>dsproc_get_retrieved_dataset</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>int</type>
          <declname>obs_index</declname>
        </param>
        <briefdescription>
<para>Get a retrieved dataset. </para>        </briefdescription>
        <detaileddescription>
<para>This function will return a pointer to the retrieved dataset for the specifed datastream and observation.</para><para>The obs_index is used to specify which observation to get the dataset for. This value will typically be zero unless this function is called from a post_retrieval_hook() function, or the process is using observation based processing. In either of these cases the retrieved data will contain one &quot;observation&quot; for every file the data was read from on disk.</para><para>It is also possible to have multiple observations in the retrieved data when a pre_transform_hook() is called if a dimensionality conflict prevented all observations from being merged.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>input datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>obs_index</parametername>
</parameternamelist>
<parameterdescription>
<para>observation index (0 based indexing)</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the retrieved dataset </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>NULL</parametername>
</parameternamelist>
<parameterdescription>
<para>if it does not exist</para></parameterdescription>
</parameteritem>
</parameterlist>
<bold>Example:</bold> Loop over all retrieved datasets for an input datastream <programlisting><codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*dsc_name<sp/><sp/>=<sp/></highlight><highlight class="stringliteral">&quot;example&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*dsc_level<sp/>=<sp/></highlight><highlight class="stringliteral">&quot;b1&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ds_id;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obs_index;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/>*dataset;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/>ds_id<sp/>=<sp/><ref refid="group__DSPROC__DATASTREAM_1gadb5c417cc3a0f80fce823f2454c8a2ca" kindref="member" tooltip="Get the ID of an input datastream.">dsproc_get_input_datastream_id</ref>(dsc_name,<sp/>dsc_level);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(obs_index<sp/>=<sp/>0;<sp/>;<sp/>obs_index++)<sp/>{</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>dataset<sp/>=<sp/><ref refid="group__DSPROC__DATASET_1ga4e2820c02adab94b868f09bf9a183b61" kindref="member" tooltip="Get a retrieved dataset.">dsproc_get_retrieved_dataset</ref>(ds_id,<sp/>obs_index);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!dataset)<sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
</programlisting> </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="507" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datasets.c" bodystart="527" bodyend="561"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="group__DSPROC__DATASTREAM_1gga15b890c351c132e694a5ead0c6a413daa6f20dd563fa70b31ad1c06c210b74af3" compoundref="dsproc3_8h" startline="416">DSR_INPUT</references>
        <references refid="structCDSGroup_1acb3611ebfebc8fb39908244cbb1b4c77">CDSGroup::groups</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET_1ga6de65041cb2326e6864bd1afdc3727d0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
        <definition>CDSGroup* dsproc_get_transformed_dataset</definition>
        <argsstring>(const char *coordsys_name, int ds_id, int obs_index)</argsstring>
        <name>dsproc_get_transformed_dataset</name>
        <param>
          <type>const char *</type>
          <declname>coordsys_name</declname>
        </param>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>int</type>
          <declname>obs_index</declname>
        </param>
        <briefdescription>
<para>Get a transformed dataset. </para>        </briefdescription>
        <detaileddescription>
<para>This function will return a pointer to the transformed dataset for the specifed coordinate system, datastream, and observation. The obs_index should always be zero unless observation based processing is being used. This is because all input observations should have been merged into a single observation in the transformed datasets.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>coordsys_name</parametername>
</parameternamelist>
<parameterdescription>
<para>the name of the coordinate system as specified in the retriever definition or NULL if a coordinate system name was not specified.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>input datastream ID</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>obs_index</parametername>
</parameternamelist>
<parameterdescription>
<para>the index of the obervation to get the dataset for</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the output dataset</para></listitem><listitem><para>NULL if it does not exist </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="512" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_datasets.c" bodystart="584" bodyend="647"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="group__DSPROC__DATASTREAM_1gga15b890c351c132e694a5ead0c6a413daa6f20dd563fa70b31ad1c06c210b74af3" compoundref="dsproc3_8h" startline="416">DSR_INPUT</references>
        <references refid="group__CDS__GROUPS_1ga9e889611fc56d9e9ef394d3e1b138cf8">cds_get_group</references>
        <references refid="structCDSGroup_1a09f68acfa7f871b417e7b9e84111aa0b">CDSGroup::name</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__DIMS_1gac98df80bddc547bf1e75146af4a6eead" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCDSDim" kindref="compound" external="libcds3.tag">CDSDim</ref> *</type>
        <definition>CDSDim* dsproc_get_dim</definition>
        <argsstring>(CDSGroup *dataset, const char *name)</argsstring>
        <name>dsproc_get_dim</name>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>dataset</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Get a dimension from a dataset. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the dataset </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the dimension</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the dimension</para></listitem><listitem><para>NULL if the dimension does not exist </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="524" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_dims.c" bodystart="64" bodyend="69"/>
        <references refid="group__CDS__DIMS_1gac7708a2ede68b01310a7881757a409ca">cds_get_dim</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__DIMS_1gae8c13d0cffc550c77109af8c4e1ff1e4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>size_t</type>
        <definition>size_t dsproc_get_dim_length</definition>
        <argsstring>(CDSGroup *dataset, const char *name)</argsstring>
        <name>dsproc_get_dim_length</name>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>dataset</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Get the length of a dimension in a dataset. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the dataset </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the dimension</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>dimension length</para></listitem><listitem><para>0 if the dimension does not exist or has 0 length </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="528" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_dims.c" bodystart="81" bodyend="92"/>
        <references refid="group__CDS__DIMS_1gac7708a2ede68b01310a7881757a409ca">cds_get_dim</references>
        <references refid="structCDSDim_1a42e561ae4b4001dfa84bdb80150c07e6">CDSDim::length</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__DIMS_1gae1ee4142e877cd749e51cefe7f07517c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_dim_length</definition>
        <argsstring>(CDSGroup *dataset, const char *name, size_t length)</argsstring>
        <name>dsproc_set_dim_length</name>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>dataset</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>length</declname>
        </param>
        <briefdescription>
<para>Set the length of a dimension in a dataset. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the dataset </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the dimension </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>length</parametername>
</parameternamelist>
<parameterdescription>
<para>- new length of the dimension</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if:<itemizedlist>
<listitem><para>the dimension does not exist</para></listitem><listitem><para>the dimension definition is locked</para></listitem><listitem><para>data has already been added to a variable using this dimension </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="533" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_dims.c" bodystart="111" bodyend="150"/>
        <references refid="group__CDS__DIMS_1gac7708a2ede68b01310a7881757a409ca">cds_get_dim</references>
        <references refid="structCDSDim_1a1e611683a0c2aca18b2f38c008fd5c48">CDSDim::def_lock</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__CDSObject_1gad6d5f86f7c842c2e9fc594fe3cfed2bb">cds_get_object_path</references>
        <references refid="group__CDS__DIMS_1ga72b7ad6c97deb48d8b62f36c9e408a77">cds_change_dim_length</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga2510060a562b39a89a116442ceec8c04" compoundref="dsproc3_8h" startline="1256">DSPROC_ECDSSETDIM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__ATTS_1ga8812ccfea7445e519cb75d1a1fedf168" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_change_att</definition>
        <argsstring>(void *parent, int overwrite, const char *name, CDSDataType type, size_t length, void *value)</argsstring>
        <name>dsproc_change_att</name>
        <param>
          <type>void *</type>
          <declname>parent</declname>
        </param>
        <param>
          <type>int</type>
          <declname>overwrite</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref></type>
          <declname>type</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>length</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>value</declname>
        </param>
        <briefdescription>
<para>Change an attribute for a dataset or variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will define the specified attribute if it does not exist. If the attribute does exist and the overwrite flag is set, the data type and value will be changed.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>parent</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the parent <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> or <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>overwrite</parametername>
</parameternamelist>
<parameterdescription>
<para>- overwrite flag (1 = TRUE, 0 = FALSE) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>- attribute name </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>type</parametername>
</parameternamelist>
<parameterdescription>
<para>- attribute data type </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>length</parametername>
</parameternamelist>
<parameterdescription>
<para>- attribute length </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>value</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the attribute value</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if:<itemizedlist>
<listitem><para>the parent object is not a group or variable</para></listitem><listitem><para>the parent group or variable definition is locked</para></listitem><listitem><para>the attribute definition is locked</para></listitem><listitem><para>a memory allocation error occurred </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="549" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_atts.c" bodystart="145" bodyend="162"/>
        <references refid="group__CDS__ATTS_1gaa0a35d6df39ef86862734f2426c2817f">cds_change_att</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga2e6fa221027625ba3f83ff4c327d83a2" compoundref="dsproc3_8h" startline="1250">DSPROC_ECDSCHANGEATT</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__ATTS_1gacd1888cfaa96859393528bea36107f18" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCDSAtt" kindref="compound" external="libcds3.tag">CDSAtt</ref> *</type>
        <definition>CDSAtt* dsproc_get_att</definition>
        <argsstring>(void *parent, const char *name)</argsstring>
        <name>dsproc_get_att</name>
        <param>
          <type>void *</type>
          <declname>parent</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Get an attribute from a dataset or variable. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>parent</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the parent <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> or <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the attribute</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the attribute</para></listitem><listitem><para>NULL if the attribute does not exist </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="553" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_atts.c" bodystart="174" bodyend="179"/>
        <references refid="group__CDS__ATTS_1gac852834efa99bfa716556450d08aaade">cds_get_att</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__ATTS_1gae2c23485559efaf0bc8e8eca5e3c7c29" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>char *</type>
        <definition>char* dsproc_get_att_text</definition>
        <argsstring>(void *parent, const char *name, size_t *length, char *value)</argsstring>
        <name>dsproc_get_att_text</name>
        <param>
          <type>void *</type>
          <declname>parent</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>size_t *</type>
          <declname>length</declname>
        </param>
        <param>
          <type>char *</type>
          <declname>value</declname>
        </param>
        <briefdescription>
<para>Get a copy of an attribute value from a dataset or variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will get a copy of an attribute value converted to a text string. If the data type of the attribute is not CDS_CHAR the <ref refid="group__CDS__CORE__UTILITIES_1gaece5f6c14e872595100deb6b89af718a" kindref="member" external="libcds3.tag">cds_array_to_string()</ref> function is used to create the output string.</para><para>Memory will be allocated for the returned string if the output string is NULL. In this case the calling process is responsible for freeing the allocated memory.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>parent</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the parent <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> or <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the attribute </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>length</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the length of the output string<itemizedlist>
<listitem><para>input:<itemizedlist>
<listitem><para>length of the output string</para></listitem><listitem><para>ignored if the output string is NULL</para></listitem></itemizedlist>
</para></listitem><listitem><para>output:<itemizedlist>
<listitem><para>number of characters written to the output string</para></listitem><listitem><para>0 if the attribute value has zero length</para></listitem><listitem><para>(size_t)-1 if a memory allocation error occurs </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>value</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the output string or NULL to dynamically allocate the memory needed.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the output string</para></listitem><listitem><para>NULL if:<itemizedlist>
<listitem><para>the attribute does not exist or has zero length (length = 0)</para></listitem><listitem><para>a memory allocation error occurs (length == (size_t)-1) </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="559" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_atts.c" bodystart="214" bodyend="239"/>
        <references refid="group__CDS__ATTS_1gac852834efa99bfa716556450d08aaade">cds_get_att</references>
        <references refid="group__CDS__ATTS_1ga2a9f858330971441aa7e9d12690ba9e4">cds_get_att_text</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__ATTS_1ga21e557d42a26d2ec08125ab6495f2c57" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void *</type>
        <definition>void* dsproc_get_att_value</definition>
        <argsstring>(void *parent, const char *name, CDSDataType type, size_t *length, void *value)</argsstring>
        <name>dsproc_get_att_value</name>
        <param>
          <type>void *</type>
          <declname>parent</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref></type>
          <declname>type</declname>
        </param>
        <param>
          <type>size_t *</type>
          <declname>length</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>value</declname>
        </param>
        <briefdescription>
<para>Get a copy of an attribute value from a dataset or variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will get a copy of an attribute value casted into the specified data type. The functions <ref refid="group__CDS__CORE__UTILITIES_1ga615d7908bc96cd6ab8066a3079c92153" kindref="member" external="libcds3.tag">cds_string_to_array()</ref> and <ref refid="group__CDS__CORE__UTILITIES_1gaece5f6c14e872595100deb6b89af718a" kindref="member" external="libcds3.tag">cds_array_to_string()</ref> are used to convert between text (CDS_CHAR) and numeric data types.</para><para>Memory will be allocated for the returned array if the output array is NULL. In this case the calling process is responsible for freeing the allocated memory.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>parent</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the parent <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> or <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the attribute </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>type</parametername>
</parameternamelist>
<parameterdescription>
<para>- data type of the output array </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>length</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the length of the output array<itemizedlist>
<listitem><para>input:<itemizedlist>
<listitem><para>length of the output array</para></listitem><listitem><para>ignored if the output array is NULL</para></listitem></itemizedlist>
</para></listitem><listitem><para>output:<itemizedlist>
<listitem><para>number of values written to the output array</para></listitem><listitem><para>0 if the attribute value has zero length</para></listitem><listitem><para>(size_t)-1 if a memory allocation error occurs </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>value</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the output array or NULL to dynamically allocate the memory needed.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the output array</para></listitem><listitem><para>NULL if:<itemizedlist>
<listitem><para>the attribute value has zero length (length == 0)</para></listitem><listitem><para>a memory allocation error occurs (length == (size_t)-1) </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="566" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_atts.c" bodystart="276" bodyend="302"/>
        <references refid="group__CDS__ATTS_1gac852834efa99bfa716556450d08aaade">cds_get_att</references>
        <references refid="group__CDS__ATTS_1ga1070518e6574e2bc60a9e13c1d7932e9">cds_get_att_value</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__ATTS_1ga2b29a654856f388bc16915f79afdde4a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_att</definition>
        <argsstring>(void *parent, int overwrite, const char *name, CDSDataType type, size_t length, void *value)</argsstring>
        <name>dsproc_set_att</name>
        <param>
          <type>void *</type>
          <declname>parent</declname>
        </param>
        <param>
          <type>int</type>
          <declname>overwrite</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref></type>
          <declname>type</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>length</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>value</declname>
        </param>
        <briefdescription>
<para>Set the value of an attribute in a dataset or variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will define the specified attribute if it does not exist. If the attribute does exist and the overwrite flag is set, the value will be set by casting the specified value into the data type of the attribute. The functions <ref refid="group__CDS__CORE__UTILITIES_1ga615d7908bc96cd6ab8066a3079c92153" kindref="member" external="libcds3.tag">cds_string_to_array()</ref> and <ref refid="group__CDS__CORE__UTILITIES_1gaece5f6c14e872595100deb6b89af718a" kindref="member" external="libcds3.tag">cds_array_to_string()</ref> are used to convert between text (CDS_CHAR) and numeric data types.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>parent</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the parent <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> or <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>overwrite</parametername>
</parameternamelist>
<parameterdescription>
<para>- overwrite flag (1 = TRUE, 0 = FALSE) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>- attribute name </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>type</parametername>
</parameternamelist>
<parameterdescription>
<para>- attribute data type </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>length</parametername>
</parameternamelist>
<parameterdescription>
<para>- attribute length </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>value</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the attribute value</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if:<itemizedlist>
<listitem><para>the parent object is not a group or variable</para></listitem><listitem><para>the parent group or variable definition is locked</para></listitem><listitem><para>the attribute definition is locked</para></listitem><listitem><para>a memory allocation error occurred </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="574" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_atts.c" bodystart="331" bodyend="348"/>
        <references refid="group__CDS__ATTS_1ga406e22638c912d5eb06ec6b2c9a9f31f">cds_set_att</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga8bc036b0bb04d86d17086fec96a569f3" compoundref="dsproc3_8h" startline="1253">DSPROC_ECDSSETATT</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__ATTS_1ga6bf6fa6839a206ca3b4ede3005b61610" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_att_text</definition>
        <argsstring>(void *parent, const char *name, const char *format,...)</argsstring>
        <name>dsproc_set_att_text</name>
        <param>
          <type>void *</type>
          <declname>parent</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>format</declname>
        </param>
        <param>
          <type>...</type>
        </param>
        <briefdescription>
<para>Set the value of an attribute in a dataset or variable. </para>        </briefdescription>
        <detaileddescription>
<para>The <ref refid="group__CDS__CORE__UTILITIES_1ga615d7908bc96cd6ab8066a3079c92153" kindref="member" external="libcds3.tag">cds_string_to_array()</ref> function will be used to set the attribute value if the data type of the attribute is not CDS_CHAR.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>parent</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the parent <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> or <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the attribute </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>format</parametername>
</parameternamelist>
<parameterdescription>
<para>- format string (see printf) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>...</parametername>
</parameternamelist>
<parameterdescription>
<para>- arguments for the format string</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if:<itemizedlist>
<listitem><para>the attribute does not exist</para></listitem><listitem><para>the attribute definition is locked</para></listitem><listitem><para>a memory allocation error occurred </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="579" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_atts.c" bodystart="371" bodyend="402"/>
        <references refid="group__MSNGRUtils_1gaa0c8d48f0c3b84e6c2031296fdba1ced">msngr_format_va_list</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__CDSObject_1gad6d5f86f7c842c2e9fc594fe3cfed2bb">cds_get_object_path</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
        <references refid="group__DSPROC__DATASET__ATTS_1ga53e952ce6597349408ad8ef955a68536" compoundref="dsproc__dataset__atts_8c" startline="428" endline="469">dsproc_set_att_value</references>
        <references refid="group__CDS__DATA__TYPES_1ggaf9b792da04e0b823868cf48a01503f0ba965c2d26bf80e13cf899fdb0ad4323fa">CDS_CHAR</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__ATTS_1ga53e952ce6597349408ad8ef955a68536" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_att_value</definition>
        <argsstring>(void *parent, const char *name, CDSDataType type, size_t length, void *value)</argsstring>
        <name>dsproc_set_att_value</name>
        <param>
          <type>void *</type>
          <declname>parent</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref></type>
          <declname>type</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>length</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>value</declname>
        </param>
        <briefdescription>
<para>Set the value of an attribute in a dataset or variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will set the value of an attribute by casting the specified value into the data type of the attribute. The functions <ref refid="group__CDS__CORE__UTILITIES_1ga615d7908bc96cd6ab8066a3079c92153" kindref="member" external="libcds3.tag">cds_string_to_array()</ref> and <ref refid="group__CDS__CORE__UTILITIES_1gaece5f6c14e872595100deb6b89af718a" kindref="member" external="libcds3.tag">cds_array_to_string()</ref> are used to convert between text (CDS_CHAR) and numeric data types.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>parent</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the parent <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> or <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the attribute </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>type</parametername>
</parameternamelist>
<parameterdescription>
<para>- data type of the specified value </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>length</parametername>
</parameternamelist>
<parameterdescription>
<para>- length of the specified value </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>value</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the attribute value</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if:<itemizedlist>
<listitem><para>the attribute does not exist</para></listitem><listitem><para>the attribute definition is locked</para></listitem><listitem><para>a memory allocation error occurred </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="586" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_atts.c" bodystart="428" bodyend="469"/>
        <references refid="group__CDS__ATTS_1gac852834efa99bfa716556450d08aaade">cds_get_att</references>
        <references refid="structCDSAtt_1a3dc1875e32cb675db8171eda4e96e518">CDSAtt::def_lock</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__CDSObject_1gad6d5f86f7c842c2e9fc594fe3cfed2bb">cds_get_object_path</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga8bc036b0bb04d86d17086fec96a569f3" compoundref="dsproc3_8h" startline="1253">DSPROC_ECDSSETATT</references>
        <references refid="group__CDS__ATTS_1gae0a5c7acce6c4e1cdc083907649eb3b6">cds_set_att_value</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__ATTS_1gab4c9352a79442eadea763bcb83cd4fbc" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_att_value_if_null</definition>
        <argsstring>(void *parent, const char *name, CDSDataType type, size_t length, void *value)</argsstring>
        <name>dsproc_set_att_value_if_null</name>
        <param>
          <type>void *</type>
          <declname>parent</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref></type>
          <declname>type</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>length</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>value</declname>
        </param>
        <briefdescription>
<para>Set the value of an attribute if the current value is NULL. </para>        </briefdescription>
        <detaileddescription>
<para>This function will check if the value for the specified attribute is NULL.</para><para>If the attribute does not exist or the value is not NULL, nothing will be done and the function will return successfully.</para><para>If the value is NULL, it will be set by casting the specified value into the data type of the attribute. The functions <ref refid="group__CDS__CORE__UTILITIES_1ga615d7908bc96cd6ab8066a3079c92153" kindref="member" external="libcds3.tag">cds_string_to_array()</ref> and <ref refid="group__CDS__CORE__UTILITIES_1gaece5f6c14e872595100deb6b89af718a" kindref="member" external="libcds3.tag">cds_array_to_string()</ref> are used to convert between text (CDS_CHAR) and numeric data types.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>parent</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the parent <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> or <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the attribute </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>type</parametername>
</parameternamelist>
<parameterdescription>
<para>- data type of the specified value </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>length</parametername>
</parameternamelist>
<parameterdescription>
<para>- length of the specified value </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>value</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the attribute value</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if a memory allocation error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="593" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_atts.c" bodystart="497" bodyend="519"/>
        <references refid="group__CDS__ATTS_1gac852834efa99bfa716556450d08aaade">cds_get_att</references>
        <references refid="structCDSAtt_1a481da8dd3abe7fe4853e4b9d62b8ea73">CDSAtt::length</references>
        <references refid="structCDSAtt_1a3dc1875e32cb675db8171eda4e96e518">CDSAtt::def_lock</references>
        <references refid="group__CDS__ATTS_1gae0a5c7acce6c4e1cdc083907649eb3b6">cds_set_att_value</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__ATTS_1ga93351ebc3ef9cc4bbead60064d9d3cd2" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_att_text_if_null</definition>
        <argsstring>(void *parent, const char *name, const char *format,...)</argsstring>
        <name>dsproc_set_att_text_if_null</name>
        <param>
          <type>void *</type>
          <declname>parent</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>format</declname>
        </param>
        <param>
          <type>...</type>
        </param>
        <briefdescription>
<para>Set the value of an attribute if the current value is NULL. </para>        </briefdescription>
        <detaileddescription>
<para>This function will check if the value for the specified attribute is NULL.</para><para>If the attribute does not exist or the value is not NULL, nothing will be done and the function will return successfully.</para><para>If the value is NULL, it will be set to the specified value. The <ref refid="group__CDS__CORE__UTILITIES_1ga615d7908bc96cd6ab8066a3079c92153" kindref="member" external="libcds3.tag">cds_string_to_array()</ref> function will be used to set the attribute value if the data type of the attribute is not CDS_CHAR.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>parent</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the parent <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> or <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the attribute </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>format</parametername>
</parameternamelist>
<parameterdescription>
<para>- format string (see printf) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>...</parametername>
</parameternamelist>
<parameterdescription>
<para>- arguments for the format string</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if a memory allocation error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="598" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_atts.c" bodystart="545" bodyend="587"/>
        <references refid="group__CDS__ATTS_1gac852834efa99bfa716556450d08aaade">cds_get_att</references>
        <references refid="structCDSAtt_1a481da8dd3abe7fe4853e4b9d62b8ea73">CDSAtt::length</references>
        <references refid="structCDSAtt_1a3dc1875e32cb675db8171eda4e96e518">CDSAtt::def_lock</references>
        <references refid="group__MSNGRUtils_1gaa0c8d48f0c3b84e6c2031296fdba1ced">msngr_format_va_list</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__CDSObject_1gad6d5f86f7c842c2e9fc594fe3cfed2bb">cds_get_object_path</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
        <references refid="group__CDS__ATTS_1gae0a5c7acce6c4e1cdc083907649eb3b6">cds_set_att_value</references>
        <references refid="group__CDS__DATA__TYPES_1ggaf9b792da04e0b823868cf48a01503f0ba965c2d26bf80e13cf899fdb0ad4323fa">CDS_CHAR</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__ATTS_1ga91020c7f2c2bd7475dea726cd7f6c22f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_var_chunksizes</definition>
        <argsstring>(CDSVar *var, int *time_chunksize)</argsstring>
        <name>dsproc_set_var_chunksizes</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <param>
          <type>int *</type>
          <declname>time_chunksize</declname>
        </param>
        <briefdescription>
<para>Set the _ChunkSizes attribute value for a variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will use the lengths the variable&apos;s dimensions to set the value for the _ChunkSizes attribute if it has not already been defined.</para><para>The time_chunksize argument can be used to specify the size that should be used for the time dimension. If the specified value is 0, the chunk size for the time dimension will be computed using the maximum number of samples per hour as determined from the parent dataset.</para><para>If the size of the uncompressed chunk exceeds the maximum allowed size, the chunk size for the first dimension will be cut in half until the size of the chunk is within limits. This will continue on to the secondary dimesnions if necessary. By default the maximum allowed size of an uncompressed chunk is 4 MiB, this value can be changed using the cds_set_max_chunksize() function.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>time_chunksize</parametername>
</parameternamelist>
<parameterdescription>
<para>- input/output: chunk size to use for the time dimension. This will be computed and returned if the value is 0.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if the variable does not have a _ChunkSizes attribute, the _ChunkSizes attribute value has already been set, or no time values were found in the parent dataset.</para></listitem><listitem><para>-1 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="602" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_atts.c" bodystart="669" bodyend="781"/>
        <references refid="group__CDS__ATTS_1gac852834efa99bfa716556450d08aaade">cds_get_att</references>
        <references refid="structCDSAtt_1a481da8dd3abe7fe4853e4b9d62b8ea73">CDSAtt::length</references>
        <references refid="structCDSAtt_1a5f6e0c56a1e7e35767539e69727940d6">CDSAtt::type</references>
        <references refid="group__CDS__DATA__TYPES_1ggaf9b792da04e0b823868cf48a01503f0ba71b61f884d3dcbf901995969d3cb5ddc">CDS_INT</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__CDSObject_1gad6d5f86f7c842c2e9fc594fe3cfed2bb">cds_get_object_path</references>
        <references refid="group__CDS__DATA__TYPES_1ga816c95790a865ce77df78e995fad45f5">cds_data_type_name</references>
        <references refid="structCDSVar_1af9f05743ab983ac3f87a55a50f39e115">CDSVar::ndims</references>
        <references refid="group__CDS__DATA__TYPES_1gaf87fcd104a858b83acde7c4646210e00">cds_data_type_size</references>
        <references refid="structCDSVar_1a62c8bde11e5ca278495a8abc4fbc1beb">CDSVar::type</references>
        <references refid="structCDSVar_1a5477f8c7086b58a651b730a3fec02682">CDSVar::dims</references>
        <references refid="structCDSDim_1a8288e3efe2ccd4fd245db6cfd3af9022">CDSDim::name</references>
        <references refid="structCDSVar_1a70329b968c6919ff027aa947608b5616">CDSVar::parent</references>
        <references refid="structCDSDim_1a42e561ae4b4001dfa84bdb80150c07e6">CDSDim::length</references>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="structCDSVar_1a08baec1f48b5050d16198e3f0ef3f51f">CDSVar::name</references>
        <references refid="group__CDS__CORE__UTILITIES_1gaece5f6c14e872595100deb6b89af718a">cds_array_to_string</references>
        <references refid="group__CDS__ATTS_1gae0a5c7acce6c4e1cdc083907649eb3b6">cds_set_att_value</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga8bc036b0bb04d86d17086fec96a569f3" compoundref="dsproc3_8h" startline="1253">DSPROC_ECDSSETATT</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__ATTS_1ga63b28fa56cee46ae9867844b0a9109fb" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_max_chunksize</definition>
        <argsstring>(size_t max_chunksize)</argsstring>
        <name>dsproc_set_max_chunksize</name>
        <param>
          <type>size_t</type>
          <declname>max_chunksize</declname>
        </param>
        <briefdescription>
<para>Set the maximum size of a chunk to use when setting _ChunkSizes. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>max_chunksize</parametername>
</parameternamelist>
<parameterdescription>
<para>- maximum size of an uncompressed chunk in bytes </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="605" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_atts.c" bodystart="631" bodyend="634"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__ATTS_1ga2e0617519fb3e5a2f3b5fbf72aaaa91a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_chunksizes</definition>
        <argsstring>(CDSGroup *dataset, int time_chunksize)</argsstring>
        <name>dsproc_set_chunksizes</name>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>dataset</declname>
        </param>
        <param>
          <type>int</type>
          <declname>time_chunksize</declname>
        </param>
        <briefdescription>
<para>Set the values of all _ChunkSizes attributes that have not been defined. </para>        </briefdescription>
        <detaileddescription>
<para>This function will call <ref refid="group__DSPROC__DATASET__ATTS_1ga91020c7f2c2bd7475dea726cd7f6c22f" kindref="member">dsproc_set_var_chunksizes()</ref> for every variable in a dataset that has one or more dimensions.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the dataset </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>time_chunksize</parametername>
</parameternamelist>
<parameterdescription>
<para>- chunk size to use for the time dimension, or 0 to compute it.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="609" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_atts.c" bodystart="606" bodyend="624"/>
        <references refid="structCDSGroup_1a2194b5479c6dd879bb44109137f6108b">CDSGroup::nvars</references>
        <references refid="structCDSGroup_1a126ed622f8abc90300e0751e51aa02c1">CDSGroup::vars</references>
        <references refid="structCDSVar_1af9f05743ab983ac3f87a55a50f39e115">CDSVar::ndims</references>
        <references refid="group__DSPROC__DATASET__ATTS_1ga91020c7f2c2bd7475dea726cd7f6c22f" compoundref="dsproc__dataset__atts_8c" startline="669" endline="781">dsproc_set_var_chunksizes</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__VARS_1gabc56b2b7f10863176156903c6eb56c05" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
        <definition>CDSVar* dsproc_clone_var</definition>
        <argsstring>(CDSVar *src_var, CDSGroup *dataset, const char *var_name, CDSDataType data_type, const char **dim_names, int copy_data)</argsstring>
        <name>dsproc_clone_var</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>src_var</declname>
        </param>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>dataset</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>var_name</declname>
        </param>
        <param>
          <type><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref></type>
          <declname>data_type</declname>
        </param>
        <param>
          <type>const char **</type>
          <declname>dim_names</declname>
        </param>
        <param>
          <type>int</type>
          <declname>copy_data</declname>
        </param>
        <briefdescription>
<para>Create a clone of an existing variable. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>src_var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the source variable to clone </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>- dataset to create the new variable in, or NULL to create the variable in the same dataset the source variable belongs to. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>var_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name to use for the new variable, or NULL to use the source variable name. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>data_type</parametername>
</parameternamelist>
<parameterdescription>
<para>- data type to use for the new variable, or CDS_NAT to use the same data type as the source variable. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>dim_names</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the list of corresponding dimension names in the dataset the new variable will be created in, or NULL if the dimension names are the same. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>copy_data</parametername>
</parameternamelist>
<parameterdescription>
<para>- flag indicating if the data should be copied, (1 == TRUE, 0 == FALSE)</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the new variable</para></listitem><listitem><para>NULL if:<itemizedlist>
<listitem><para>the variable already exists in the dataset</para></listitem><listitem><para>a memory allocation error occurred </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="625" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="288" bodyend="376"/>
        <references refid="structCDSVar_1a70329b968c6919ff027aa947608b5616">CDSVar::parent</references>
        <references refid="structCDSVar_1a08baec1f48b5050d16198e3f0ef3f51f">CDSVar::name</references>
        <references refid="structCDSVar_1a62c8bde11e5ca278495a8abc4fbc1beb">CDSVar::type</references>
        <references refid="structCDSVar_1af9f05743ab983ac3f87a55a50f39e115">CDSVar::ndims</references>
        <references refid="structCDSVar_1a5477f8c7086b58a651b730a3fec02682">CDSVar::dims</references>
        <references refid="structCDSDim_1a8288e3efe2ccd4fd245db6cfd3af9022">CDSDim::name</references>
        <references refid="group__CDS__VARS_1gacdefa1f21e178776cd8d3a7a7c704e7c">cds_get_var</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__CDSObject_1gad6d5f86f7c842c2e9fc594fe3cfed2bb">cds_get_object_path</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga5cd5621a7a5050492bc4238d9222f91f" compoundref="dsproc3_8h" startline="1238">DSPROC_ECLONEVAR</references>
        <references refid="group__CDS__DIMS_1gac7708a2ede68b01310a7881757a409ca">cds_get_dim</references>
        <references refid="group__CDS__DIMS_1gaf4dd688adb9488307fdd1e03409fff4f">cds_define_dim</references>
        <references refid="structCDSDim_1a42e561ae4b4001dfa84bdb80150c07e6">CDSDim::length</references>
        <references refid="structCDSDim_1ab4f7e829f64f1ee019752443045c4d8a">CDSDim::is_unlimited</references>
        <references refid="group__CDS__VARS_1ga8c180b95e8b39b2c131c0894cd5a113b">cds_define_var</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
        <references refid="group__CDS__CORE__COPY_1ga6731152770e850fe5ab96176929975e7">cds_copy_var</references>
        <references refid="structCDSVar_1ae42924a7181b190ecb94849cbb35af2d">CDSVar::sample_count</references>
        <references refid="cds3_8h_1a58fe50bd78a962ca9176f5f73af61df2">CDS_SKIP_DATA</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__VARS_1gaebffd0072f26282bf16f89bba774d631" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
        <definition>CDSVar* dsproc_define_var</definition>
        <argsstring>(CDSGroup *dataset, const char *name, CDSDataType type, int ndims, const char **dim_names, const char *long_name, const char *standard_name, const char *units, void *valid_min, void *valid_max, void *missing_value, void *fill_value)</argsstring>
        <name>dsproc_define_var</name>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>dataset</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref></type>
          <declname>type</declname>
        </param>
        <param>
          <type>int</type>
          <declname>ndims</declname>
        </param>
        <param>
          <type>const char **</type>
          <declname>dim_names</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>long_name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>standard_name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>units</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>valid_min</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>valid_max</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>missing_value</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>fill_value</declname>
        </param>
        <briefdescription>
<para>Define a new variable in an existing dataset. </para>        </briefdescription>
        <detaileddescription>
<para>This function will define a new variable with all standard attributes. Any of the attribute values can be NULL to indicate that the attribute should not be created.</para><para>Description of Attributes:</para><para><bold>long_name:</bold> This is a one line description of the variable and should be suitable to use as a plot title for the variable.</para><para><bold>standard_name:</bold> This is defined in the CF Convention and describes the physical quantities being represented by the variable. Please refer to the &quot;CF Standard Names&quot; section of the CF Convention for the table of standard names.</para><para><bold>units:</bold> This is the units string to use for the variable and must be recognized by the UDUNITS-2 libary.</para><para><bold>valid_min:</bold> The smallest value that should be considered to be a valid data value. The specified value must be the same data type as the variable.</para><para><bold>valid_max:</bold> The largest value that should be considered to be a valid data value. The specified value must be the same data type as the variable.</para><para><bold>missing_value:</bold> This comes from an older NetCDF convention and has been used by ARM for almost 2 decades. The specified value must be the same data type as the variable.</para><para><bold>_FillValue:</bold> Most newer conventions specify the use of _FillValue over missing_value. The value of this attribute is also recognized by the NetCDF library and will be used to initialize the data values on disk when the variable is created. Tools like ncdump will also display fill values as _ so they can be easily identified in a text dump. The libdsproc3 library allows you to use both missing_value and _FillValue and they do not need to be the same. The specified value must be the same data type as the variable.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the dataset </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>type</parametername>
</parameternamelist>
<parameterdescription>
<para>- data type of the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ndims</parametername>
</parameternamelist>
<parameterdescription>
<para>- number of variable dimensions </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>dim_names</parametername>
</parameternamelist>
<parameterdescription>
<para>- array of pointers to the dimension names </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>long_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- string to use for the long_name attribute </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>standard_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- string to use for the standard_name attribute </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>units</parametername>
</parameternamelist>
<parameterdescription>
<para>- string to use for the units attribute </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>valid_min</parametername>
</parameternamelist>
<parameterdescription>
<para>- void pointer to the valid_min </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>valid_max</parametername>
</parameternamelist>
<parameterdescription>
<para>- void pointer to the valid_max </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>missing_value</parametername>
</parameternamelist>
<parameterdescription>
<para>- void pointer to the missing_value </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>fill_value</parametername>
</parameternamelist>
<parameterdescription>
<para>- void pointer to the _FillValue</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the new variable</para></listitem><listitem><para>NULL if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="639" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="443" bodyend="484"/>
        <references refid="group__CDS__VARS_1ga8c180b95e8b39b2c131c0894cd5a113b">cds_define_var</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga86eaa60e98b0506b670ed8c3e3d7cb3b" compoundref="dsproc3_8h" startline="1241">DSPROC_ECDSDEFVAR</references>
        <references refid="group__CDS__ATTS_1ga7b36c8316148acb19b4cc7e5ebeecf3e">cds_define_att_text</references>
        <references refid="group__CDS__ATTS_1gaf27b41b4756715ec7f4f2bf55d8f04ae">cds_define_att</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__CDSObject_1gad6d5f86f7c842c2e9fc594fe3cfed2bb">cds_get_object_path</references>
        <references refid="group__CDS__VARS_1gaf89fa4112ad6ad66e478360256d6e30f">cds_delete_var</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__VARS_1gad13fe9382ae427af31283c118584ff1a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_delete_var</definition>
        <argsstring>(CDSVar *var)</argsstring>
        <name>dsproc_delete_var</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <briefdescription>
<para>Delete a variable from a dataset. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if the variable was deleted (or the input var was NULL)</para></listitem><listitem><para>0 if:<itemizedlist>
<listitem><para>the variable is locked</para></listitem><listitem><para>the group is locked </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="642" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="500" bodyend="510"/>
        <references refid="group__CDS__VARS_1gaf89fa4112ad6ad66e478360256d6e30f">cds_delete_var</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga4bf06d9726b9219f5b70f77a08332f92" compoundref="dsproc3_8h" startline="1244">DSPROC_ECDSDELVAR</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__VARS_1ga7ba0c594b24c7844a977f36c1e21794a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
        <definition>CDSVar* dsproc_get_bounds_var</definition>
        <argsstring>(CDSVar *coord_var)</argsstring>
        <name>dsproc_get_bounds_var</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>coord_var</declname>
        </param>
        <briefdescription>
<para>Get the boundary variable for a coordinate variable. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>coord_var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the coordinate variable</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the boundary variable</para></listitem><listitem><para>NULL if not found </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="644" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="521" bodyend="526"/>
        <references refid="group__CDS__VARS_1gaea7c288533415748100b0d92fead3ef8">cds_get_bounds_var</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__VARS_1gabb4f3288de6ec982e12c02cbc78c0c64" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
        <definition>CDSVar* dsproc_get_coord_var</definition>
        <argsstring>(CDSVar *var, int dim_index)</argsstring>
        <name>dsproc_get_coord_var</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <param>
          <type>int</type>
          <declname>dim_index</declname>
        </param>
        <briefdescription>
<para>Get the coordinate variable for a variable&apos;s dimension. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>dim_index</parametername>
</parameternamelist>
<parameterdescription>
<para>- index of the dimension</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the coordinate variable</para></listitem><listitem><para>NULL if not found </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="648" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="538" bodyend="545"/>
        <references refid="group__CDS__VARS_1ga2b368de41aceb25332b734669c2b07e1">cds_get_coord_var</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__VARS_1gadc6e184c421faaf7b7fd7f81879fc9aa" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_get_dataset_vars</definition>
        <argsstring>(CDSGroup *dataset, const char **var_names, int required, CDSVar ***vars, CDSVar ***qc_vars, CDSVar ***aqc_vars)</argsstring>
        <name>dsproc_get_dataset_vars</name>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>dataset</declname>
        </param>
        <param>
          <type>const char **</type>
          <declname>var_names</declname>
        </param>
        <param>
          <type>int</type>
          <declname>required</declname>
        </param>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> ***</type>
          <declname>vars</declname>
        </param>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> ***</type>
          <declname>qc_vars</declname>
        </param>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> ***</type>
          <declname>aqc_vars</declname>
        </param>
        <briefdescription>
<para>Get variables and companion QC variables from a dataset. </para>        </briefdescription>
        <detaileddescription>
<para>If nvars is 0 or var_names is NULL, the output vars array will contain the pointers to the variables that are not companion QC variables. In this case the variables in the vars array will be in the same order they appear in the dataset. The following time and location variables will be excluded from this array:</para><para><itemizedlist>
<listitem><para>base_time</para></listitem><listitem><para>time_offset</para></listitem><listitem><para>time</para></listitem><listitem><para>time_bounds</para></listitem><listitem><para>lat</para></listitem><listitem><para>lon</para></listitem><listitem><para>alt</para></listitem></itemizedlist>
</para><para>If nvars and var_names are specified, the output vars array will contain an entry for every variable in the var_names list, and will be in the specified order. Variables that are not found in the dataset will have a NULL value if the required flag is set to 0. If the required flag is set to 1 and a variable does not exist, an error will be generated.</para><para>If the qc_vars argument is not NULL it will contain the pointers to the companion qc_ variables. Likewise, if the aqc_vars argument is not NULL it will contain the pointers to the companion aqc_ variables. If a companion QC variable does not exist for a variable, the corresponding entry in the QC array will be NULL.</para><para>The memory used by the returned arrays belongs to a &apos;dsproc_user_...&apos; <ref refid="structCDSVarGroup" kindref="compound" external="libcds3.tag">CDSVarGroup</ref> defined in the dataset and must <emphasis>NOT</emphasis> be freed by the calling process.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the dataset </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>var_names</parametername>
</parameternamelist>
<parameterdescription>
<para>- NULL terminated list of variable names </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>required</parametername>
</parameternamelist>
<parameterdescription>
<para>- specifies if all variables in the names list are required </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>vars</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: pointer to the array of variables </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>qc_vars</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: pointer to the array of companion qc_ variables </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>aqc_vars</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: pointer to the array of companion aqc_ variables</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>length of the output arrays</para></listitem><listitem><para>-1 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="656" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="594" bodyend="830"/>
        <references refid="group__CDS__VAR__GROUPS_1ga492e73c5cf1228ad0e2fd3d767950920">cds_get_vargroup</references>
        <references refid="group__CDS__VAR__GROUPS_1ga8a19bbc362857e189593339114240d12">cds_define_vargroup</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
        <references refid="structCDSGroup_1a2194b5479c6dd879bb44109137f6108b">CDSGroup::nvars</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__CDSObject_1gad6d5f86f7c842c2e9fc594fe3cfed2bb">cds_get_object_path</references>
        <references refid="group__CDS__VAR__GROUPS_1ga6d8416d2bf47653f8b7781006ead4063">cds_delete_vargroup</references>
        <references refid="structCDSGroup_1a126ed622f8abc90300e0751e51aa02c1">CDSGroup::vars</references>
        <references refid="structCDSVar_1a08baec1f48b5050d16198e3f0ef3f51f">CDSVar::name</references>
        <references refid="group__CDS__VARS_1gacdefa1f21e178776cd8d3a7a7c704e7c">cds_get_var</references>
        <references refid="group__CDS__VAR__ARRAYS_1ga61b7a2891056b9134b6fd2019abb1147">cds_get_vararray</references>
        <references refid="structCDSVarArray_1a260a056261fb2f52b4539fd1f23cbbbf">CDSVarArray::vars</references>
        <references refid="group__CDS__VAR__ARRAYS_1gae1c3e6bb072fc6b733993feb1ed7819d">cds_define_vararray</references>
        <references refid="group__DSPROC__STATUS_1gae03b888270c044f6f34e02adfd7ff937" compoundref="dsproc3_8h" startline="1283">DSPROC_EREQVAR</references>
        <references refid="group__CDS__VAR__ARRAYS_1gab10163821223b9f578d80b700ee82550">cds_add_vararray_vars</references>
        <references refid="messenger_8h_1ac791733161412261186acd64e02b55e0">msngr_debug_level</references>
        <references refid="group__CDS__PRINT_1ga2d25093c6116eef880081808e7729d53">cds_print_vargroup</references>
        <references refid="cds3_8h_1a8b6c5f44975aab7e83a1faf22f11319e">CDS_SKIP_VARS</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__VARS_1ga56d03dcc717fe57be7cedd2bd3cb71ab" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
        <definition>CDSVar* dsproc_get_metric_var</definition>
        <argsstring>(CDSVar *var, const char *metric)</argsstring>
        <name>dsproc_get_metric_var</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>metric</declname>
        </param>
        <briefdescription>
<para>Get a companion metric variable for a variable. </para>        </briefdescription>
        <detaileddescription>
<para>Known metrics at the time of this writing (so there may be others):</para><para><itemizedlist>
<listitem><para>&quot;frac&quot;: the fraction of available input values used</para></listitem><listitem><para>&quot;std&quot;: the standard deviation of the calculated value</para></listitem></itemizedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>metric</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the metric</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the metric variable</para></listitem><listitem><para>NULL if not found </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="660" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="847" bodyend="856"/>
        <references refid="structCDSVar_1a08baec1f48b5050d16198e3f0ef3f51f">CDSVar::name</references>
        <references refid="group__CDS__VARS_1gacdefa1f21e178776cd8d3a7a7c704e7c">cds_get_var</references>
        <references refid="structCDSVar_1a70329b968c6919ff027aa947608b5616">CDSVar::parent</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__VARS_1ga6d879e4e5de4fb2d38310fd563e04d5f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
        <definition>CDSVar* dsproc_get_output_var</definition>
        <argsstring>(int ds_id, const char *var_name, int obs_index)</argsstring>
        <name>dsproc_get_output_var</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>var_name</declname>
        </param>
        <param>
          <type>int</type>
          <declname>obs_index</declname>
        </param>
        <briefdescription>
<para>Get a variable from an output dataset. </para>        </briefdescription>
        <detaileddescription>
<para>The obs_index should always be zero unless observation based processing is being used. This is because all input observations should have been merged into a single observation in the output datasets.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- output datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>var_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- variable name </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>obs_index</parametername>
</parameternamelist>
<parameterdescription>
<para>- the index of the obervation to get the dataset for</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the output variable</para></listitem><listitem><para>NULL if it does not exist </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="665" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="873" bodyend="885"/>
        <references refid="group__DSPROC__DATASET_1gaabac86e3618c6373aadecdf05b0cc333" compoundref="dsproc__datasets_8c" startline="441" endline="485">dsproc_get_output_dataset</references>
        <references refid="group__CDS__VARS_1gacdefa1f21e178776cd8d3a7a7c704e7c">cds_get_var</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__VARS_1gab1fe27abbd5132d22410c4921fcf2886" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
        <definition>CDSVar* dsproc_get_qc_var</definition>
        <argsstring>(CDSVar *var)</argsstring>
        <name>dsproc_get_qc_var</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <briefdescription>
<para>Get the companion QC variable for a variable. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the QC variable</para></listitem><listitem><para>NULL if not found </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="668" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="896" bodyend="905"/>
        <references refid="structCDSVar_1a08baec1f48b5050d16198e3f0ef3f51f">CDSVar::name</references>
        <references refid="group__CDS__VARS_1gacdefa1f21e178776cd8d3a7a7c704e7c">cds_get_var</references>
        <references refid="structCDSVar_1a70329b968c6919ff027aa947608b5616">CDSVar::parent</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__VARS_1ga07136b68129cb3fd34737edbe55c39f1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
        <definition>CDSVar* dsproc_get_retrieved_var</definition>
        <argsstring>(const char *var_name, int obs_index)</argsstring>
        <name>dsproc_get_retrieved_var</name>
        <param>
          <type>const char *</type>
          <declname>var_name</declname>
        </param>
        <param>
          <type>int</type>
          <declname>obs_index</declname>
        </param>
        <briefdescription>
<para>Get a primary variable from the retrieved data. </para>        </briefdescription>
        <detaileddescription>
<para>This function will find a variable in the retrieved data that was explicitly requested by the user in the retriever definition.</para><para>The obs_index is used to specify which observation to pull the variable from. This value will typically be zero unless this function is called from a post_retrieval_hook() function, or the process is using observation based processing. In either of these cases the retrieved data will contain one &quot;observation&quot; for every file the data was read from on disk.</para><para>It is also possible to have multiple observations in the retrieved data when a pre_transform_hook() is called if a dimensionality conflict prevented all observations from being merged.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- variable name </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>obs_index</parametername>
</parameternamelist>
<parameterdescription>
<para>- the index of the obervation to get the variable from</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the retrieved variable</para></listitem><listitem><para>NULL if not found </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="672" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="930" bodyend="961"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="structCDSGroup_1a41f30782bbc34282c7816eb5b3418362">CDSGroup::ngroups</references>
        <references refid="structCDSGroup_1acb3611ebfebc8fb39908244cbb1b4c77">CDSGroup::groups</references>
        <references refid="group__CDS__VARS_1gacdefa1f21e178776cd8d3a7a7c704e7c">cds_get_var</references>
        <references refid="group__CDSObject_1ga772b5af3a10bf05ec203af6c668ecd0f">cds_get_user_data</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__VARS_1ga098f1fc930b8f689fd8ff3180c728551" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
        <definition>CDSVar* dsproc_get_transformed_var</definition>
        <argsstring>(const char *var_name, int obs_index)</argsstring>
        <name>dsproc_get_transformed_var</name>
        <param>
          <type>const char *</type>
          <declname>var_name</declname>
        </param>
        <param>
          <type>int</type>
          <declname>obs_index</declname>
        </param>
        <briefdescription>
<para>Get a primary variable from the transformed data. </para>        </briefdescription>
        <detaileddescription>
<para>This function will find a variable in the transformed data that was explicitly requested by the user in the retriever definition.</para><para>The obs_index is used to specify which observation to pull the variable from. This value will typically be zero unless the process is using observation based processing. If this is the case the transformed data will contain one &quot;observation&quot; for every file the data was read from on disk.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- variable name </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>obs_index</parametername>
</parameternamelist>
<parameterdescription>
<para>- the index of the obervation to get the variable from</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the transformed variable</para></listitem><listitem><para>NULL if not found </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="676" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="981" bodyend="1025"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="structCDSGroup_1a41f30782bbc34282c7816eb5b3418362">CDSGroup::ngroups</references>
        <references refid="structCDSGroup_1acb3611ebfebc8fb39908244cbb1b4c77">CDSGroup::groups</references>
        <references refid="group__CDS__VARS_1gacdefa1f21e178776cd8d3a7a7c704e7c">cds_get_var</references>
        <references refid="group__CDSObject_1ga772b5af3a10bf05ec203af6c668ecd0f">cds_get_user_data</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__VARS_1gaf5ba1ab76312be0804970c4e2a7668ad" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
        <definition>CDSVar* dsproc_get_trans_coordsys_var</definition>
        <argsstring>(const char *coordsys_name, const char *var_name, int obs_index)</argsstring>
        <name>dsproc_get_trans_coordsys_var</name>
        <param>
          <type>const char *</type>
          <declname>coordsys_name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>var_name</declname>
        </param>
        <param>
          <type>int</type>
          <declname>obs_index</declname>
        </param>
        <briefdescription>
<para>Get a variable from a transformation coordinate system. </para>        </briefdescription>
        <detaileddescription>
<para>Unlike the <ref refid="group__DSPROC__DATASET__VARS_1ga098f1fc930b8f689fd8ff3180c728551" kindref="member">dsproc_get_transformed_var()</ref> function, this function will find any variable in the specified transformation coordinate system.</para><para>The obs_index is used to specify which observation to pull the variable from. This value will typically be zero unless the process is using observation based processing. If this is the case the transformed data will contain one &quot;observation&quot; for every file the data was read from on disk.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>coordsys_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- coordinate system name </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>var_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- variable name </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>obs_index</parametername>
</parameternamelist>
<parameterdescription>
<para>- the index of the obervation to get the variable from</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the transformed variable</para></listitem><listitem><para>NULL if not found </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="681" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="1046" bodyend="1100"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="structCDSGroup_1a41f30782bbc34282c7816eb5b3418362">CDSGroup::ngroups</references>
        <references refid="structCDSGroup_1acb3611ebfebc8fb39908244cbb1b4c77">CDSGroup::groups</references>
        <references refid="structCDSGroup_1a09f68acfa7f871b417e7b9e84111aa0b">CDSGroup::name</references>
        <references refid="group__CDS__VARS_1gacdefa1f21e178776cd8d3a7a7c704e7c">cds_get_var</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__VARS_1gaf4c9d39208a14ffe140ed2090ebec664" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
        <definition>CDSVar* dsproc_get_var</definition>
        <argsstring>(CDSGroup *dataset, const char *name)</argsstring>
        <name>dsproc_get_var</name>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>dataset</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Get a variable from a dataset. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the dataset </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the variable</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the variable</para></listitem><listitem><para>NULL if the variable does not exist </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="685" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="1112" bodyend="1119"/>
        <references refid="group__CDS__VARS_1gacdefa1f21e178776cd8d3a7a7c704e7c">cds_get_var</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__VARS_1ga6970f06e47859df75ba4faaf65e4ac8c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char* dsproc_var_name</definition>
        <argsstring>(CDSVar *var)</argsstring>
        <name>dsproc_var_name</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <briefdescription>
<para>Returns the variable name. </para>        </briefdescription>
        <detaileddescription>
<para>The returned name belongs to the variable structure and must not be freed or altered by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the variable name</para></listitem><listitem><para>NULL if the specified variable is NULL </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="687" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="1564" bodyend="1571"/>
        <references refid="structCDSVar_1a08baec1f48b5050d16198e3f0ef3f51f">CDSVar::name</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__VARS_1ga9471eea1afdf952003e77ebcb0c1bc90" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>size_t</type>
        <definition>size_t dsproc_var_sample_count</definition>
        <argsstring>(CDSVar *var)</argsstring>
        <name>dsproc_var_sample_count</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <briefdescription>
<para>Returns the number of samples in a variable&apos;s data array. </para>        </briefdescription>
        <detaileddescription>
<para>The sample_count for a variable is the number of samples stored along the variable&apos;s first dimension.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>number of samples in the variable&apos;s data array </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="688" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="1583" bodyend="1590"/>
        <references refid="structCDSVar_1ae42924a7181b190ecb94849cbb35af2d">CDSVar::sample_count</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DATASET__VARS_1gaa026f1f8af890c6ab0c904bf73417a85" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>size_t</type>
        <definition>size_t dsproc_var_sample_size</definition>
        <argsstring>(CDSVar *var)</argsstring>
        <name>dsproc_var_sample_size</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <briefdescription>
<para>Returns the sample size of a variable. </para>        </briefdescription>
        <detaileddescription>
<para>Variables with less than 2 dimensions will always have a sample_size of 1. The sample_size for variables with 2 or more dimensions is the product of all the dimension lengths starting with the 2nd dimension.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>sample size of the variable </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="689" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="1603" bodyend="1610"/>
        <references refid="group__CDS__VARS_1ga350b7dcedcfe45df5db7d0e98cfdfbb0">cds_var_sample_size</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VAR__DATA_1ga43f4b9f232a560a7168e61c4d186a028" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void *</type>
        <definition>void* dsproc_alloc_var_data</definition>
        <argsstring>(CDSVar *var, size_t sample_start, size_t sample_count)</argsstring>
        <name>dsproc_alloc_var_data</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_start</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_count</declname>
        </param>
        <briefdescription>
<para>Allocate memory for a variable&apos;s data array. </para>        </briefdescription>
        <detaileddescription>
<para>This function will allocate memory as necessary to ensure that the variable&apos;s data array is large enough to store another sample_count samples starting from sample_start.</para><para>The data type of the returned array will be the same as the variable’s data type. It is the responsibility of the calling process to cast the returned array into the proper data type. If the calling process does not know the data type of the variable, it can store the data in an array of a known type and then use the <ref refid="group__DSPROC__VAR__DATA_1gae6dcce7b4fdf754048df180387f44db9" kindref="member">dsproc_set_var_data()</ref> function to cast this data into the variables data array. In this case the memory does not need to be preallocated and this function is not needed.</para><para>The data array returned by this function belongs to the variable and will be freed when the variable is destroyed. The calling process must <emphasis>not</emphasis> attempt to free this memory.</para><para>For multi-dimensional variables the data array is stored linearly in memory with the last dimension varying the fastest. See the <ref refid="group__DSPROC__VAR__DATA_1ga08261ceae44fc053db31787f99ea0baa" kindref="member">dsproc_alloc_var_data_index()</ref> and/or <ref refid="group__DSPROC__VAR__DATA_1ga483df35bc28c23e7181480b3903cd3ba" kindref="member">dsproc_get_var_data_index()</ref> functions to get a &quot;data index&quot; into this array.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_start</parametername>
</parameternamelist>
<parameterdescription>
<para>- start sample (0 based indexing) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_count</parametername>
</parameternamelist>
<parameterdescription>
<para>- number of new samples</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the specifed start sample in the variable&apos;s data array</para></listitem><listitem><para>NULL if:<itemizedlist>
<listitem><para>one of the variable&apos;s static dimensions has 0 length</para></listitem><listitem><para>the variable has no dimensions, and sample_start is not equal to 0 or sample_count is not equal to 1.</para></listitem><listitem><para>the first variable dimension is not unlimited, and sample_start + sample_count would exceed the dimension length.</para></listitem><listitem><para>a memory allocation error occurred </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="712" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="197" bodyend="211"/>
        <references refid="group__CDS__VAR__DATA_1ga14c255afce06376efa8bf97c04b6ba97">cds_alloc_var_data</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1gabcfba52b455e8f313a8f058a22fa3495" compoundref="dsproc3_8h" startline="1232">DSPROC_ECDSALLOCVAR</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VAR__DATA_1ga08261ceae44fc053db31787f99ea0baa" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void *</type>
        <definition>void* dsproc_alloc_var_data_index</definition>
        <argsstring>(CDSVar *var, size_t sample_start, size_t sample_count)</argsstring>
        <name>dsproc_alloc_var_data_index</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_start</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_count</declname>
        </param>
        <briefdescription>
<para>Allocate memory for a variable&apos;s data array. </para>        </briefdescription>
        <detaileddescription>
<para>This function is the same as <ref refid="group__DSPROC__VAR__DATA_1ga43f4b9f232a560a7168e61c4d186a028" kindref="member">dsproc_alloc_var_data()</ref> except that it returns a data index starting at the specified start sample (see <ref refid="group__DSPROC__VAR__DATA_1ga483df35bc28c23e7181480b3903cd3ba" kindref="member">dsproc_get_var_data_index()</ref>). For variables that have less than two dimensions this function is identical to <ref refid="group__DSPROC__VAR__DATA_1ga43f4b9f232a560a7168e61c4d186a028" kindref="member">dsproc_alloc_var_data()</ref>. It is up to the calling process to cast the return value of this function into the proper data type.</para><para>The data index returned by this function belongs to the variable and will be freed when the variable is destroyed. The calling process must <emphasis>not</emphasis> attempt to free this memory.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_start</parametername>
</parameternamelist>
<parameterdescription>
<para>- start sample (0 based indexing) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_count</parametername>
</parameternamelist>
<parameterdescription>
<para>- number of new samples</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>the data index into the variable&apos;s data array starting at the specified start sample</para></listitem><listitem><para>NULL if:<itemizedlist>
<listitem><para>one of the variable&apos;s static dimensions has 0 length</para></listitem><listitem><para>the variable has no dimensions, and sample_start is not equal to 0 or sample_count is not equal to 1.</para></listitem><listitem><para>the first variable dimension is not unlimited, and sample_start + sample_count would exceed the dimension length.</para></listitem><listitem><para>a memory allocation error occurred </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="717" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="245" bodyend="259"/>
        <references refid="group__CDS__VAR__DATA_1ga1b29efbecdf0601fee57a10fded383dd">cds_alloc_var_data_index</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1gabcfba52b455e8f313a8f058a22fa3495" compoundref="dsproc3_8h" startline="1232">DSPROC_ECDSALLOCVAR</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VAR__DATA_1ga483df35bc28c23e7181480b3903cd3ba" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void *</type>
        <definition>void* dsproc_get_var_data_index</definition>
        <argsstring>(CDSVar *var)</argsstring>
        <name>dsproc_get_var_data_index</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <briefdescription>
<para>Get a data index for a multi-dimensional variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will return a data index that can be used to access the data in a variable using the traditional x[i][j][k] syntax. It is up to the calling process to cast the return value of this function into the proper data type.</para><para>Note: If the variable has less than 2 dimensions, the pointer to the variable’s data array will be returned.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>the data index into the variable’s data array</para></listitem><listitem><para>NULL if:<itemizedlist>
<listitem><para>the pointer to the variable was NULL</para></listitem><listitem><para>no data has been stored in the variable (var-&gt;sample_count == 0)</para></listitem><listitem><para>a memory allocation error occurs </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="720" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="1144" bodyend="1161"/>
        <references refid="structCDSVar_1ae42924a7181b190ecb94849cbb35af2d">CDSVar::sample_count</references>
        <references refid="group__CDS__VAR__DATA_1ga7e5d94f2dd654a15209c66f010446ef2">cds_create_var_data_index</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VAR__DATA_1ga645c2b91784901544d67555f8afb212d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void *</type>
        <definition>void* dsproc_get_var_data</definition>
        <argsstring>(CDSVar *var, CDSDataType type, size_t sample_start, size_t *sample_count, void *missing_value, void *data)</argsstring>
        <name>dsproc_get_var_data</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <param>
          <type><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref></type>
          <declname>type</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_start</declname>
        </param>
        <param>
          <type>size_t *</type>
          <declname>sample_count</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>missing_value</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>data</declname>
        </param>
        <briefdescription>
<para>Get a copy of the data from a dataset variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will get the data from a variable casted into the specified data type. All missing values used in the data will be converted to a single missing value appropriate for the requested data type. The missing value used will be the first value returned by <ref refid="group__CDS__VAR__DATA_1ga5a80293d87729f6d60ba657070c87c92" kindref="member" external="libcds3.tag">cds_get_var_missing_values()</ref> if that value is within the range of the requested data type, otherwise, the default fill value for the requested data type will be used.</para><para>Memory will be allocated for the returned data array if the output array is NULL. In this case the calling process is responsible for freeing the allocated memory. If an output data array is specified it must be large enough to hold (sample_count * cds_var_sample_size(var)) elements.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>type</parametername>
</parameternamelist>
<parameterdescription>
<para>- data type of the output missing_value and data array </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_start</parametername>
</parameternamelist>
<parameterdescription>
<para>- start sample (0 based indexing) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_count</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the sample_count<itemizedlist>
<listitem><para>input:<itemizedlist>
<listitem><para>length of the output array</para></listitem><listitem><para>ignored if the output array is NULL</para></listitem></itemizedlist>
</para></listitem><listitem><para>output:<itemizedlist>
<listitem><para>number of samples returned</para></listitem><listitem><para>0 if no data for sample_start</para></listitem><listitem><para>(size_t)-1 if a memory allocation error occurs </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>missing_value</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: missing value </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>data</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the output data array or NULL to dynamically allocate the memory needed.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the output data array</para></listitem><listitem><para>NULL if:<itemizedlist>
<listitem><para>the pointer to the variable was NULL</para></listitem><listitem><para>the variable has no data for sample_start (sample_count == 0)</para></listitem><listitem><para>a memory allocation error occurs (sample_count == (size_t)-1) </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="728" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="1203" bodyend="1227"/>
        <references refid="group__CDS__VAR__DATA_1ga18dc78aaff3e305c000d768f5007c220">cds_get_var_data</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VAR__DATA_1gad51430bc5e0af5cc5c51c71f63596c18" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_get_var_missing_values</definition>
        <argsstring>(CDSVar *var, void **values)</argsstring>
        <name>dsproc_get_var_missing_values</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <param>
          <type>void **</type>
          <declname>values</declname>
        </param>
        <briefdescription>
<para>Get the missing values for a CDS Variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will return an array containing all values specified by the missing_value and _FillValue attributes (in that order), and will be the same data type as the variable. If the _FillValue attribute does not exist but a default fill value has been defined, it will be used instead.</para><para>The memory used by the output array of missing values is dynamically allocated. It is the responsibility of the calling process to free this memory when it is no longer needed.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>values</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: pointer to the array of missing values, the data type of this array will be the same as the variable</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>number of missing values</para></listitem><listitem><para>0 if there are no missing or fill values</para></listitem><listitem><para>-1 if a memory allocation error occurs </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="732" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="1254" bodyend="1267"/>
        <references refid="group__CDS__VAR__DATA_1ga5a80293d87729f6d60ba657070c87c92">cds_get_var_missing_values</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VAR__DATA_1ga4c2d281daf21f681e8df443cf286dc23" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void *</type>
        <definition>void* dsproc_init_var_data</definition>
        <argsstring>(CDSVar *var, size_t sample_start, size_t sample_count, int use_missing)</argsstring>
        <name>dsproc_init_var_data</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_start</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_count</declname>
        </param>
        <param>
          <type>int</type>
          <declname>use_missing</declname>
        </param>
        <briefdescription>
<para>Initialize the data values for a dataset variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will make sure enough memory is allocated for the specified samples and initializing the data values to either the variable&apos;s missing value (use_missing == 1), or 0 (use_missing == 0).</para><para>The search order for missing values is:</para><para><itemizedlist>
<listitem><para>missing_value attribute</para></listitem><listitem><para>_FillValue attribute</para></listitem><listitem><para>variable&apos;s default missing value</para></listitem></itemizedlist>
</para><para>If the variable does not have any missing or fill values defined the default fill value for the variable&apos;s data type will be used and the default fill value for the variable will be set.</para><para>If the specified start sample is greater than the variable&apos;s current sample count, the hole between the two will be filled with the first missing or fill value defined for the variable.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_start</parametername>
</parameternamelist>
<parameterdescription>
<para>- start sample of the data to initialize (0 based indexing) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_count</parametername>
</parameternamelist>
<parameterdescription>
<para>- number of samples to initialize </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>use_missing</parametername>
</parameternamelist>
<parameterdescription>
<para>- flag indicating if the variables missing value should be used (1 == TRUE, 0 == fill with zeros)</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the specifed start sample in the variable&apos;s data array</para></listitem><listitem><para>NULL if:<itemizedlist>
<listitem><para>the specified sample count is zero</para></listitem><listitem><para>one of the variable&apos;s static dimensions has 0 length</para></listitem><listitem><para>the variable has no dimensions, and sample_start is not equal to 0 or sample_count is not equal to 1.</para></listitem><listitem><para>the first variable dimension is not unlimited, and sample_start + sample_count would exceed the dimension length.</para></listitem><listitem><para>a memory allocation error occurred </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="738" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="1311" bodyend="1326"/>
        <references refid="group__CDS__VAR__DATA_1gabdf192007801c6844e5ec43ffefcc8d5">cds_init_var_data</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1gabcfba52b455e8f313a8f058a22fa3495" compoundref="dsproc3_8h" startline="1232">DSPROC_ECDSALLOCVAR</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VAR__DATA_1ga9edf6771602aa637394081656bdb9b97" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void *</type>
        <definition>void* dsproc_init_var_data_index</definition>
        <argsstring>(CDSVar *var, size_t sample_start, size_t sample_count, int use_missing)</argsstring>
        <name>dsproc_init_var_data_index</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_start</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_count</declname>
        </param>
        <param>
          <type>int</type>
          <declname>use_missing</declname>
        </param>
        <briefdescription>
<para>Initialize the data values for a dataset variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function behaves the same as <ref refid="group__DSPROC__VAR__DATA_1ga4c2d281daf21f681e8df443cf286dc23" kindref="member">dsproc_init_var_data()</ref> except that it returns a data index starting at the specified start sample, see <ref refid="group__DSPROC__VAR__DATA_1ga483df35bc28c23e7181480b3903cd3ba" kindref="member">dsproc_get_var_data_index()</ref> for details. For variables that have less than two dimensions this function is identical to <ref refid="group__DSPROC__VAR__DATA_1ga4c2d281daf21f681e8df443cf286dc23" kindref="member">dsproc_init_var_data()</ref>.</para><para>The data index returned by this function belongs to the CDS variable and will be freed when the variable is destroyed. The calling process must <emphasis>not</emphasis> attempt to free this memory.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_start</parametername>
</parameternamelist>
<parameterdescription>
<para>- start sample of the data to initialize (0 based indexing) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_count</parametername>
</parameternamelist>
<parameterdescription>
<para>- number of samples to initialize </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>use_missing</parametername>
</parameternamelist>
<parameterdescription>
<para>- flag indicating if the variables missing value should be used (1 == TRUE, 0 == fill with zeros)</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>the data index into the variables data array starting at the specified start sample.</para></listitem><listitem><para>NULL if:<itemizedlist>
<listitem><para>the specified sample count is zero</para></listitem><listitem><para>one of the variable&apos;s static dimensions has 0 length</para></listitem><listitem><para>the variable has no dimensions, and sample_start is not equal to 0 or sample_count is not equal to 1.</para></listitem><listitem><para>the first variable dimension is not unlimited, and sample_start + sample_count would exceed the dimension length.</para></listitem><listitem><para>a memory allocation error occurred </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="744" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="1362" bodyend="1378"/>
        <references refid="group__CDS__VAR__DATA_1gafeb70f3e0a602b3e66f799804df696ec">cds_init_var_data_index</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1gabcfba52b455e8f313a8f058a22fa3495" compoundref="dsproc3_8h" startline="1232">DSPROC_ECDSALLOCVAR</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VAR__DATA_1ga59ec83ab50ee27189783a0500b466118" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_bounds_data</definition>
        <argsstring>(CDSGroup *dataset, size_t sample_start, size_t sample_count)</argsstring>
        <name>dsproc_set_bounds_data</name>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>dataset</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_start</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_count</declname>
        </param>
        <briefdescription>
<para>Set cell boundary data for all coordinate variables in a dataset. </para>        </briefdescription>
        <detaileddescription>
<para>This function will call <ref refid="group__DSPROC__VAR__DATA_1gae13c148c1ac9d5131a9904e354f89a0f" kindref="member">dsproc_set_bounds_var_data()</ref> for all variables in the specified dataset that have a bounds attribute defined.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the CDS variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_start</parametername>
</parameternamelist>
<parameterdescription>
<para>- start sample along the unlimited dimension (0 based indexing) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_count</parametername>
</parameternamelist>
<parameterdescription>
<para>- number of samples along the unlimited dimension (0 for all available samples)</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if an error occurred. </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="749" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="1399" bodyend="1435"/>
        <references refid="structCDSGroup_1a2194b5479c6dd879bb44109137f6108b">CDSGroup::nvars</references>
        <references refid="structCDSGroup_1a126ed622f8abc90300e0751e51aa02c1">CDSGroup::vars</references>
        <references refid="group__CDS__ATTS_1gac852834efa99bfa716556450d08aaade">cds_get_att</references>
        <references refid="structCDSVar_1af9f05743ab983ac3f87a55a50f39e115">CDSVar::ndims</references>
        <references refid="structCDSVar_1ae42924a7181b190ecb94849cbb35af2d">CDSVar::sample_count</references>
        <references refid="structCDSVar_1a5477f8c7086b58a651b730a3fec02682">CDSVar::dims</references>
        <references refid="structCDSDim_1ab4f7e829f64f1ee019752443045c4d8a">CDSDim::is_unlimited</references>
        <references refid="group__DSPROC__VAR__DATA_1gae13c148c1ac9d5131a9904e354f89a0f" compoundref="dsproc__dataset__vars_8c" startline="1468" endline="1480">dsproc_set_bounds_var_data</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VAR__DATA_1gae13c148c1ac9d5131a9904e354f89a0f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_bounds_var_data</definition>
        <argsstring>(CDSVar *coord_var, size_t sample_start, size_t sample_count)</argsstring>
        <name>dsproc_set_bounds_var_data</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>coord_var</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_start</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_count</declname>
        </param>
        <briefdescription>
<para>Set cell boundary data values for a dataset variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function can only be used to create the cell boundary data values for regular grids and requires:</para><para><itemizedlist>
<listitem><para>The variable has a bounds attribute defined that specifies the name of the boundary variable.</para></listitem></itemizedlist>
</para><para><itemizedlist>
<listitem><para>The boundary variable has a bound_offsets attribute defined that specifies the cell boundary offsets from the data values.</para></listitem></itemizedlist>
</para><para><itemizedlist>
<listitem><para>The number of boundary variable dimensions is one greater than than the number of variable dimensions.</para></listitem></itemizedlist>
</para><para><itemizedlist>
<listitem><para>The boundary variable and bound_offsets attribute have the same data type as the variable.</para></listitem></itemizedlist>
</para><para><itemizedlist>
<listitem><para>The bound_offsets attribute has the same length as the last dimension of the boundary variable.</para></listitem></itemizedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>coord_var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the coordinate variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_start</parametername>
</parameternamelist>
<parameterdescription>
<para>- start sample (0 based indexing) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_count</parametername>
</parameternamelist>
<parameterdescription>
<para>- number of samples (0 for all available samples)</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if the bounds and/or bound_offsets attributes are not defined, or the variable does not have any data for the specified sample_start.</para></listitem><listitem><para>-1 if an error occurred. </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="754" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="1468" bodyend="1480"/>
        <references refid="group__CDS__VAR__DATA_1gaceb2a0ea42954ce9f3ed74bd454df2af">cds_set_bounds_var_data</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga23f0752494385b64b5491e874d0dca6d" compoundref="dsproc3_8h" startline="1271">DSPROC_EBOUNDSVAR</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VAR__DATA_1gae6dcce7b4fdf754048df180387f44db9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void *</type>
        <definition>void* dsproc_set_var_data</definition>
        <argsstring>(CDSVar *var, CDSDataType type, size_t sample_start, size_t sample_count, void *missing_value, void *data)</argsstring>
        <name>dsproc_set_var_data</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <param>
          <type><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref></type>
          <declname>type</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_start</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_count</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>missing_value</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>data</declname>
        </param>
        <briefdescription>
<para>Set the data values for a dataset variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will set the data values of a variable by casting the values in the input data array into the data type of the variable. All missing values in the input data array will be converted to the first missing value used by the variable as returned by <ref refid="group__CDS__VAR__DATA_1ga5a80293d87729f6d60ba657070c87c92" kindref="member" external="libcds3.tag">cds_get_var_missing_values()</ref>. If the variable does not have a missing_value or _FillValue attribute defined, the default fill value for the variable&apos;s data type will be used.</para><para>For multi-dimensional variables, the specified data array must be stored linearly in memory with the last dimension varying the fastest.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>type</parametername>
</parameternamelist>
<parameterdescription>
<para>- data type of the input missing_value and data array </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_start</parametername>
</parameternamelist>
<parameterdescription>
<para>- start sample of the new data (0 based indexing) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_count</parametername>
</parameternamelist>
<parameterdescription>
<para>- number of new samples </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>missing_value</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the missing value used in the data array, or NULL if the data does not contain any missing values </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>data</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the input data array</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the specifed start sample in the variable&apos;s data array</para></listitem><listitem><para>NULL if:<itemizedlist>
<listitem><para>one of the variable&apos;s static dimensions has 0 length</para></listitem><listitem><para>the variable has no dimensions, and sample_start is not equal to 0 or sample_count is not equal to 1.</para></listitem><listitem><para>the first variable dimension is not unlimited, and sample_start + sample_count would exceed the dimension length.</para></listitem><listitem><para>a memory allocation error occurred </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="762" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_vars.c" bodystart="1516" bodyend="1532"/>
        <references refid="group__CDS__VAR__DATA_1gad7c59b19ff6c56499d6dfb8790efd064">cds_set_var_data</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga29c532543589f2e3de61ba6fd86a7b74" compoundref="dsproc3_8h" startline="1259">DSPROC_ECDSSETDATA</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__TIME__DATA_1ga67ecae6338533d43f6c95e3955e69042" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>time_t</type>
        <definition>time_t dsproc_get_base_time</definition>
        <argsstring>(void *cds_object)</argsstring>
        <name>dsproc_get_base_time</name>
        <param>
          <type>void *</type>
          <declname>cds_object</declname>
        </param>
        <briefdescription>
<para>Get the base time of a dataset or time variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will convert the units attribute of a time variable to seconds since 1970. If the input object is a <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref>, the specified dataset and then its parent datasets will be searched until a &quot;time&quot; or &quot;time_offset&quot; variable is found.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cds_object</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to a <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> or <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref></para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>base time in seconds since 1970 UTC</para></listitem><listitem><para>0 if not found </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="772" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_times.c" bodystart="68" bodyend="73"/>
        <references refid="group__CDS__TIME__DATA_1ga827915283fb2d94a8ced6758a4421687">cds_get_base_time</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__TIME__DATA_1gaa3479e5fae1399fabbca0571f93ad5a5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>size_t</type>
        <definition>size_t dsproc_get_time_range</definition>
        <argsstring>(void *cds_object, timeval_t *start_time, timeval_t *end_time)</argsstring>
        <name>dsproc_get_time_range</name>
        <param>
          <type>void *</type>
          <declname>cds_object</declname>
        </param>
        <param>
          <type><ref refid="group__ARMUTILS__TIME__UTILS_1gaeba0d8f51eb0a83c2b01ecf27e0b3260" kindref="member" external="libarmutils.tag">timeval_t</ref> *</type>
          <declname>start_time</declname>
        </param>
        <param>
          <type><ref refid="group__ARMUTILS__TIME__UTILS_1gaeba0d8f51eb0a83c2b01ecf27e0b3260" kindref="member" external="libarmutils.tag">timeval_t</ref> *</type>
          <declname>end_time</declname>
        </param>
        <briefdescription>
<para>Get the time range of a dataset or time variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will get the start and end times of a time variable. If the input object is a <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref>, the specified dataset and then its parent datasets will be searched until a &quot;time&quot; or &quot;time_offset&quot; variable is found.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cds_object</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to a <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> or <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>start_time</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the timeval_t structure to store the start time in. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>end_time</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the timeval_t structure to store the end time in.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>number of time values</para></listitem><listitem><para>0 if no time values were found </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="777" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_times.c" bodystart="93" bodyend="103"/>
        <references refid="group__CDS__TIME__DATA_1ga2d6eddde88339a0577e3985bfa7e680f">cds_get_time_range</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__TIME__DATA_1ga1cdc355a586bab60ba3e8220bc87390b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
        <definition>CDSVar* dsproc_get_time_var</definition>
        <argsstring>(void *cds_object)</argsstring>
        <name>dsproc_get_time_var</name>
        <param>
          <type>void *</type>
          <declname>cds_object</declname>
        </param>
        <briefdescription>
<para>Get the time variable used by a dataset. </para>        </briefdescription>
        <detaileddescription>
<para>This function will find the first dataset that contains either the &quot;time&quot; or &quot;time_offset&quot; variable and return a pointer to that variable.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cds_object</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to a <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> or <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref></para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the time variable</para></listitem><listitem><para>NULL if not found </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="779" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_times.c" bodystart="117" bodyend="122"/>
        <references refid="group__CDS__TIME__DATA_1ga1f6adaf2bcae59ec5b83ce6e9bca5605">cds_find_time_var</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__TIME__DATA_1ga08bed819bd7d3f0fbee5812d6b6c55b1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>time_t *</type>
        <definition>time_t* dsproc_get_sample_times</definition>
        <argsstring>(void *cds_object, size_t sample_start, size_t *sample_count, time_t *sample_times)</argsstring>
        <name>dsproc_get_sample_times</name>
        <param>
          <type>void *</type>
          <declname>cds_object</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_start</declname>
        </param>
        <param>
          <type>size_t *</type>
          <declname>sample_count</declname>
        </param>
        <param>
          <type>time_t *</type>
          <declname>sample_times</declname>
        </param>
        <briefdescription>
<para>Get the sample times for a dataset or time variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will convert the data values of a time variable to seconds since 1970. If the input object is a <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref>, the specified dataset and then its parent datasets will be searched until a &quot;time&quot; or &quot;time_offset&quot; variable is found.</para><para>Memory will be allocated for the returned array of sample times if the output array is NULL. In this case the calling process is responsible for freeing the allocated memory.</para><para>Note: If the sample times can have fractional seconds the <ref refid="group__DSPROC__TIME__DATA_1ga59fb91c5744549fe5ba120daed408748" kindref="member">dsproc_get_sample_timevals()</ref> function should be used instead.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cds_object</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to a <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> or <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_start</parametername>
</parameternamelist>
<parameterdescription>
<para>- start sample (0 based indexing) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_count</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the sample_count<itemizedlist>
<listitem><para>input:<itemizedlist>
<listitem><para>length of the output array</para></listitem><listitem><para>ignored if the output array is NULL</para></listitem></itemizedlist>
</para></listitem><listitem><para>output:<itemizedlist>
<listitem><para>number of sample times returned</para></listitem><listitem><para>0 if no data was found for sample_start</para></listitem><listitem><para>(size_t)-1 if a memory allocation error occurs </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_times</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the output array or NULL to dynamically allocate the memory needed.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the array of sample times in seconds since 1970</para></listitem><listitem><para>NULL if:<itemizedlist>
<listitem><para>there is no data for sample_start (sample_count == 0)</para></listitem><listitem><para>an error occurred (sample_count == (size_t)-1) </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="785" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_times.c" bodystart="161" bodyend="181"/>
        <references refid="group__CDS__TIME__DATA_1ga578a40f44462f3569f450d54a3cc185e">cds_get_sample_times</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1gaf4d6e65511fa56034bdee8886a49659b" compoundref="dsproc3_8h" startline="1265">DSPROC_ECDSGETTIME</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__TIME__DATA_1ga59fb91c5744549fe5ba120daed408748" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="group__ARMUTILS__TIME__UTILS_1gaeba0d8f51eb0a83c2b01ecf27e0b3260" kindref="member" external="libarmutils.tag">timeval_t</ref> *</type>
        <definition>timeval_t* dsproc_get_sample_timevals</definition>
        <argsstring>(void *cds_object, size_t sample_start, size_t *sample_count, timeval_t *sample_times)</argsstring>
        <name>dsproc_get_sample_timevals</name>
        <param>
          <type>void *</type>
          <declname>cds_object</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_start</declname>
        </param>
        <param>
          <type>size_t *</type>
          <declname>sample_count</declname>
        </param>
        <param>
          <type><ref refid="group__ARMUTILS__TIME__UTILS_1gaeba0d8f51eb0a83c2b01ecf27e0b3260" kindref="member" external="libarmutils.tag">timeval_t</ref> *</type>
          <declname>sample_times</declname>
        </param>
        <briefdescription>
<para>Get the sample times for a dataset or time variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will convert the data values of a time variable to an array of timeval_t structures. If the input object is a <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref>, the specified dataset and then its parent datasets will be searched until a &quot;time&quot; or &quot;time_offset&quot; variable is found.</para><para>Memory will be allocated for the returned array of sample times if the output array is NULL. In this case the calling process is responsible for freeing the allocated memory.</para><para>Note: Consider using the <ref refid="group__CDS__TIME__DATA_1ga578a40f44462f3569f450d54a3cc185e" kindref="member" external="libcds3.tag">cds_get_sample_times()</ref> function if the sample times can not have fractional seconds.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cds_object</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to a <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> or <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_start</parametername>
</parameternamelist>
<parameterdescription>
<para>- start sample (0 based indexing) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_count</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the sample_count<itemizedlist>
<listitem><para>input:<itemizedlist>
<listitem><para>length of the output array</para></listitem><listitem><para>ignored if the output array is NULL</para></listitem></itemizedlist>
</para></listitem><listitem><para>output:<itemizedlist>
<listitem><para>number of sample times returned</para></listitem><listitem><para>0 if no data was found for sample_start</para></listitem><listitem><para>(size_t)-1 if a memory allocation error occurs </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_times</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the output array or NULL to dynamically allocate the memory needed.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the array of sample times in seconds since 1970</para></listitem><listitem><para>NULL if:<itemizedlist>
<listitem><para>the variable has no data for sample_start (sample_count == 0)</para></listitem><listitem><para>an error occurred (sample_count == (size_t)-1) </para></listitem></itemizedlist>
</para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="791" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_times.c" bodystart="220" bodyend="240"/>
        <references refid="group__CDS__TIME__DATA_1ga05510343afb0edefa7bd2566fdaa8705">cds_get_sample_timevals</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1gaf4d6e65511fa56034bdee8886a49659b" compoundref="dsproc3_8h" startline="1265">DSPROC_ECDSGETTIME</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__TIME__DATA_1ga8ed1d6ef23ecb6a4685b30cc2b0a1570" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_base_time</definition>
        <argsstring>(void *cds_object, const char *long_name, time_t base_time)</argsstring>
        <name>dsproc_set_base_time</name>
        <param>
          <type>void *</type>
          <declname>cds_object</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>long_name</declname>
        </param>
        <param>
          <type>time_t</type>
          <declname>base_time</declname>
        </param>
        <briefdescription>
<para>Set the base time of a dataset or time variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will set the base time for a time variable and adjust all attributes and data values as necessary. If the input object is one of the standard time variables (&quot;time&quot;, &quot;time_offset&quot;, or &quot;base_time&quot;), all standard time variables that exist in its parent dataset will also be updated. If the input object is a <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref>, the specified dataset and then its parent datasets will be searched until a &quot;time&quot; or &quot;time_offset&quot; variable is found. All standard time variables that exist in this dataset will then be updated.</para><para>For the base_time variable the data value will be set and the &quot;string&quot; attribute will be set to the string representation of the base_time value. The &quot;long_name&quot; and &quot;units&quot; attributes will also be set to &quot;Base time in Epoch&quot; and &quot;seconds since 1970-1-1 0:00:00 0:00&quot; respectively.</para><para>For the time_offset variable the &quot;units&quot; attribute will set to the string representation of the base_time value, and the &quot;long_name&quot; attribute will be set to &quot;Time offset from base_time&quot;.</para><para>For all other time variables the &quot;units&quot; attribute will be set to the string representation of the base_time value, and the &quot;long_name&quot; attribute will be set to the specified value. If a long_name attribute is not specified, the string &quot;Time offset from midnight&quot; will be used for base times of midnight, and &quot;Sample times&quot; will be used for all other base times.</para><para>Any existing data in a time variable will also be adjusted for the new base_time value.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cds_object</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to a <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> or <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>long_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- string to use for the long_name attribute, or NULL to use the default value </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>base_time</parametername>
</parameternamelist>
<parameterdescription>
<para>- base time in seconds since 1970</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="796" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_times.c" bodystart="284" bodyend="298"/>
        <references refid="group__CDS__TIME__DATA_1ga1cdbfd24402e4b90df2585607ef4329e">cds_set_base_time</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0a1e704f7d8e7c509b8d0b26b920a600" compoundref="dsproc3_8h" startline="1262">DSPROC_ECDSSETTIME</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__TIME__DATA_1ga6e25aaaf16614c0de4ebb784619b76ab" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_sample_times</definition>
        <argsstring>(void *cds_object, size_t sample_start, size_t sample_count, time_t *sample_times)</argsstring>
        <name>dsproc_set_sample_times</name>
        <param>
          <type>void *</type>
          <declname>cds_object</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_start</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_count</declname>
        </param>
        <param>
          <type>time_t *</type>
          <declname>sample_times</declname>
        </param>
        <briefdescription>
<para>Set the sample times for a dataset or time variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will set the data values for a time variable by subtracting the base time (as defined by the units attribute) and converting the remainder to the data type of the variable. If the input object is one of the standard time variables (&quot;time&quot;, &quot;time_offset&quot;, or &quot;base_time&quot;), all standard time variables that exist in its parent dataset will also be updated. If the input object is a <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref>, the specified dataset and then its parent datasets will be searched until a &quot;time&quot; or &quot;time_offset&quot; variable is found. All standard time variables that exist in this dataset will then be updated.</para><para>If the specified sample_start value is 0 and a base time value has not already been set, the base time will be set using the time of midnight just prior to the first sample time.</para><para>The data type of the time variable(s) must be CDS_SHORT, CDS_INT, CDS_FLOAT or CDS_DOUBLE. However, CDS_DOUBLE is usually recommended.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cds_object</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to a <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> or <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_start</parametername>
</parameternamelist>
<parameterdescription>
<para>- start sample (0 based indexing) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_count</parametername>
</parameternamelist>
<parameterdescription>
<para>- number of samples in the times array </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_times</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the array of sample times in seconds since 1970 UTC.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="802" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_times.c" bodystart="333" bodyend="349"/>
        <references refid="group__CDS__TIME__DATA_1gafd64e9f0a73a565dc8529992b3aefedb">cds_set_sample_times</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0a1e704f7d8e7c509b8d0b26b920a600" compoundref="dsproc3_8h" startline="1262">DSPROC_ECDSSETTIME</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__TIME__DATA_1gad396442e64ff6140c470645cd7e9faf8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_sample_timevals</definition>
        <argsstring>(void *cds_object, size_t sample_start, size_t sample_count, timeval_t *sample_times)</argsstring>
        <name>dsproc_set_sample_timevals</name>
        <param>
          <type>void *</type>
          <declname>cds_object</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_start</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>sample_count</declname>
        </param>
        <param>
          <type><ref refid="group__ARMUTILS__TIME__UTILS_1gaeba0d8f51eb0a83c2b01ecf27e0b3260" kindref="member" external="libarmutils.tag">timeval_t</ref> *</type>
          <declname>sample_times</declname>
        </param>
        <briefdescription>
<para>Set the sample times for a dataset or time variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will set the data values for a time variable by subtracting the base time (as defined by the units attribute) and converting the remainder to the data type of the variable.</para><para>If the input object is one of the standard time variables:</para><para><itemizedlist>
<listitem><para>time</para></listitem><listitem><para>time_offset</para></listitem><listitem><para>base_time</para></listitem></itemizedlist>
</para><para>All standard time variables that exist in its parent dataset will also be updated.</para><para>If the input object is a <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref>, the specified dataset and then its parent datasets will be searched until a &quot;time&quot; or &quot;time_offset&quot; variable is found. All standard time variables that exist in this dataset will then be updated.</para><para>If the specified sample_start value is 0 and a base time value has not already been set, the base time will be set using the time of midnight just prior to the first sample time.</para><para>The data type of the time variable(s) must be either CDS_FLOAT or or CDS_DOUBLE. However, CDS_DOUBLE is usually recommended.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cds_object</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to a <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> or <ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_start</parametername>
</parameternamelist>
<parameterdescription>
<para>- start sample (0 based indexing) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_count</parametername>
</parameternamelist>
<parameterdescription>
<para>- number of samples in the times array </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sample_times</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the array of sample times in seconds since 1970 UTC.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="808" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dataset_times.c" bodystart="391" bodyend="407"/>
        <references refid="group__CDS__TIME__DATA_1ga4bbe7947d4be68617ad3d2b0b661ff3d">cds_set_sample_timevals</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0a1e704f7d8e7c509b8d0b26b920a600" compoundref="dsproc3_8h" startline="1262">DSPROC_ECDSSETTIME</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__QC__UTILS_1gaaf9036b9afd93e4a7f5ea4855b93c9e1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_consolidate_var_qc</definition>
        <argsstring>(CDSVar *in_qc_var, unsigned int bad_mask, CDSVar *out_qc_var, unsigned int bad_flag, unsigned int ind_flag, int reset)</argsstring>
        <name>dsproc_consolidate_var_qc</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>in_qc_var</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>bad_mask</declname>
        </param>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>out_qc_var</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>bad_flag</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>ind_flag</declname>
        </param>
        <param>
          <type>int</type>
          <declname>reset</declname>
        </param>
        <briefdescription>
<para>Consolidate all QC bits for a variable into bad or indeterminate. </para>        </briefdescription>
        <detaileddescription>
<para>This function will consolidate all the bad and indeterminate QC bits in the input QC variable into a single bad or indeterminate bit in the output QC variable. By default (reset == 0) the bit values of the output variable will be updated without affecting any of the bits that may have already been set. The output QC values can be reset to zero before setting the bad or indeterminate bit by specifying 1 for the reset parameter.</para><para>The bad_mask can be determined using the bit assessment attributes by passing in 0 for it&apos;s value (see <ref refid="group__DSPROC__QC__UTILS_1gaf9e43c5f51401d04ea5a483f3acd571b" kindref="member">dsproc_get_bad_qc_mask()</ref>).</para><para>The bad and indeteminate flag values are <emphasis>not</emphasis> the bit numbers. They are the actual numeric values of the bits. For example:</para><para><itemizedlist>
<listitem><para>bit_1 = pow(2,0) = (1 &lt;&lt; 0) = 0x01 = 1</para></listitem><listitem><para>bit_2 = pow(2,1) = (1 &lt;&lt; 1) = 0x02 = 2</para></listitem><listitem><para>bit_3 = pow(2,2) = (1 &lt;&lt; 2) = 0x04 = 4</para></listitem><listitem><para>bit_4 = pow(2,3) = (1 &lt;&lt; 3) = 0x08 = 8</para></listitem><listitem><para>bit_5 = pow(2,4) = (1 &lt;&lt; 4) = 0x10 = 16</para></listitem><listitem><para>bit_6 = pow(2,5) = (1 &lt;&lt; 5) = 0x20 = 32</para></listitem><listitem><para>bit_7 = pow(2,6) = (1 &lt;&lt; 6) = 0x40 = 64</para></listitem><listitem><para>bit_8 = pow(2,7) = (1 &lt;&lt; 7) = 0x80 = 128</para></listitem></itemizedlist>
</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>in_qc_var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the input QC variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bad_mask</parametername>
</parameternamelist>
<parameterdescription>
<para>- mask used to determine bad QC values in the input QC, or 0 to indicate that the bit assessment attributes should be used to determine it. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>out_qc_var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the output QC variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bad_flag</parametername>
</parameternamelist>
<parameterdescription>
<para>- QC flag to use for bad values </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ind_flag</parametername>
</parameternamelist>
<parameterdescription>
<para>- QC flag to use for indeterminate values </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>reset</parametername>
</parameternamelist>
<parameterdescription>
<para>- specifies if the output QC values should be reset to zero (0 = false, 1 = true)</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if a fatal error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="824" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_qc_utils.c" bodystart="222" bodyend="316"/>
        <references refid="group__DSPROC__QC__UTILS_1gaf9e43c5f51401d04ea5a483f3acd571b" compoundref="dsproc__qc__utils_8c" startline="330" endline="333">dsproc_get_bad_qc_mask</references>
        <references refid="structCDSVar_1a62c8bde11e5ca278495a8abc4fbc1beb">CDSVar::type</references>
        <references refid="group__CDS__DATA__TYPES_1ggaf9b792da04e0b823868cf48a01503f0ba71b61f884d3dcbf901995969d3cb5ddc">CDS_INT</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__CDSObject_1gad6d5f86f7c842c2e9fc594fe3cfed2bb">cds_get_object_path</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1gad4e3b3e69f5580589f7ab50edcb78313" compoundref="dsproc3_8h" startline="1175">DSPROC_EQCVARTYPE</references>
        <references refid="group__DSPROC__DATASET__VARS_1gaa026f1f8af890c6ab0c904bf73417a85" compoundref="dsproc__dataset__vars_8c" startline="1603" endline="1610">dsproc_var_sample_size</references>
        <references refid="structCDSVar_1ae42924a7181b190ecb94849cbb35af2d">CDSVar::sample_count</references>
        <references refid="group__DSPROC__STATUS_1ga3777e67dea05751f11f6807be569deb1" compoundref="dsproc3_8h" startline="1181">DSPROC_EQCVARDIMS</references>
        <references refid="group__DSPROC__VAR__DATA_1ga4c2d281daf21f681e8df443cf286dc23" compoundref="dsproc__dataset__vars_8c" startline="1311" endline="1326">dsproc_init_var_data</references>
        <references refid="structCDSVar_1ad65a4faa51e21d3521092669113cbd9a">CDSVar::data</references>
        <references refid="unionCDSData_1acf1e17eb084c1fe426480563d5f895e3">CDSData::ip</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__QC__UTILS_1gaf9e43c5f51401d04ea5a483f3acd571b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>unsigned int</type>
        <definition>unsigned int dsproc_get_bad_qc_mask</definition>
        <argsstring>(CDSVar *qc_var)</argsstring>
        <name>dsproc_get_bad_qc_mask</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>qc_var</declname>
        </param>
        <briefdescription>
<para>Get the QC mask used to determine bad QC values. </para>        </briefdescription>
        <detaileddescription>
<para>This function will use the bit assessment attributes to create a mask with all bits set for bad assessment values. It will first check for field level bit assessment attributes, and then for the global attributes if they are not found.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>qc_var</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the QC variable</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>qc_mask</parametername>
</parameternamelist>
<parameterdescription>
<para>the QC mask with all bad bits set. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="826" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_qc_utils.c" bodystart="330" bodyend="333"/>
        <references refid="group__INTERNAL__DSPROC__QC__UTILS_1gad025144bec034f747e689377a4c7bf71" compoundref="dsproc__qc__utils_8c" startline="141" endline="175">dsproc_get_qc_assessment_mask</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MISC__UTILITIES_1ga40ec9a1bd4c09382635eac600ee349ec" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_create_timestamp</definition>
        <argsstring>(time_t secs1970, char *timestamp)</argsstring>
        <name>dsproc_create_timestamp</name>
        <param>
          <type>time_t</type>
          <declname>secs1970</declname>
        </param>
        <param>
          <type>char *</type>
          <declname>timestamp</declname>
        </param>
        <briefdescription>
<para>Convert seconds since 1970 to a timestamp. </para>        </briefdescription>
        <detaileddescription>
<para>This function will create a timestamp of the form: <verbatim>&apos;YYYYMMDD.hhmmss&apos;
</verbatim></para><para>The timestamp argument must be large enough to hold at least 16 characters (15 plus the null terminator).</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>secs1970</parametername>
</parameternamelist>
<parameterdescription>
<para>- seconds since 1970 </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>timestamp</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: timestamp string in the form YYYYMMDD.hhmmss</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="838" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_time_utils.c" bodystart="51" bodyend="79"/>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga4ac4a74b3d47b8822c688d5d55f4ce32" compoundref="dsproc3_8h" startline="1223">DSPROC_ETIMECALC</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MISC__UTILITIES_1gac799395eb87ffd4a4d5b6ddea6650c1a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_execvp</definition>
        <argsstring>(const char *file, char *const argv[], int flags)</argsstring>
        <name>dsproc_execvp</name>
        <param>
          <type>const char *</type>
          <declname>file</declname>
        </param>
        <param>
          <type>char *const</type>
          <declname>argv</declname>
          <array>[]</array>
        </param>
        <param>
          <type>int</type>
          <declname>flags</declname>
        </param>
        <briefdescription>
<para>Wrapper to the execvp function. </para>        </briefdescription>
        <detaileddescription>
<para>This function is a wrapper to the execvp function that redirects stdout and stderr to the process log file, and checks exit value of the spawned process for errors. If an error occurs it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para>From the exec man page:</para><para>The execvp() function provides an array of pointers to null-terminated strings that represent the argument list available to the new program. The first argument, by convention, should point to the filename associated with the file being executed. The array of pointers <emphasis>must</emphasis> be terminated by a NULL pointer.</para><para>The execvp() function duplicates the actions of the shell in searching for an executable file if the specified filename does not contain a slash (/) character. The file is sought in the colon-separated list of directory pathnames specified in the PATH environment variable. If this variable isn&apos;t defined, the path list defaults to the current directory followed by the list of directories returned by confstr(_CS_PATH). (This confstr(3) call typically returns the value &quot;/bin:/usr/bin&quot;.)</para><para>The execvp() function takes the environment for the new process image from the external variable environ in the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>file</parametername>
</parameternamelist>
<parameterdescription>
<para>- The name or path to the file that is to be executed.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>argv</parametername>
</parameternamelist>
<parameterdescription>
<para>- A NULL terminated argument list. By convention the first argument should point to the name of the file being executed.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>flags</parametername>
</parameternamelist>
<parameterdescription>
<para>- reserved for control flags</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>exit_value</parametername>
</parameternamelist>
<parameterdescription>
<para>exit value of the process, this is typically 0 for success and non-zero for errors. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>-1</parametername>
</parameternamelist>
<parameterdescription>
<para>if the process could not be executed </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="843" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_exec.c" bodystart="79" bodyend="218"/>
        <references refid="group__MESSENGER_1ga80998a82deec012d08ae3efd6162b548">msngr_get_log_file</references>
        <references refid="structLogFile_1af87b7d62d97ac3b7fe5927fdcb79ed2f">LogFile::fp</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
        <references refid="group__MESSENGER_1ga6d1c985dbdf1f40d7b27801b421c7382">LOG</references>
        <references refid="group__DSPROC__STATUS_1gae08eac8d5017d20768b25fa25e2e10df" compoundref="dsproc3_8h" startline="1082">DSPROC_EFORK</references>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MISC__UTILITIES_1ga6952be2bf538cb361aae7c37bf730f2f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_run_dq_inspector</definition>
        <argsstring>(int dsid, time_t begin_time, time_t end_time, const char *args[], int flags)</argsstring>
        <name>dsproc_run_dq_inspector</name>
        <param>
          <type>int</type>
          <declname>dsid</declname>
        </param>
        <param>
          <type>time_t</type>
          <declname>begin_time</declname>
        </param>
        <param>
          <type>time_t</type>
          <declname>end_time</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>args</declname>
          <array>[]</array>
        </param>
        <param>
          <type>int</type>
          <declname>flags</declname>
        </param>
        <briefdescription>
<para>Run DQ Inspector. </para>        </briefdescription>
        <detaileddescription>
<para>This function will run dq_inspector for the specified datastream and time range. The following arguments will be automatically added to the dq_inspector command line so they do not need to be specified by the calling process in the args[] array: <verbatim>-P
-r read_path
-d datastream
-s start_date
-e end_date
</verbatim></para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para>A warning message will also be generated if dq_inpsector returns a non-zero exit value;</para><para><bold>Example</bold> quicklook_hook function: <programlisting><codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>adi_test3_quicklook_hook(</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/>*user_data,</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/>begin_time,</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/>end_time)</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*dsc_name<sp/><sp/>=<sp/></highlight><highlight class="stringliteral">&quot;aditest3met&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*dsc_level<sp/>=<sp/></highlight><highlight class="stringliteral">&quot;c1&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>dsid;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*args[32];</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>exit_value;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ai;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>prevent<sp/>&quot;unused<sp/>argument&quot;<sp/>compiler<sp/>warning</highlight><highlight class="normal"></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>user_data<sp/>=<sp/>user_data;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>dsid<sp/>=<sp/><ref refid="group__DSPROC__DATASTREAM_1gaea7fc1c2a2ccf3e204a81233a605d432" kindref="member" tooltip="Get the ID of an output datastream.">dsproc_get_output_datastream_id</ref>(dsc_name,<sp/>dsc_level);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(dsid<sp/>&lt;<sp/>0)<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">(-1);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>only<sp/>create<sp/>plot<sp/>for<sp/>rh<sp/>variable</highlight><highlight class="normal"></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ai<sp/>=<sp/>0;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>args[ai++]<sp/>=<sp/></highlight><highlight class="stringliteral">&quot;-v&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>args[ai++]<sp/>=<sp/></highlight><highlight class="stringliteral">&quot;rh&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>args[ai++]<sp/>=<sp/>NULL;</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>exit_value<sp/>=<sp/><ref refid="group__DSPROC__MISC__UTILITIES_1ga6952be2bf538cb361aae7c37bf730f2f" kindref="member" tooltip="Run DQ Inspector.">dsproc_run_dq_inspector</ref>(</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>dsid,<sp/>begin_time,<sp/>end_time,<sp/>args,<sp/>0);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(exit_value<sp/>&lt;<sp/>0)<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">(-1);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(exit_value<sp/>&gt;<sp/>0)<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">(0);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">(1);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
</programlisting></para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dsid</parametername>
</parameternamelist>
<parameterdescription>
<para>- Id of the output datastream. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>begin_time</parametername>
</parameternamelist>
<parameterdescription>
<para>- Begin time of plot interval </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>end_time</parametername>
</parameternamelist>
<parameterdescription>
<para>- End time of plot interval</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>args</parametername>
</parameternamelist>
<parameterdescription>
<para>- Command line argument list to send to dq_instector. This list must be NULL terminated.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>flags</parametername>
</parameternamelist>
<parameterdescription>
<para>- Reserved for control flags. Pass in 0 for this argument to maintain backward compatibility with future updates.</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>exit_value</parametername>
</parameternamelist>
<parameterdescription>
<para>dq_inspector exit value (0 == success). </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>-1</parametername>
</parameternamelist>
<parameterdescription>
<para>if the process could not be executed </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="850" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_exec.c" bodystart="292" bodyend="346"/>
        <references refid="group__DSPROC__DATASTREAM_1gafdd0388c2c76cf124a8be784c69a7839" compoundref="dsproc__datastreams_8c" startline="1280" endline="1289">dsproc_datastream_name</references>
        <references refid="group__DSPROC__MISC__UTILITIES_1ga40ec9a1bd4c09382635eac600ee349ec" compoundref="dsproc__time__utils_8c" startline="51" endline="79">dsproc_create_timestamp</references>
        <references refid="group__DSPROC__MISC__UTILITIES_1gac799395eb87ffd4a4d5b6ddea6650c1a" compoundref="dsproc__exec_8c" startline="79" endline="218">dsproc_execvp</references>
        <references refid="group__MESSENGER_1ga1cf2ee2a32a60ea0ccd7ef1697a50171">WARNING</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__MISC__UTILITIES_1gab4bbc076520045908039c4e296af6869" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_solar_position</definition>
        <argsstring>(time_t secs1970, double latitude, double longitude, double *ap_ra, double *ap_dec, double *altitude, double *refraction, double *azimuth, double *distance)</argsstring>
        <name>dsproc_solar_position</name>
        <param>
          <type>time_t</type>
          <declname>secs1970</declname>
        </param>
        <param>
          <type>double</type>
          <declname>latitude</declname>
        </param>
        <param>
          <type>double</type>
          <declname>longitude</declname>
        </param>
        <param>
          <type>double *</type>
          <declname>ap_ra</declname>
        </param>
        <param>
          <type>double *</type>
          <declname>ap_dec</declname>
        </param>
        <param>
          <type>double *</type>
          <declname>altitude</declname>
        </param>
        <param>
          <type>double *</type>
          <declname>refraction</declname>
        </param>
        <param>
          <type>double *</type>
          <declname>azimuth</declname>
        </param>
        <param>
          <type>double *</type>
          <declname>distance</declname>
        </param>
        <briefdescription>
<para>Calculate solar position. </para>        </briefdescription>
        <detaileddescription>
<para>Wrapper function for solarposition, allowing UTC time as input.</para><para><bold>Author:</bold> Nels Larson, PNNL</para><para>This function employs the low precision formulas for the Sun&apos;s coordinates given in the &quot;Astronomical Almanac&quot; of 1990 to compute the Sun&apos;s apparent right ascension, apparent declination, altitude, atmospheric refraction correction applicable to the altitude, azimuth, and distance from Earth. The &quot;Astronomical Almanac&quot; (A. A.) states a precision of 0.01 degree for the apparent coordinates between the years 1950 and 2050, and an accuracy of 0.1 arc minute for refraction at altitudes of at least 15 degrees.</para><para>The following assumptions and simplifications are made:<itemizedlist>
<listitem><para>refraction is calculated for standard atmosphere pressure and temperature at sea level.</para></listitem><listitem><para>diurnal parallax is ignored, resulting in 0 to 9 arc seconds error in apparent position.</para></listitem><listitem><para>diurnal aberration is also ignored, resulting in 0 to 0.02 second error in right ascension and 0 to 0.3 arc second error in declination.</para></listitem><listitem><para>geodetic site coordinates are used, without correction for polar motion (maximum amplitude of 0.3 arc second) and local gravity anomalies.</para></listitem><listitem><para>local mean sidereal time is substituted for local apparent sidereal time in computing the local hour angle of the Sun, resulting in an error of about 0 to 1 second of time as determined explicitly by the equation of the equinoxes.</para></listitem></itemizedlist>
</para><para>Right ascension is measured in hours from 0 to 24, and declination in degrees from 90 to -90.</para><para>Altitude is measured from 0 degrees at the horizon to 90 at the zenith or -90 at the nadir.</para><para>Azimuth is measured from 0 to 360 degrees starting at north and increasing toward the east at 90.</para><para>The refraction correction should be added to the altitude if Earth&apos;s atmosphere is to be accounted for.</para><para>Solar distance from Earth is in astronomical units, 1 a.u. representing the mean value.</para><para><bold>Revision by:</bold> Tim Shippert, PNNL</para><para>Added a smoother to refraction, so it varies linearly from it&apos;s value at alt == -1 to zero at alt == -2. This eliminates the discontinuity at alt == -1, and might even be kinda scientifically justified.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>secs1970</parametername>
</parameternamelist>
<parameterdescription>
<para>- Seconds since 1970 UTC </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>latitude</parametername>
</parameternamelist>
<parameterdescription>
<para>- Observation site geographic latitude. [degrees.fraction, North positive] </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>longitude</parametername>
</parameternamelist>
<parameterdescription>
<para>- Observation site geographic longitude. [degrees.fraction, East positive]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ap_ra</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: Apparent solar right ascension. Argument can be NULL if the output value is not needed. [hours: 0.0 &lt;= *ap_ra &lt; 24.0]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ap_dec</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: Apparent solar declination. Argument can be NULL if the output value is not needed. [degrees: -90.0 &lt;= *ap_dec &lt;= 90.0]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>altitude</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: Solar altitude, uncorrected for refraction. Argument can be NULL if the output value is not needed. [degrees: -90.0 &lt;= *altitude &lt;= 90.0]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>refraction</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: Refraction correction for solar altitude. Add this to altitude to compensate for refraction. Argument can be NULL if the output value is not needed. [degrees: 0.0 &lt;= *refraction]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>azimuth</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: Solar azimuth. Argument can be NULL if the output value is not needed. [degrees: 0.0 &lt;= *azimuth &lt; 360.0, East is 90.0]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>distance</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: Distance of Sun from Earth (heliocentric-geocentric). Argument can be NULL if the output value is not needed. [astronomical units: 1 a.u. is mean distance]</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if an input parameter is out of bounds </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="861" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_solar_position.c" bodystart="508" bodyend="563"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__OUTLIER__FILTERS_1gaf8cccb558e7645a28fadfe492124fd1a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_flag_outliers_iqd</definition>
        <argsstring>(CDSGroup *dataset, const char *var_name, double window_width, int min_npoints, unsigned int skipped_flag, double bad_threshold, unsigned int bad_flag, double ind_threshold, unsigned int ind_flag, unsigned int analyze)</argsstring>
        <name>dsproc_flag_outliers_iqd</name>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>dataset</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>var_name</declname>
        </param>
        <param>
          <type>double</type>
          <declname>window_width</declname>
        </param>
        <param>
          <type>int</type>
          <declname>min_npoints</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>skipped_flag</declname>
        </param>
        <param>
          <type>double</type>
          <declname>bad_threshold</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>bad_flag</declname>
        </param>
        <param>
          <type>double</type>
          <declname>ind_threshold</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>ind_flag</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>analyze</declname>
        </param>
        <briefdescription>
<para>Flag outliers using the Median and Interquartile Deviation Method (IQD). </para>        </briefdescription>
        <detaileddescription>
<para>For this outlier detection method, the median of the residuals is calculated, along with the 25th percentile and the 75th percentile. The difference between the 25th and 75th percentile is the interquartile deviation (IQD). Then, the difference is calculated between each value and the residual median. If the value is a certain number of IQD away from the median of the residuals, that value is classified as an outlier. A typical default value for the threshold is 3.</para><para>The &apos;analyze&apos; option can be used to analyze the outlier detection results during development and help determine the best window width and threshold to use. Remember to set this value to 0 before creating a production release. Available options are:</para><para><itemizedlist>
<listitem><para>1 = prints ranges of interquartile deviations from the median, and the number of points that fall within each range.</para></listitem></itemizedlist>
</para><para><itemizedlist>
<listitem><para>2 = for each point prints time offset, data value, window median, deviation from the median, interquartile deviation, and number of interquartile deviations the value is from the median.</para></listitem></itemizedlist>
</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the dataset </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>var_name</parametername>
</parameternamelist>
<parameterdescription>
<para>name of the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>window_width</parametername>
</parameternamelist>
<parameterdescription>
<para>width of window centered on data point (in seconds) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>min_npoints</parametername>
</parameternamelist>
<parameterdescription>
<para>minimum number of values within window required to perform the test (default is 2). </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>skipped_flag</parametername>
</parameternamelist>
<parameterdescription>
<para>QC flag value to use for values that do not have enough points in window to perform the test. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bad_threshold</parametername>
</parameternamelist>
<parameterdescription>
<para>IQD factor used to flag outliers as bad </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bad_flag</parametername>
</parameternamelist>
<parameterdescription>
<para>QC flag value to use for bad outliers </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ind_threshold</parametername>
</parameternamelist>
<parameterdescription>
<para>IQD factor used to flag outliers as indeterminate </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ind_flag</parametername>
</parameternamelist>
<parameterdescription>
<para>QC flag value to use for indeterminate outliers </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>analyze</parametername>
</parameternamelist>
<parameterdescription>
<para>Print statistics that may be helpfull during development (see above).</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>a fatal error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="881" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_outlier_filters.c" bodystart="244" bodyend="503"/>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="structCDSGroup_1a09f68acfa7f871b417e7b9e84111aa0b">CDSGroup::name</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__OUTLIER__FILTERS_1gad3efed0d5e8fd152a8022ebc8b5414f2" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_flag_outliers_mean_dev</definition>
        <argsstring>(CDSGroup *dataset, const char *var_name, double window_width, int min_npoints, unsigned int skipped_flag, double bad_threshold, unsigned int bad_flag, double ind_threshold, unsigned int ind_flag, unsigned int analyze)</argsstring>
        <name>dsproc_flag_outliers_mean_dev</name>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>dataset</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>var_name</declname>
        </param>
        <param>
          <type>double</type>
          <declname>window_width</declname>
        </param>
        <param>
          <type>int</type>
          <declname>min_npoints</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>skipped_flag</declname>
        </param>
        <param>
          <type>double</type>
          <declname>bad_threshold</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>bad_flag</declname>
        </param>
        <param>
          <type>double</type>
          <declname>ind_threshold</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>ind_flag</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>analyze</declname>
        </param>
        <briefdescription>
<para>Flag outliers using the Absolute Deviation from the Mean Method. </para>        </briefdescription>
        <detaileddescription>
<para>For this outlier detection method values are flagged based on their absolute deviation from the mean of the surrounding values.</para><para>The &apos;analyze&apos; option can be used to analyze the outlier detection results during development and help determine the best window width and threshold to use. Remember to set this value to 0 before creating a production release. Available options are:</para><para><itemizedlist>
<listitem><para>1 = prints ranges of absolute deviations from the mean, and the number of points that fall within each range.</para></listitem></itemizedlist>
</para><para><itemizedlist>
<listitem><para>2 = for each point prints time offset, data value, window mean, and absolute deviation from the mean.</para></listitem></itemizedlist>
</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the dataset </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>var_name</parametername>
</parameternamelist>
<parameterdescription>
<para>name of the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>window_width</parametername>
</parameternamelist>
<parameterdescription>
<para>width of window centered on data point (in seconds) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>min_npoints</parametername>
</parameternamelist>
<parameterdescription>
<para>minimum number of values within window required to perform the test (default is 2). </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>skipped_flag</parametername>
</parameternamelist>
<parameterdescription>
<para>QC flag value to use for values that do not have enough points in window to perform the test. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bad_threshold</parametername>
</parameternamelist>
<parameterdescription>
<para>delta from mean used to flag outliers as bad </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bad_flag</parametername>
</parameternamelist>
<parameterdescription>
<para>QC flag value to use for bad outliers </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ind_threshold</parametername>
</parameternamelist>
<parameterdescription>
<para>delta from mean used to flag outliers as indeterminate </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ind_flag</parametername>
</parameternamelist>
<parameterdescription>
<para>QC flag value to use for indeterminate outliers </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>analyze</parametername>
</parameternamelist>
<parameterdescription>
<para>Print statistics that may be helpfull during development (see above).</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>a fatal error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="893" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_outlier_filters.c" bodystart="542" bodyend="773"/>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="structCDSGroup_1a09f68acfa7f871b417e7b9e84111aa0b">CDSGroup::name</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__OUTLIER__FILTERS_1gabf2fda3c8389abe958654d95f2cb13f4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_flag_outliers_mean_mad</definition>
        <argsstring>(CDSGroup *dataset, const char *var_name, double window_width, int min_npoints, unsigned int skipped_flag, double bad_threshold, unsigned int bad_flag, double ind_threshold, unsigned int ind_flag, unsigned int analyze)</argsstring>
        <name>dsproc_flag_outliers_mean_mad</name>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>dataset</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>var_name</declname>
        </param>
        <param>
          <type>double</type>
          <declname>window_width</declname>
        </param>
        <param>
          <type>int</type>
          <declname>min_npoints</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>skipped_flag</declname>
        </param>
        <param>
          <type>double</type>
          <declname>bad_threshold</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>bad_flag</declname>
        </param>
        <param>
          <type>double</type>
          <declname>ind_threshold</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>ind_flag</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>analyze</declname>
        </param>
        <briefdescription>
<para>Flag outliers using the Mean and Mean Absolute Deviation Method (MAD). </para>        </briefdescription>
        <detaileddescription>
<para>For this outlier detection method the mean of the absolute deviations from the data&apos;s mean (MAD) is calculated. If a value is a certain number of MAD away from the mean of the residuals, that value is classified as an outlier. A typical default value for the threshold is 3.</para><para>The MAD is more resilient to outliers in a data set than the standard deviation. In the standard deviation, the distances from the mean are squared, so large deviations are weighted more heavily, and thus outliers can heavily influence it. In the MAD, the deviations of a small number of outliers are irrelevant.</para><para>The &apos;analyze&apos; option can be used to analyze the outlier detection results during development and help determine the best window width and threshold to use. Remember to set this value to 0 before creating a production release. Available options are:</para><para><itemizedlist>
<listitem><para>1 = prints ranges of mean absolute deviations from the mean, and the number of points that fall within each range.</para></listitem></itemizedlist>
</para><para><itemizedlist>
<listitem><para>2 = for each point prints time offset, data value, window mean, deviation from the mean, mean absolute deviation, and number of mean absolute deviations the value is from the mean.</para></listitem></itemizedlist>
</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the dataset </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>var_name</parametername>
</parameternamelist>
<parameterdescription>
<para>name of the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>window_width</parametername>
</parameternamelist>
<parameterdescription>
<para>width of window centered on data point (in seconds) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>min_npoints</parametername>
</parameternamelist>
<parameterdescription>
<para>minimum number of values within window required to perform the test (default is 2). </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>skipped_flag</parametername>
</parameternamelist>
<parameterdescription>
<para>QC flag value to use for values that do not have enough points in window to perform the test. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bad_threshold</parametername>
</parameternamelist>
<parameterdescription>
<para>MAD factor used to flag outliers as bad </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bad_flag</parametername>
</parameternamelist>
<parameterdescription>
<para>QC flag value to use for bad outliers </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ind_threshold</parametername>
</parameternamelist>
<parameterdescription>
<para>MAD factor used to flag outliers as indeterminate </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ind_flag</parametername>
</parameternamelist>
<parameterdescription>
<para>QC flag value to use for indeterminate outliers </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>analyze</parametername>
</parameternamelist>
<parameterdescription>
<para>Print statistics that may be helpfull during development (see above).</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>a fatal error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="905" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_outlier_filters.c" bodystart="821" bodyend="1060"/>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="structCDSGroup_1a09f68acfa7f871b417e7b9e84111aa0b">CDSGroup::name</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__OUTLIER__FILTERS_1ga6fb5a943ef1e3292bc07e35a12af7202" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_flag_outliers_median_mad</definition>
        <argsstring>(CDSGroup *dataset, const char *var_name, double window_width, int min_npoints, unsigned int skipped_flag, double bad_threshold, unsigned int bad_flag, double ind_threshold, unsigned int ind_flag, unsigned int analyze)</argsstring>
        <name>dsproc_flag_outliers_median_mad</name>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>dataset</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>var_name</declname>
        </param>
        <param>
          <type>double</type>
          <declname>window_width</declname>
        </param>
        <param>
          <type>int</type>
          <declname>min_npoints</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>skipped_flag</declname>
        </param>
        <param>
          <type>double</type>
          <declname>bad_threshold</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>bad_flag</declname>
        </param>
        <param>
          <type>double</type>
          <declname>ind_threshold</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>ind_flag</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>analyze</declname>
        </param>
        <briefdescription>
<para>Flag outliers using the Median and Median Absolute Deviation Method (MAD). </para>        </briefdescription>
        <detaileddescription>
<para>For this outlier detection method the median of the absolute deviations from the data&apos;s median (MAD) is calculated. If a value is a certain number of MAD away from the median of the residuals, that value is classified as an outlier. A typical default value for the threshold is 3.</para><para>The MAD is more resilient to outliers in a data set than the standard deviation. In the standard deviation, the distances from the mean are squared, so large deviations are weighted more heavily, and thus outliers can heavily influence it. In the MAD, the deviations of a small number of outliers are irrelevant.</para><para>While this method is generally more effective than the mean and standard deviation method, it can be too aggressive in classifying values that are not really extremely different. Also, if more than 50% of the data points have the same value, MAD is computed to be 0, so any value different from the residual median is classified as an outlier.</para><para>The &apos;analyze&apos; option can be used to analyze the outlier detection results during development and help determine the best window width and threshold to use. Remember to set this value to 0 before creating a production release. Available options are:</para><para><itemizedlist>
<listitem><para>1 = prints ranges of median absolute deviations from the median, and the number of points that fall within each range.</para></listitem></itemizedlist>
</para><para><itemizedlist>
<listitem><para>2 = for each point prints time offset, data value, window median, deviation from the median, median absolute deviation, and number of median absolute deviations the value is from the median.</para></listitem></itemizedlist>
</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the dataset </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>var_name</parametername>
</parameternamelist>
<parameterdescription>
<para>name of the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>window_width</parametername>
</parameternamelist>
<parameterdescription>
<para>width of window centered on data point (in seconds) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>min_npoints</parametername>
</parameternamelist>
<parameterdescription>
<para>minimum number of values within window required to perform the test (default is 2). </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>skipped_flag</parametername>
</parameternamelist>
<parameterdescription>
<para>QC flag value to use for values that do not have enough points in window to perform the test. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bad_threshold</parametername>
</parameternamelist>
<parameterdescription>
<para>MAD factor used to flag outliers as bad </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bad_flag</parametername>
</parameternamelist>
<parameterdescription>
<para>QC flag value to use for bad outliers </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ind_threshold</parametername>
</parameternamelist>
<parameterdescription>
<para>MAD factor used to flag outliers as indeterminate </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ind_flag</parametername>
</parameternamelist>
<parameterdescription>
<para>QC flag value to use for indeterminate outliers </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>analyze</parametername>
</parameternamelist>
<parameterdescription>
<para>Print statistics that may be helpfull during development (see above).</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>a fatal error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="917" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_outlier_filters.c" bodystart="1114" bodyend="1364"/>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="structCDSGroup_1a09f68acfa7f871b417e7b9e84111aa0b">CDSGroup::name</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__OUTLIER__FILTERS_1ga547a723671d4bdc30a4047829852dd37" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_flag_outliers_std</definition>
        <argsstring>(CDSGroup *dataset, const char *var_name, double window_width, int min_npoints, unsigned int skipped_flag, double bad_threshold, unsigned int bad_flag, double ind_threshold, unsigned int ind_flag, unsigned int analyze)</argsstring>
        <name>dsproc_flag_outliers_std</name>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>dataset</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>var_name</declname>
        </param>
        <param>
          <type>double</type>
          <declname>window_width</declname>
        </param>
        <param>
          <type>int</type>
          <declname>min_npoints</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>skipped_flag</declname>
        </param>
        <param>
          <type>double</type>
          <declname>bad_threshold</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>bad_flag</declname>
        </param>
        <param>
          <type>double</type>
          <declname>ind_threshold</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>ind_flag</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>analyze</declname>
        </param>
        <briefdescription>
<para>Flag outliers using the Mean and Standard Deviation Method. </para>        </briefdescription>
        <detaileddescription>
<para>For this outlier detection method, the mean and standard deviation of the residuals are calculated and compared. If a value is a certain number of standard deviations away from the mean, that data point is identified as an outlier. The specified number of standard deviations is called the threshold. A typical default value for the threshold is 3.</para><para>This method can fail to detect outliers because the outliers increase the standard deviation. The more extreme the outlier, the more the standard deviation is affected.</para><para>The &apos;analyze&apos; option can be used to analyze the outlier detection results during development and help determine the best window width and threshold to use. Remember to set this value to 0 before creating a production release. Available options are:</para><para><itemizedlist>
<listitem><para>1 = print ranges of standard deviations from the mean, and the number of points that fall within each range.</para></listitem></itemizedlist>
</para><para><itemizedlist>
<listitem><para>2 = for each point prints time offset, data value, window mean, deviation from the mean, standard deviation, and number of standard deviations the value is from the mean.</para></listitem></itemizedlist>
</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the dataset </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>var_name</parametername>
</parameternamelist>
<parameterdescription>
<para>name of the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>window_width</parametername>
</parameternamelist>
<parameterdescription>
<para>width of window centered on data point (in seconds) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>min_npoints</parametername>
</parameternamelist>
<parameterdescription>
<para>minimum number of values within window required to perform the test (default is 2). </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>skipped_flag</parametername>
</parameternamelist>
<parameterdescription>
<para>QC flag value to use for values that do not have enough points in window to perform the test. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bad_threshold</parametername>
</parameternamelist>
<parameterdescription>
<para>STD factor used to flag outliers as bad </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bad_flag</parametername>
</parameternamelist>
<parameterdescription>
<para>QC flag value to use for bad outliers </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ind_threshold</parametername>
</parameternamelist>
<parameterdescription>
<para>STD factor used to flag outliers as indeterminate </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ind_flag</parametername>
</parameternamelist>
<parameterdescription>
<para>QC flag value to use for indeterminate outliers </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>analyze</parametername>
</parameternamelist>
<parameterdescription>
<para>Print statistics that may be helpfull during development (see above).</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>a fatal error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="929" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_outlier_filters.c" bodystart="1411" bodyend="1654"/>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="structCDSGroup_1a09f68acfa7f871b417e7b9e84111aa0b">CDSGroup::name</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VARTAGS_1ga19f08fde4361211ae8521ec57a7a44ec" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_add_var_output_target</definition>
        <argsstring>(CDSVar *var, int ds_id, const char *var_name)</argsstring>
        <name>dsproc_add_var_output_target</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>var_name</declname>
        </param>
        <briefdescription>
<para>Add an output target for a variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will add an output target for the variable.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- output datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>var_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the variable in the output datastream</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="958" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_var_tag.c" bodystart="314" bodyend="380"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="group__DSPROC__DATASTREAM_1gga15b890c351c132e694a5ead0c6a413daa65007e1eac434ec827bf3219392a1954" compoundref="dsproc3_8h" startline="417">DSR_OUTPUT</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__CDSObject_1gad6d5f86f7c842c2e9fc594fe3cfed2bb">cds_get_object_path</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1gaad95f132cb748c28c183bda869c569e4" compoundref="dsproc3_8h" startline="1148">DSPROC_EBADDSID</references>
        <references refid="messenger_8h_1ac791733161412261186acd64e02b55e0">msngr_debug_level</references>
        <references refid="messenger_8h_1a56b2f7386a8a816e5c14dcc982a2e90d">msngr_provenance_level</references>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="structCDSVar_1a08baec1f48b5050d16198e3f0ef3f51f">CDSVar::name</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VARTAGS_1gabd8c15f53f16cb6683b36630267af75d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_copy_var_tag</definition>
        <argsstring>(CDSVar *src_var, CDSVar *dest_var)</argsstring>
        <name>dsproc_copy_var_tag</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>src_var</declname>
        </param>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>dest_var</declname>
        </param>
        <briefdescription>
<para>Copy a variable tag from one variable to another. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>src_var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the source variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>dest_var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the destination variable</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="962" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_var_tag.c" bodystart="395" bodyend="480"/>
        <references refid="group__CDSObject_1ga772b5af3a10bf05ec203af6c668ecd0f">cds_get_user_data</references>
        <references refid="dsproc__private_8h_1a6ac17580f32edf96402fa56c517b62ae" compoundref="dsproc__private_8h" startline="35">STRDUP_FAILED</references>
        <references refid="group__CDSObject_1ga3f287c35e03e915de69ce909d8d0cc13">cds_set_user_data</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="structCDSVar_1a08baec1f48b5050d16198e3f0ef3f51f">CDSVar::name</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VARTAGS_1gad9001db57170245b758e6c99cfddda36" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_delete_var_tag</definition>
        <argsstring>(CDSVar *var)</argsstring>
        <name>dsproc_delete_var_tag</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <briefdescription>
<para>Delete a variable tag. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="965" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_var_tag.c" bodystart="487" bodyend="494"/>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__CDSObject_1gad6d5f86f7c842c2e9fc594fe3cfed2bb">cds_get_object_path</references>
        <references refid="group__CDSObject_1ga60b9e249412ce05d6288fdcac07c496e">cds_delete_user_data</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VARTAGS_1gaf49547cebaf6a1b711ccf9dc9622091a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char* dsproc_get_source_var_name</definition>
        <argsstring>(CDSVar *var)</argsstring>
        <name>dsproc_get_source_var_name</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <briefdescription>
<para>Get the name of the source variable read in from the input file. </para>        </briefdescription>
        <detaileddescription>
<para>The memory used by the returned variable name belongs to the internal variable tag and must not be freed or altered by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the name of the source variable</para></listitem><listitem><para>NULL if the variable was not explicitly requested by the user in the retriever definition </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="967" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_var_tag.c" bodystart="771" bodyend="782"/>
        <references refid="group__CDSObject_1ga772b5af3a10bf05ec203af6c668ecd0f">cds_get_user_data</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VARTAGS_1ga0c0d748ad03c2abce944cea81cc0bb22" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char* dsproc_get_source_ds_name</definition>
        <argsstring>(CDSVar *var)</argsstring>
        <name>dsproc_get_source_ds_name</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <briefdescription>
<para>Get the name of the input datastream the variable was retrieved from. </para>        </briefdescription>
        <detaileddescription>
<para>The memory used by the returned datastream name belongs to the internal datastream structure and must not be freed or altered by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the name of the input datastream</para></listitem><listitem><para>NULL if the variable was not explicitly requested by the user in the retriever definition </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="968" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_var_tag.c" bodystart="798" bodyend="809"/>
        <references refid="group__CDSObject_1ga772b5af3a10bf05ec203af6c668ecd0f">cds_get_user_data</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VARTAGS_1gab976826fcce9378e390490e8b43d0c5d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_get_source_ds_id</definition>
        <argsstring>(CDSVar *var)</argsstring>
        <name>dsproc_get_source_ds_id</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <briefdescription>
<para>Get the ID of the input datastream the variable was retrieved from. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>input datastream ID</para></listitem><listitem><para>-1 if the variable was not explicitly requested by the user in the retriever definition </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="969" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_var_tag.c" bodystart="821" bodyend="837"/>
        <references refid="group__CDSObject_1ga772b5af3a10bf05ec203af6c668ecd0f">cds_get_user_data</references>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VARTAGS_1ga6f927ead3db86e4d687581534408ba43" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char* dsproc_get_var_coordsys_name</definition>
        <argsstring>(CDSVar *var)</argsstring>
        <name>dsproc_get_var_coordsys_name</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <briefdescription>
<para>Get the name of the transformation coordinate system. </para>        </briefdescription>
        <detaileddescription>
<para>The memory used by the returned name belongs to the internal variable tag and must not be freed or altered by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>name of the coordinate system</para></listitem><listitem><para>NULL if a coordinate system was not specified for the variable </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="971" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_var_tag.c" bodystart="720" bodyend="729"/>
        <references refid="group__CDSObject_1ga772b5af3a10bf05ec203af6c668ecd0f">cds_get_user_data</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VARTAGS_1ga587f6837c9314d583466b488708f4d32" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_get_var_output_targets</definition>
        <argsstring>(CDSVar *var, VarTarget ***targets)</argsstring>
        <name>dsproc_get_var_output_targets</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <param>
          <type><ref refid="structVarTarget" kindref="compound">VarTarget</ref> ***</type>
          <declname>targets</declname>
        </param>
        <briefdescription>
<para>Get the output targets defined for the specified variable. </para>        </briefdescription>
        <detaileddescription>
<para>The memory used by the output array belongs to the internal variable tag and must not be freed or altered by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>targets</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: pointer to the array of pointers to the <ref refid="structVarTarget" kindref="compound">VarTarget</ref> structures.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>number of variable targets</para></listitem><listitem><para>0 if no variable targets have been defined </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="975" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_var_tag.c" bodystart="745" bodyend="756"/>
        <references refid="group__CDSObject_1ga772b5af3a10bf05ec203af6c668ecd0f">cds_get_user_data</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VARTAGS_1gaed38d6b658967fca73184f98ea2ae796" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_var_coordsys_name</definition>
        <argsstring>(CDSVar *var, const char *coordsys_name)</argsstring>
        <name>dsproc_set_var_coordsys_name</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>coordsys_name</declname>
        </param>
        <briefdescription>
<para>Set the coordinate system for a variable. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>coordsys_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the coordinate system</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="979" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_var_tag.c" bodystart="509" bodyend="547"/>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__CDSObject_1gad6d5f86f7c842c2e9fc594fe3cfed2bb">cds_get_object_path</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="structCDSVar_1a08baec1f48b5050d16198e3f0ef3f51f">CDSVar::name</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VARTAGS_1gaccbaaad7e618f92ba1efe4cd24958662" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_var_flags</definition>
        <argsstring>(CDSVar *var, int flags)</argsstring>
        <name>dsproc_set_var_flags</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <param>
          <type>int</type>
          <declname>flags</declname>
        </param>
        <briefdescription>
<para>Set the control flags for a variable. </para>        </briefdescription>
        <detaileddescription>
<para><bold>Control Flags:</bold></para><para><itemizedlist>
<listitem><para>VAR_SKIP_TRANSFORM = Instruct the transform logic to ignore this variable.</para></listitem></itemizedlist>
</para><para><itemizedlist>
<listitem><para>VAR_ROLLUP_TRANS_QC = Consolidate the transformation QC bits when they are mapped to the output dataset.</para></listitem></itemizedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>flags</parametername>
</parameternamelist>
<parameterdescription>
<para>- flags to set</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="981" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_var_tag.c" bodystart="567" bodyend="594"/>
        <references refid="messenger_8h_1ac791733161412261186acd64e02b55e0">msngr_debug_level</references>
        <references refid="messenger_8h_1a56b2f7386a8a816e5c14dcc982a2e90d">msngr_provenance_level</references>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__CDSObject_1gad6d5f86f7c842c2e9fc594fe3cfed2bb">cds_get_object_path</references>
        <references refid="group__DSPROC__VARTAGS_1ga1121b44c68882d8c9e9bd655843ea03a" compoundref="dsproc3_8h" startline="940">VAR_SKIP_TRANSFORM</references>
        <references refid="group__DSPROC__VARTAGS_1ga02194286a30a23338271544d63da047b" compoundref="dsproc3_8h" startline="943">VAR_ROLLUP_TRANS_QC</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VARTAGS_1gafe6ef97bc3c0da8bd4d6b37e9b3e810a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_var_output_target</definition>
        <argsstring>(CDSVar *var, int ds_id, const char *var_name)</argsstring>
        <name>dsproc_set_var_output_target</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>var_name</declname>
        </param>
        <briefdescription>
<para>Set the output target for a variable. </para>        </briefdescription>
        <detaileddescription>
<para>This function will replace any previously specified output targets already set for the variable.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- output datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>var_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the variable in the output datastream</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="986" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_var_tag.c" bodystart="613" bodyend="676"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="group__DSPROC__DATASTREAM_1gga15b890c351c132e694a5ead0c6a413daa65007e1eac434ec827bf3219392a1954" compoundref="dsproc3_8h" startline="417">DSR_OUTPUT</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__CDSObject_1gad6d5f86f7c842c2e9fc594fe3cfed2bb">cds_get_object_path</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1gaad95f132cb748c28c183bda869c569e4" compoundref="dsproc3_8h" startline="1148">DSPROC_EBADDSID</references>
        <references refid="messenger_8h_1ac791733161412261186acd64e02b55e0">msngr_debug_level</references>
        <references refid="messenger_8h_1a56b2f7386a8a816e5c14dcc982a2e90d">msngr_provenance_level</references>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="structCDSVar_1a08baec1f48b5050d16198e3f0ef3f51f">CDSVar::name</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__VARTAGS_1ga0470448e6fa667784ad6bea1e903b5d1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_unset_var_flags</definition>
        <argsstring>(CDSVar *var, int flags)</argsstring>
        <name>dsproc_unset_var_flags</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <param>
          <type>int</type>
          <declname>flags</declname>
        </param>
        <briefdescription>
<para>Unset the control flags for a variable. </para>        </briefdescription>
        <detaileddescription>
<para>See <ref refid="group__DSPROC__VARTAGS_1gaccbaaad7e618f92ba1efe4cd24958662" kindref="member">dsproc_set_var_flags()</ref> for flags and descriptions.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>flags</parametername>
</parameternamelist>
<parameterdescription>
<para>- flags to set </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="988" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_var_tag.c" bodystart="686" bodyend="706"/>
        <references refid="messenger_8h_1ac791733161412261186acd64e02b55e0">msngr_debug_level</references>
        <references refid="messenger_8h_1a56b2f7386a8a816e5c14dcc982a2e90d">msngr_provenance_level</references>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__CDSObject_1gad6d5f86f7c842c2e9fc594fe3cfed2bb">cds_get_object_path</references>
        <references refid="group__DSPROC__VARTAGS_1ga1121b44c68882d8c9e9bd655843ea03a" compoundref="dsproc3_8h" startline="940">VAR_SKIP_TRANSFORM</references>
        <references refid="group__CDSObject_1ga772b5af3a10bf05ec203af6c668ecd0f">cds_get_user_data</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__DQRS_1ga0d4a7b00b47ddf0b8504d85462b58843" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_get_var_dqrs</definition>
        <argsstring>(CDSVar *var, VarDQR ***dqrs)</argsstring>
        <name>dsproc_get_var_dqrs</name>
        <param>
          <type><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref> *</type>
          <declname>var</declname>
        </param>
        <param>
          <type><ref refid="structVarDQR" kindref="compound">VarDQR</ref> ***</type>
          <declname>dqrs</declname>
          <defname>var_dqrs</defname>
        </param>
        <briefdescription>
<para>Get all available DQRs for the data stored in the specified variable. </para>        </briefdescription>
        <detaileddescription>
<para>The memory used by the output array belongs to the internal variable tag and must not be freed by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>var</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the variable </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>var_dqrs</parametername>
</parameternamelist>
<parameterdescription>
<para>- output: pointer to the array of pointers to the <ref refid="structVarDQR" kindref="compound">VarDQR</ref> structures.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>number of DQRs found</para></listitem><listitem><para>0 if no DQRs where found for the relevant time range, or the variable was not explicitely requested by the user in the retriever definition.</para></listitem><listitem><para>-1 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1025" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_dqrdb.c" bodystart="576" bodyend="620"/>
        <references refid="group__CDSObject_1ga772b5af3a10bf05ec203af6c668ecd0f">cds_get_user_data</references>
        <references refid="structCDSVar_1a70329b968c6919ff027aa947608b5616">CDSVar::parent</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__Print_1ga8577e53758950e9f9d7ccf412eff5269" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_dump_dataset</definition>
        <argsstring>(CDSGroup *dataset, const char *outdir, const char *prefix, time_t file_time, const char *suffix, int flags)</argsstring>
        <name>dsproc_dump_dataset</name>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>dataset</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>outdir</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>prefix</declname>
        </param>
        <param>
          <type>time_t</type>
          <declname>file_time</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>suffix</declname>
        </param>
        <param>
          <type>int</type>
          <declname>flags</declname>
        </param>
        <briefdescription>
<para>Dump the contents of a dataset to a text file. </para>        </briefdescription>
        <detaileddescription>
<para>This function will dump the contents of a dataset to a text file with the following name: <verbatim>prefix.YYYYMMDD.hhmmss.suffix
</verbatim></para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dataset</parametername>
</parameternamelist>
<parameterdescription>
<para>- pointer to the dataset </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>outdir</parametername>
</parameternamelist>
<parameterdescription>
<para>- the output directory </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>prefix</parametername>
</parameternamelist>
<parameterdescription>
<para>- the prefix to use for the file name, or NULL to use the name of the dataset. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>file_time</parametername>
</parameternamelist>
<parameterdescription>
<para>- the time to use to create the file timestamp, or 0 to use the first sample time in the dataset. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>suffix</parametername>
</parameternamelist>
<parameterdescription>
<para>- the suffix portion of the file name </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>flags</parametername>
</parameternamelist>
<parameterdescription>
<para>- reserved for control flags</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if and error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1041" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_print.c" bodystart="78" bodyend="187"/>
        <references refid="group__ARMUTILS__DIR__UTILS_1ga364724d237b5dfcea7aa9c1d5a2be6fa">make_path</references>
        <references refid="structCDSGroup_1a09f68acfa7f871b417e7b9e84111aa0b">CDSGroup::name</references>
        <references refid="group__DSPROC__TIME__DATA_1gaa3479e5fae1399fabbca0571f93ad5a5" compoundref="dsproc__dataset__times_8c" startline="93" endline="103">dsproc_get_time_range</references>
        <references refid="structCDSGroup_1a41f30782bbc34282c7816eb5b3418362">CDSGroup::ngroups</references>
        <references refid="structCDSGroup_1acb3611ebfebc8fb39908244cbb1b4c77">CDSGroup::groups</references>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__CDSObject_1gad6d5f86f7c842c2e9fc594fe3cfed2bb">cds_get_object_path</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga550878b8ef3c5f9e84530c0533a97b59" compoundref="dsproc3_8h" startline="1199">DSPROC_EFILEOPEN</references>
        <references refid="group__CDS__PRINT_1gaeca7bff8444c510933ba3a50172985df">cds_print</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__Print_1ga68baa6217d6fc6ef62a8fe67700eb611" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_dump_output_datasets</definition>
        <argsstring>(const char *outdir, const char *suffix, int flags)</argsstring>
        <name>dsproc_dump_output_datasets</name>
        <param>
          <type>const char *</type>
          <declname>outdir</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>suffix</declname>
        </param>
        <param>
          <type>int</type>
          <declname>flags</declname>
        </param>
        <briefdescription>
<para>Dump all output datasets to text files. </para>        </briefdescription>
        <detaileddescription>
<para>This function will dump all output datasets to a text file with the following names: <verbatim>datastream.YYYYMMDD.hhmmss.suffix
</verbatim></para><para>where:<itemizedlist>
<listitem><para>datastream = the output datastream name</para></listitem><listitem><para>YYYYMMDD = the date of the first sample in the dataset</para></listitem><listitem><para>hhmmss = the time of the first sample in the dataset</para></listitem><listitem><para>suffix = the user specified suffix in the function call</para></listitem></itemizedlist>
</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>outdir</parametername>
</parameternamelist>
<parameterdescription>
<para>- the output directory </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>suffix</parametername>
</parameternamelist>
<parameterdescription>
<para>- the suffix portion of the file name </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>flags</parametername>
</parameternamelist>
<parameterdescription>
<para>- reserved for control flags</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if and error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1046" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_print.c" bodystart="214" bodyend="239"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="group__DSPROC__DATASTREAM_1gga15b890c351c132e694a5ead0c6a413daa65007e1eac434ec827bf3219392a1954" compoundref="dsproc3_8h" startline="417">DSR_OUTPUT</references>
        <references refid="group__DSPROC__Print_1ga8577e53758950e9f9d7ccf412eff5269" compoundref="dsproc__print_8c" startline="78" endline="187">dsproc_dump_dataset</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__Print_1ga61b73081fa571797cd44dc1d43954f93" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_dump_retrieved_datasets</definition>
        <argsstring>(const char *outdir, const char *suffix, int flags)</argsstring>
        <name>dsproc_dump_retrieved_datasets</name>
        <param>
          <type>const char *</type>
          <declname>outdir</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>suffix</declname>
        </param>
        <param>
          <type>int</type>
          <declname>flags</declname>
        </param>
        <briefdescription>
<para>Dump all retrieved datasets to a text file. </para>        </briefdescription>
        <detaileddescription>
<para>This function will dump all retrieved data to a text file with the following name: <verbatim>{site}{process}{facility}.YYYYMMDD.hhmmss.suffix
</verbatim></para><para>where:<itemizedlist>
<listitem><para>site = the site name as specified on the command line</para></listitem><listitem><para>process = the name of the process as defined in the database</para></listitem><listitem><para>facility = the facility name as specified on the command line</para></listitem><listitem><para>YYYYMMDD = the start date of the current processing interval</para></listitem><listitem><para>hhmmss = the start time of the current processing interval</para></listitem><listitem><para>suffix = the user specified suffix in the function call</para></listitem></itemizedlist>
</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>outdir</parametername>
</parameternamelist>
<parameterdescription>
<para>- the output directory </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>suffix</parametername>
</parameternamelist>
<parameterdescription>
<para>- the suffix portion of the file name </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>flags</parametername>
</parameternamelist>
<parameterdescription>
<para>- reserved for control flags</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if and error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1051" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_print.c" bodystart="268" bodyend="285"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="group__DSPROC__Print_1ga8577e53758950e9f9d7ccf412eff5269" compoundref="dsproc__print_8c" startline="78" endline="187">dsproc_dump_dataset</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__Print_1gadb0147f8b8cb41767c34e08584022030" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_dump_transformed_datasets</definition>
        <argsstring>(const char *outdir, const char *suffix, int flags)</argsstring>
        <name>dsproc_dump_transformed_datasets</name>
        <param>
          <type>const char *</type>
          <declname>outdir</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>suffix</declname>
        </param>
        <param>
          <type>int</type>
          <declname>flags</declname>
        </param>
        <briefdescription>
<para>Dump all transformed datasets to a text file. </para>        </briefdescription>
        <detaileddescription>
<para>This function will dump all transformed data to a text file with the following name: <verbatim>{site}{process}{facility}.YYYYMMDD.hhmmss.suffix
</verbatim></para><para>where:<itemizedlist>
<listitem><para>site = the site name as specified on the command line</para></listitem><listitem><para>process = the name of the process as defined in the database</para></listitem><listitem><para>facility = the facility name as specified on the command line</para></listitem><listitem><para>YYYYMMDD = the start date of the current processing interval</para></listitem><listitem><para>hhmmss = the start time of the current processing interval</para></listitem><listitem><para>suffix = the user specified suffix in the function call</para></listitem></itemizedlist>
</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>outdir</parametername>
</parameternamelist>
<parameterdescription>
<para>- the output directory </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>suffix</parametername>
</parameternamelist>
<parameterdescription>
<para>- the suffix portion of the file name </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>flags</parametername>
</parameternamelist>
<parameterdescription>
<para>- reserved for control flags</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if and error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1056" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_print.c" bodystart="314" bodyend="331"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="group__DSPROC__Print_1ga8577e53758950e9f9d7ccf412eff5269" compoundref="dsproc__print_8c" startline="78" endline="187">dsproc_dump_dataset</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__FILE__UTILS_1gacbd4563e78e2004815401f48fb5211e1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_copy_file</definition>
        <argsstring>(const char *src_file, const char *dest_file)</argsstring>
        <name>dsproc_copy_file</name>
        <param>
          <type>const char *</type>
          <declname>src_file</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>dest_file</declname>
        </param>
        <briefdescription>
<para>Copy a file. </para>        </briefdescription>
        <detaileddescription>
<para>This function will copy a file and use MD5 checking to validate the file copy was successful. It will also add a &quot;copying file&quot; message to the log file.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>src_file</parametername>
</parameternamelist>
<parameterdescription>
<para>- full path to the source file </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>dest_file</parametername>
</parameternamelist>
<parameterdescription>
<para>- full path to the destination file</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successfull</para></listitem><listitem><para>0 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1341" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_file_utils.c" bodystart="48" bodyend="60"/>
        <references refid="group__MESSENGER_1ga6d1c985dbdf1f40d7b27801b421c7382">LOG</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__ARMUTILS__FILE__UTILS_1ga3885f9ba137ee8066f7c18b923fa0c63">file_copy</references>
        <references refid="group__ARMUTILS__FILE__UTILS_1gadd7844b59089c9c104888f058d417c40">FC_CHECK_MD5</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga5cacbddd60358c8c91a29c8965b197cd" compoundref="dsproc3_8h" startline="1193">DSPROC_EFILECOPY</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__FILE__UTILS_1ga14a2e8923f7eff01a4b11abdac5584fb" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_move_file</definition>
        <argsstring>(const char *src_file, const char *dest_file)</argsstring>
        <name>dsproc_move_file</name>
        <param>
          <type>const char *</type>
          <declname>src_file</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>dest_file</declname>
        </param>
        <briefdescription>
<para>Move a file. </para>        </briefdescription>
        <detaileddescription>
<para>This function will first attempt to rename the file. If the rename fails because the file is being moved across file systems, it will be copied to the destination file and the source file deleted. MD5 checking will be used if the file needs to be copied across file systems.</para><para>This function will also add a &quot;moving file&quot; message to the log file.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>src_file</parametername>
</parameternamelist>
<parameterdescription>
<para>- full path to the source file </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>dest_file</parametername>
</parameternamelist>
<parameterdescription>
<para>- full path to the destination file</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if the file was moved successfully</para></listitem><listitem><para>0 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1342" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_file_utils.c" bodystart="83" bodyend="95"/>
        <references refid="group__MESSENGER_1ga6d1c985dbdf1f40d7b27801b421c7382">LOG</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__ARMUTILS__FILE__UTILS_1ga8d69e1f2e420ba2c8918f0ad5e0596f9">file_move</references>
        <references refid="group__ARMUTILS__FILE__UTILS_1gadd7844b59089c9c104888f058d417c40">FC_CHECK_MD5</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1gafe0c2e2f6760128f25e1d84d52d2a960" compoundref="dsproc3_8h" startline="1196">DSPROC_EFILEMOVE</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__FILE__UTILS_1ga085c515b2aabe7c4461c389e228e3bb9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>FILE *</type>
        <definition>FILE* dsproc_open_file</definition>
        <argsstring>(const char *file)</argsstring>
        <name>dsproc_open_file</name>
        <param>
          <type>const char *</type>
          <declname>file</declname>
        </param>
        <briefdescription>
<para>Open a file for reading. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>file</parametername>
</parameternamelist>
<parameterdescription>
<para>- full path to the file</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>pointer to the open file</para></listitem><listitem><para>NULL if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1343" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_file_utils.c" bodystart="109" bodyend="130"/>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga550878b8ef3c5f9e84530c0533a97b59" compoundref="dsproc3_8h" startline="1199">DSPROC_EFILEOPEN</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__INGEST__RENAME__RAW_1ga50176865b24039b2b94b7e1b632fae90" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_rename</definition>
        <argsstring>(int ds_id, const char *file_path, const char *file_name, time_t begin_time, time_t end_time)</argsstring>
        <name>dsproc_rename</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>file_path</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>file_name</declname>
        </param>
        <param>
          <type>time_t</type>
          <declname>begin_time</declname>
        </param>
        <param>
          <type>time_t</type>
          <declname>end_time</declname>
        </param>
        <briefdescription>
<para>Rename a data file. </para>        </briefdescription>
        <detaileddescription>
<para>This function will rename a raw data file into the datastream directory using the datastream name and begin_time to give it a fully qualified ARM name.</para><para>The begin_time will be validated using: <verbatim>dsproc_validate_datastream_data_time()
</verbatim></para><para>If the end_time is specified, this function will verify that it is greater than the begin_time and is not in the future. If only one record was found in the raw file, the end_time argument must be set to NULL.</para><para>If the output file exists and has the same MD5 as the input file, the input file will be removed and a warning message will be generated.</para><para>If the output file exists and has a different MD5 than the input file, the rename will fail.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>file_path</parametername>
</parameternamelist>
<parameterdescription>
<para>- path to the directory the file is in </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>file_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the file to rename </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>begin_time</parametername>
</parameternamelist>
<parameterdescription>
<para>- time of the first record in the file </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>end_time</parametername>
</parameternamelist>
<parameterdescription>
<para>- time of the last record in the file</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1358" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_rename.c" bodystart="566" bodyend="581"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__INGEST__RENAME__RAW_1ga4e427c3c9a41ba5f8b1de75f049c1167" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_rename_tv</definition>
        <argsstring>(int ds_id, const char *file_path, const char *file_name, const timeval_t *begin_time, const timeval_t *end_time)</argsstring>
        <name>dsproc_rename_tv</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>file_path</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>file_name</declname>
        </param>
        <param>
          <type>const <ref refid="group__ARMUTILS__TIME__UTILS_1gaeba0d8f51eb0a83c2b01ecf27e0b3260" kindref="member" external="libarmutils.tag">timeval_t</ref> *</type>
          <declname>begin_time</declname>
        </param>
        <param>
          <type>const <ref refid="group__ARMUTILS__TIME__UTILS_1gaeba0d8f51eb0a83c2b01ecf27e0b3260" kindref="member" external="libarmutils.tag">timeval_t</ref> *</type>
          <declname>end_time</declname>
        </param>
        <briefdescription>
<para>Rename a data file. </para>        </briefdescription>
        <detaileddescription>
<para>This function is the same as <ref refid="group__DSPROC__INGEST__RENAME__RAW_1ga50176865b24039b2b94b7e1b632fae90" kindref="member">dsproc_rename()</ref> except that it takes timevals for the begin and end times.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>file_path</parametername>
</parameternamelist>
<parameterdescription>
<para>- path to the directory the file is in </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>file_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the file to rename </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>begin_time</parametername>
</parameternamelist>
<parameterdescription>
<para>- time of the first record in the file </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>end_time</parametername>
</parameternamelist>
<parameterdescription>
<para>- time of the last record in the file</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1365" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_rename.c" bodystart="602" bodyend="611"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__INGEST__RENAME__RAW_1ga53109c1fbd8cf18607ab2e0428f0a3a2" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_rename_bad</definition>
        <argsstring>(int ds_id, const char *file_path, const char *file_name, time_t file_time)</argsstring>
        <name>dsproc_rename_bad</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>file_path</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>file_name</declname>
        </param>
        <param>
          <type>time_t</type>
          <declname>file_time</declname>
        </param>
        <briefdescription>
<para>Rename a bad data file. </para>        </briefdescription>
        <detaileddescription>
<para>This function works the same as <ref refid="group__DSPROC__INGEST__RENAME__RAW_1ga50176865b24039b2b94b7e1b632fae90" kindref="member">dsproc_rename()</ref> except that the extension &quot;bad&quot; will be used in the output file name.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>file_path</parametername>
</parameternamelist>
<parameterdescription>
<para>- path to the directory the file is in </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>file_name</parametername>
</parameternamelist>
<parameterdescription>
<para>- name of the file to rename </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>file_time</parametername>
</parameternamelist>
<parameterdescription>
<para>- the time used to rename the file</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para><itemizedlist>
<listitem><para>1 if successful</para></listitem><listitem><para>0 if an error occurred </para></listitem></itemizedlist>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1371" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_rename.c" bodystart="631" bodyend="643"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__INGEST__RENAME__RAW_1ga725a5e14b747b4401949d357331c05a7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_preserve_dots_from_name</definition>
        <argsstring>(int ds_id, const char *file_name)</argsstring>
        <name>dsproc_set_preserve_dots_from_name</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>file_name</declname>
        </param>
        <briefdescription>
<para>Determine the portion of the original file name to preserve. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>file_name</parametername>
</parameternamelist>
<parameterdescription>
<para>name of the raw data file</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if a pattern matching error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1373" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_rename.c" bodystart="657" bodyend="713"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="group__ARMUTILS__REGEX__UTILS_1ga3e7b817331c6f32c97a7d2eb4d69da61">re_compile</references>
        <references refid="group__DSPROC__MESSAGES_1ga4d56e48d35f7598e3cf90c5e42477e45" compoundref="dsproc3_8h" startline="210">DSPROC_ERROR</references>
        <references refid="group__ARMUTILS__REGEX__UTILS_1gab7f3765e213fd673426c8eaeb2699142">re_execute</references>
        <references refid="group__ARMUTILS__REGEX__UTILS_1gab62cc85a43e85d647cb9fc846525718d">re_free</references>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__INGEST__RENAME__RAW_1gac6cefb871da1d413aa09d06bef706357" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_rename_preserve_dots</definition>
        <argsstring>(int ds_id, int preserve_dots)</argsstring>
        <name>dsproc_set_rename_preserve_dots</name>
        <param>
          <type>int</type>
          <declname>ds_id</declname>
        </param>
        <param>
          <type>int</type>
          <declname>preserve_dots</declname>
        </param>
        <briefdescription>
<para>Set the portion of file names to preserve when they are renamed. </para>        </briefdescription>
        <detaileddescription>
<para>This is the number of dots from the end of the file name and specifies the portion of the original file name to preserve when it is renamed.</para><para>Default value set if preserve_dots &lt; 0:</para><para><itemizedlist>
<listitem><para>2 for level &apos;0&apos; datastreams</para></listitem><listitem><para>0 for all other datastreams</para></listitem></itemizedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ds_id</parametername>
</parameternamelist>
<parameterdescription>
<para>- output datastream ID </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>preserve_dots</parametername>
</parameternamelist>
<parameterdescription>
<para>- portion of original file name to preserve </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1375" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_rename.c" bodystart="729" bodyend="742"/>
        <references refid="dsproc_8c_1ac31e07a97dcff93ffa22cc9749a0cc4d" compoundref="dsproc_8c" startline="50">_DSProc</references>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__UTILITIES_1gaeb15d1c5ca84e61fea37af3459ebddd9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_count_csv_delims</definition>
        <argsstring>(const char *strp, char delim)</argsstring>
        <name>dsproc_count_csv_delims</name>
        <param>
          <type>const char *</type>
          <declname>strp</declname>
        </param>
        <param>
          <type>char</type>
          <declname>delim</declname>
        </param>
        <briefdescription>
<para>Count the number of delimiters in a string. </para>        </briefdescription>
        <detaileddescription>
<para>Delimiters inside single or double quoted strings will not be matched.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>strp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the delimited string </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>delim</parametername>
</parameternamelist>
<parameterdescription>
<para>delimiter character</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>nfound</parametername>
</parameternamelist>
<parameterdescription>
<para>number of delimiters found. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1385" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="1516" bodyend="1529"/>
        <references refid="group__DSPROC__CSV__UTILITIES_1ga8ef3bf82a2b92fb4644c4032f82b26fb" compoundref="dsproc__csv__parser_8c" startline="1575" endline="1585">dsproc_skip_csv_whitespace</references>
        <references refid="group__DSPROC__CSV__UTILITIES_1gaaf69e4ace9b6f76769e3e7f86e5af6fa" compoundref="dsproc__csv__parser_8c" startline="1542" endline="1562">dsproc_find_csv_delim</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__UTILITIES_1gaaf69e4ace9b6f76769e3e7f86e5af6fa" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>char *</type>
        <definition>char* dsproc_find_csv_delim</definition>
        <argsstring>(const char *strp, char delim)</argsstring>
        <name>dsproc_find_csv_delim</name>
        <param>
          <type>const char *</type>
          <declname>strp</declname>
        </param>
        <param>
          <type>char</type>
          <declname>delim</declname>
        </param>
        <briefdescription>
<para>Find the next delimiter in a string. </para>        </briefdescription>
        <detaileddescription>
<para>Delimiters inside single or double quoted strings will not be matched.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>strp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the string </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>delim</parametername>
</parameternamelist>
<parameterdescription>
<para>delimiter to search for</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>strp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the next delimiter in the string </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>NULL</parametername>
</parameternamelist>
<parameterdescription>
<para>if not found </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1386" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="1542" bodyend="1562"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__UTILITIES_1ga8ef3bf82a2b92fb4644c4032f82b26fb" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>char *</type>
        <definition>char* dsproc_skip_csv_whitespace</definition>
        <argsstring>(const char *strp, char delim)</argsstring>
        <name>dsproc_skip_csv_whitespace</name>
        <param>
          <type>const char *</type>
          <declname>strp</declname>
        </param>
        <param>
          <type>char</type>
          <declname>delim</declname>
        </param>
        <briefdescription>
<para>Skip white-space characters that do not match the delimiter. </para>        </briefdescription>
        <detaileddescription>
<para>If a delimiter is specified, it will not be treated as a white-space character unless it is a normal space &apos; &apos;.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>strp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the first character in the string </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>delim</parametername>
</parameternamelist>
<parameterdescription>
<para>delimiter character</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>strp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the next non white-space character </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1387" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="1575" bodyend="1585"/>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__UTILITIES_1gaee23cbd2ea0c54ca3562572b661c80da" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_split_csv_string</definition>
        <argsstring>(char *strp, char delim, int length, char **list)</argsstring>
        <name>dsproc_split_csv_string</name>
        <param>
          <type>char *</type>
          <declname>strp</declname>
        </param>
        <param>
          <type>char</type>
          <declname>delim</declname>
        </param>
        <param>
          <type>int</type>
          <declname>length</declname>
        </param>
        <param>
          <type>char **</type>
          <declname>list</declname>
        </param>
        <briefdescription>
<para>Split a delimited string into list of strings. </para>        </briefdescription>
        <detaileddescription>
<para>The pointers in the output list point to the substrings in the input string and have been null terminated. All leading and trailing spaces, and surrounding quotes have also been removed from the substrings.</para><para>The pointers in the output list will only be valid as long as the memory used by the input string is not altered or freed.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>strp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the delimited string </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>delim</parametername>
</parameternamelist>
<parameterdescription>
<para>delimiter character </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>length</parametername>
</parameternamelist>
<parameterdescription>
<para>length of the output list </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>list</parametername>
</parameternamelist>
<parameterdescription>
<para>output: pointers to the substrings in the input string.</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>nfound</parametername>
</parameternamelist>
<parameterdescription>
<para>number of substrings returned in the output list, or the number that would have beed returned if the output list had been big enough. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1388" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="1606" bodyend="1681"/>
        <references refid="group__DSPROC__CSV__UTILITIES_1ga8ef3bf82a2b92fb4644c4032f82b26fb" compoundref="dsproc__csv__parser_8c" startline="1575" endline="1585">dsproc_skip_csv_whitespace</references>
        <references refid="group__DSPROC__CSV__UTILITIES_1gaaf69e4ace9b6f76769e3e7f86e5af6fa" compoundref="dsproc__csv__parser_8c" startline="1542" endline="1562">dsproc_find_csv_delim</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1gad06939807c36f7507acc138840042237" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_free_csv_parser</definition>
        <argsstring>(CSVParser *csv)</argsstring>
        <name>dsproc_free_csv_parser</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <briefdescription>
<para>Free all memory used by a <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1448" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="517" bodyend="575"/>
        <references refid="structCSVParser_1af01daaa997db9798eb0d766678fa7b74" compoundref="dsproc3_8h" startline="1404">CSVParser::file_name</references>
        <references refid="structCSVParser_1aacb5e401cc8b200bcf5a5a3e7e3b67c5" compoundref="dsproc3_8h" startline="1403">CSVParser::file_path</references>
        <references refid="structCSVParser_1a1faa3bb7bdd7e546e1668648fac7ffb9" compoundref="dsproc3_8h" startline="1406">CSVParser::file_data</references>
        <references refid="structCSVParser_1a48d0a21bb761d2b7ba46d7ae14a0ada6" compoundref="dsproc3_8h" startline="1408">CSVParser::lines</references>
        <references refid="structCSVParser_1a2254416ecfc54321c8dc3f9b9a1cfdbc" compoundref="dsproc3_8h" startline="1412">CSVParser::headers</references>
        <references refid="structCSVParser_1afde3c8a549642c5b6dc4cd7bfcdf2fe4" compoundref="dsproc3_8h" startline="1418">CSVParser::free_header</references>
        <references refid="structCSVParser_1a24574de37adb1e6d6c79cad16097f8ee" compoundref="dsproc3_8h" startline="1423">CSVParser::nfields_alloced</references>
        <references refid="structCSVParser_1af6e8132a1e60709ad4b370ea47a483ba" compoundref="dsproc3_8h" startline="1417">CSVParser::header_data</references>
        <references refid="structCSVParser_1ab181a4000901501ec81aba28494ba8be" compoundref="dsproc3_8h" startline="1419">CSVParser::rec_buff</references>
        <references refid="structCSVParser_1a8c0820a5397bc3739e111c83dbf9c1ec" compoundref="dsproc3_8h" startline="1413">CSVParser::values</references>
        <references refid="structCSVParser_1a5192919f8820f6dbc97a2b2817ddd61f" compoundref="dsproc3_8h" startline="1430">CSVParser::ft_patterns</references>
        <references refid="group__ARMUTILS__REGEX__TIME_1gade01c295930d99e1efe6aa259e85ea58">retime_list_free</references>
        <references refid="structCSVParser_1a281f8e36cf1c8f7153f49933485a0cee" compoundref="dsproc3_8h" startline="1431">CSVParser::ft_result</references>
        <references refid="structCSVParser_1ab8c90ce0b538e59ae8d288de05ae4415" compoundref="dsproc3_8h" startline="1434">CSVParser::tc_names</references>
        <references refid="structCSVParser_1a1f29c3b2810d0656f1cacfd38c84b3ed" compoundref="dsproc3_8h" startline="1433">CSVParser::ntc</references>
        <references refid="structCSVParser_1ab047bfe68b08b3c3345e3eb99cb7f661" compoundref="dsproc3_8h" startline="1435">CSVParser::tc_patterns</references>
        <references refid="structCSVParser_1a70f7ffe9ccc6d8f9a308a9e487ea5a10" compoundref="dsproc3_8h" startline="1436">CSVParser::tc_index</references>
        <references refid="structCSVParser_1ad39fb8c1d2178726f50196f64ea0c01c" compoundref="dsproc3_8h" startline="1438">CSVParser::tvs</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1ga4ed539f97f2df23b1334e4a00e80d96d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>char **</type>
        <definition>char** dsproc_get_csv_column_headers</definition>
        <argsstring>(CSVParser *csv, int *nfields)</argsstring>
        <name>dsproc_get_csv_column_headers</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <param>
          <type>int *</type>
          <declname>nfields</declname>
        </param>
        <briefdescription>
<para>Get the array of string pointers to the column headers in a CSV file. </para>        </briefdescription>
        <detaileddescription>
<para>The memory used by the returned array of strings belongs to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure and must not be freed by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>nfields</parametername>
</parameternamelist>
<parameterdescription>
<para>output: number of header fields.</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>headers</parametername>
</parameternamelist>
<parameterdescription>
<para>array of string pointers to the column headers </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>NULL</parametername>
</parameternamelist>
<parameterdescription>
<para>if the column headers have not been parsed </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1450" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="674" bodyend="679"/>
        <references refid="structCSVParser_1aaf4e666a40dcc7574c32e0c0ce3f50ee" compoundref="dsproc3_8h" startline="1414">CSVParser::nfields</references>
        <references refid="structCSVParser_1a2254416ecfc54321c8dc3f9b9a1cfdbc" compoundref="dsproc3_8h" startline="1412">CSVParser::headers</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1ga50a1f9a854f0a0c6cf79977bd2af3fee" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>char **</type>
        <definition>char** dsproc_get_csv_field_strvals</definition>
        <argsstring>(CSVParser *csv, const char *name)</argsstring>
        <name>dsproc_get_csv_field_strvals</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Get the array of string pointers for a field in a CSV file. </para>        </briefdescription>
        <detaileddescription>
<para>The memory used by the returned array of strings belongs to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure and must not be freed by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>column name as specified in the header.</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>vals</parametername>
</parameternamelist>
<parameterdescription>
<para>array of string pointers to the column values </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>NULL</parametername>
</parameternamelist>
<parameterdescription>
<para>if the column name was not found </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1451" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="693" bodyend="705"/>
        <references refid="structCSVParser_1aaf4e666a40dcc7574c32e0c0ce3f50ee" compoundref="dsproc3_8h" startline="1414">CSVParser::nfields</references>
        <references refid="structCSVParser_1a2254416ecfc54321c8dc3f9b9a1cfdbc" compoundref="dsproc3_8h" startline="1412">CSVParser::headers</references>
        <references refid="structCSVParser_1a8c0820a5397bc3739e111c83dbf9c1ec" compoundref="dsproc3_8h" startline="1413">CSVParser::values</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1gae44c9bf8b94fe6306f2e58dba47d09bf" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="group__ARMUTILS__TIME__UTILS_1gaeba0d8f51eb0a83c2b01ecf27e0b3260" kindref="member" external="libarmutils.tag">timeval_t</ref> *</type>
        <definition>timeval_t* dsproc_get_csv_timevals</definition>
        <argsstring>(CSVParser *csv, int *nrecs)</argsstring>
        <name>dsproc_get_csv_timevals</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <param>
          <type>int *</type>
          <declname>nrecs</declname>
        </param>
        <briefdescription>
<para>Get the array of record times after parsing a CSV file. </para>        </briefdescription>
        <detaileddescription>
<para>The memory used by the returned array of timevals belongs to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure and must not be freed by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>nrecs</parametername>
</parameternamelist>
<parameterdescription>
<para>output: the number of records found in the file</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>times</parametername>
</parameternamelist>
<parameterdescription>
<para>array of timevals in seconds since 1970 </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>NULL</parametername>
</parameternamelist>
<parameterdescription>
<para>if no records have been parsed from the file </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1452" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="719" bodyend="724"/>
        <references refid="structCSVParser_1a801f2d3bb3eb21f0a7bebf0c4ac5acc5" compoundref="dsproc3_8h" startline="1415">CSVParser::nrecs</references>
        <references refid="structCSVParser_1ad39fb8c1d2178726f50196f64ea0c01c" compoundref="dsproc3_8h" startline="1438">CSVParser::tvs</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1ga72afa9a27ecc6d3e38856102fee53681" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>time_t</type>
        <definition>time_t dsproc_get_csv_file_name_time</definition>
        <argsstring>(CSVParser *csv, const char *name, RETimeRes *result)</argsstring>
        <name>dsproc_get_csv_file_name_time</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type><ref refid="structRETimeRes" kindref="compound" external="libarmutils.tag">RETimeRes</ref> *</type>
          <declname>result</declname>
        </param>
        <briefdescription>
<para>Get the time from a CSV file name. </para>        </briefdescription>
        <detaileddescription>
<para>This function must be called after the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure has been initialized using the <ref refid="group__DSPROC__CSV__FILE__PARSING_1ga666d233190629839b32c81e3be2306a8" kindref="member">dsproc_init_csv_parser()</ref> function and the file name time string patterns have been set using <ref refid="group__DSPROC__CSV__FILE__PARSING_1ga5c7c01614957bb90a69d73c959d5d672" kindref="member">dsproc_set_csv_file_time_patterns()</ref>.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>CSV file name </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>result</parametername>
</parameternamelist>
<parameterdescription>
<para>if not NULL the complete result from the pattern match will be stored in this <ref refid="structRETimeRes" kindref="compound" external="libarmutils.tag">RETimeRes</ref> structure.</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>time</parametername>
</parameternamelist>
<parameterdescription>
<para>time in seconds since 1970 </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>-1</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1457" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="595" bodyend="660"/>
        <references refid="structCSVParser_1a5192919f8820f6dbc97a2b2817ddd61f" compoundref="dsproc3_8h" startline="1430">CSVParser::ft_patterns</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga578f7f64ebf563e305ca5ee235431876" compoundref="dsproc3_8h" startline="1325">DSPROC_ECSVPARSER</references>
        <references refid="group__ARMUTILS__REGEX__TIME_1gad52b79f6305a175aa90dd2ff18d8408a">retime_list_execute</references>
        <references refid="structRETimeList_1a654420f2d9f779b0391db600adb6ad51">RETimeList::retimes</references>
        <references refid="structRETimeList_1a8d20475a91245021290de92462a027d3">RETimeList::npatterns</references>
        <references refid="structRETime_1a73e12acf918139f9dd868a35a7f8d184">RETime::tspattern</references>
        <references refid="group__ARMUTILS__REGEX__TIME_1ga0ab7a019781c388ed7a191db6869655d">retime_get_secs1970</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1ga668bfe92b91c592ad31edb5c07938e4f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>char *</type>
        <definition>char* dsproc_get_next_csv_line</definition>
        <argsstring>(CSVParser *csv)</argsstring>
        <name>dsproc_get_next_csv_line</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <briefdescription>
<para>Get the next line from the file loaded into the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure. </para>        </briefdescription>
        <detaileddescription>
<para>The memory used by the returned line belongs to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure and must not be freed by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>line</parametername>
</parameternamelist>
<parameterdescription>
<para>the next line in the file loaded into memory </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>NULL</parametername>
</parameternamelist>
<parameterdescription>
<para>if the end of file was reached </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1459" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="737" bodyend="747"/>
        <references refid="structCSVParser_1a3396264df59972ad5b6d1c97dbc3e9af" compoundref="dsproc3_8h" startline="1409">CSVParser::linenum</references>
        <references refid="structCSVParser_1a9f67753783d87dc39bfc206048df5bfb" compoundref="dsproc3_8h" startline="1407">CSVParser::nlines</references>
        <references refid="structCSVParser_1a2d4b81ea918b1043b4b991c5979123d1" compoundref="dsproc3_8h" startline="1410">CSVParser::linep</references>
        <references refid="structCSVParser_1a48d0a21bb761d2b7ba46d7ae14a0ada6" compoundref="dsproc3_8h" startline="1408">CSVParser::lines</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1ga666d233190629839b32c81e3be2306a8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
        <definition>CSVParser* dsproc_init_csv_parser</definition>
        <argsstring>(CSVParser *csv)</argsstring>
        <name>dsproc_init_csv_parser</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <briefdescription>
<para>Initialize a <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the CSV Data structure to initialize, or NULL to create a new <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure.</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>NULL</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1461" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="761" bodyend="813"/>
        <references refid="structCSVParser_1aacb5e401cc8b200bcf5a5a3e7e3b67c5" compoundref="dsproc3_8h" startline="1403">CSVParser::file_path</references>
        <references refid="structCSVParser_1af01daaa997db9798eb0d766678fa7b74" compoundref="dsproc3_8h" startline="1404">CSVParser::file_name</references>
        <references refid="structCSVParser_1a9f67753783d87dc39bfc206048df5bfb" compoundref="dsproc3_8h" startline="1407">CSVParser::nlines</references>
        <references refid="structCSVParser_1a2d4b81ea918b1043b4b991c5979123d1" compoundref="dsproc3_8h" startline="1410">CSVParser::linep</references>
        <references refid="structCSVParser_1a3396264df59972ad5b6d1c97dbc3e9af" compoundref="dsproc3_8h" startline="1409">CSVParser::linenum</references>
        <references refid="structCSVParser_1aaf4e666a40dcc7574c32e0c0ce3f50ee" compoundref="dsproc3_8h" startline="1414">CSVParser::nfields</references>
        <references refid="structCSVParser_1a801f2d3bb3eb21f0a7bebf0c4ac5acc5" compoundref="dsproc3_8h" startline="1415">CSVParser::nrecs</references>
        <references refid="structCSVParser_1a70f7ffe9ccc6d8f9a308a9e487ea5a10" compoundref="dsproc3_8h" startline="1436">CSVParser::tc_index</references>
        <references refid="structCSVParser_1a240df9b284affcdef7927b4c7377b46a" compoundref="dsproc3_8h" startline="1444">CSVParser::tro_offset</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
        <references refid="structCSVParser_1acbbc6c629ff744f612c1c9301f565919" compoundref="dsproc3_8h" startline="1426">CSVParser::delim</references>
        <references refid="structCSVParser_1a71473e0382127d4ab9a9bdc9133b93ac" compoundref="dsproc3_8h" startline="1427">CSVParser::nlines_guess</references>
        <references refid="structCSVParser_1a9770375ded34547298eb5288e8740471" compoundref="dsproc3_8h" startline="1428">CSVParser::nfields_guess</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1ga926ded3e1f1b5cb1bc4b994f3b006fa7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_load_csv_file</definition>
        <argsstring>(CSVParser *csv, const char *path, const char *name)</argsstring>
        <name>dsproc_load_csv_file</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>path</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Load a CSV data file into a <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure created by <ref refid="group__DSPROC__CSV__FILE__PARSING_1ga666d233190629839b32c81e3be2306a8" kindref="member">dsproc_init_csv_parser()</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>path</parametername>
</parameternamelist>
<parameterdescription>
<para>path to the location of the file </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>the name of the file</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>nlines</parametername>
</parameternamelist>
<parameterdescription>
<para>number of lines read from the file </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>-1</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1462" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="828" bodyend="1004"/>
        <references refid="structCSVParser_1a9f67753783d87dc39bfc206048df5bfb" compoundref="dsproc3_8h" startline="1407">CSVParser::nlines</references>
        <references refid="group__DSPROC__CSV__FILE__PARSING_1ga666d233190629839b32c81e3be2306a8" compoundref="dsproc__csv__parser_8c" startline="761" endline="813">dsproc_init_csv_parser</references>
        <references refid="structCSVParser_1ace13435727d6b4e8be4ced2977e3f7e0" compoundref="dsproc3_8h" startline="1422">CSVParser::nlines_alloced</references>
        <references refid="structCSVParser_1a71473e0382127d4ab9a9bdc9133b93ac" compoundref="dsproc3_8h" startline="1427">CSVParser::nlines_guess</references>
        <references refid="structCSVParser_1a48d0a21bb761d2b7ba46d7ae14a0ada6" compoundref="dsproc3_8h" startline="1408">CSVParser::lines</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="structCSVParser_1af01daaa997db9798eb0d766678fa7b74" compoundref="dsproc3_8h" startline="1404">CSVParser::file_name</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
        <references refid="structCSVParser_1aacb5e401cc8b200bcf5a5a3e7e3b67c5" compoundref="dsproc3_8h" startline="1403">CSVParser::file_path</references>
        <references refid="structCSVParser_1a281f8e36cf1c8f7153f49933485a0cee" compoundref="dsproc3_8h" startline="1431">CSVParser::ft_result</references>
        <references refid="structCSVParser_1ace1aea1baf684a2fcab314089d26b39f" compoundref="dsproc3_8h" startline="1405">CSVParser::file_stats</references>
        <references refid="group__DSPROC__STATUS_1gafb68b3ef2c023d1ebff166055e87ed96" compoundref="dsproc3_8h" startline="1208">DSPROC_EFILESTATS</references>
        <references refid="structCSVParser_1a52a66597ffea34f606fe391e62570172" compoundref="dsproc3_8h" startline="1421">CSVParser::nbytes_alloced</references>
        <references refid="structCSVParser_1a1faa3bb7bdd7e546e1668648fac7ffb9" compoundref="dsproc3_8h" startline="1406">CSVParser::file_data</references>
        <references refid="group__DSPROC__STATUS_1ga550878b8ef3c5f9e84530c0533a97b59" compoundref="dsproc3_8h" startline="1199">DSPROC_EFILEOPEN</references>
        <references refid="group__DSPROC__STATUS_1ga34c8253e4c51d4f9a2de59f44d2807cd" compoundref="dsproc3_8h" startline="1202">DSPROC_EFILEREAD</references>
        <references refid="group__DSPROC__CSV__UTILITIES_1gaaf69e4ace9b6f76769e3e7f86e5af6fa" compoundref="dsproc__csv__parser_8c" startline="1542" endline="1562">dsproc_find_csv_delim</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1gad3c44c74cf4f6566bced8b3a31e5ff33" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_parse_csv_header</definition>
        <argsstring>(CSVParser *csv, const char *linep)</argsstring>
        <name>dsproc_parse_csv_header</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>linep</declname>
        </param>
        <briefdescription>
<para>Parse a header line. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>linep</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the line to parse, or NULL to parse the current line.</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>nfields</parametername>
</parameternamelist>
<parameterdescription>
<para>number of header fields </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>-1</parametername>
</parameternamelist>
<parameterdescription>
<para>if a memory allocation error occurs </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1464" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="1019" bodyend="1108"/>
        <references refid="structCSVParser_1acbbc6c629ff744f612c1c9301f565919" compoundref="dsproc3_8h" startline="1426">CSVParser::delim</references>
        <references refid="structCSVParser_1a3396264df59972ad5b6d1c97dbc3e9af" compoundref="dsproc3_8h" startline="1409">CSVParser::linenum</references>
        <references refid="structCSVParser_1a48d0a21bb761d2b7ba46d7ae14a0ada6" compoundref="dsproc3_8h" startline="1408">CSVParser::lines</references>
        <references refid="group__DSPROC__CSV__UTILITIES_1gaeb15d1c5ca84e61fea37af3459ebddd9" compoundref="dsproc__csv__parser_8c" startline="1516" endline="1529">dsproc_count_csv_delims</references>
        <references refid="structCSVParser_1af6e8132a1e60709ad4b370ea47a483ba" compoundref="dsproc3_8h" startline="1417">CSVParser::header_data</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="structCSVParser_1af01daaa997db9798eb0d766678fa7b74" compoundref="dsproc3_8h" startline="1404">CSVParser::file_name</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
        <references refid="structCSVParser_1a9f67753783d87dc39bfc206048df5bfb" compoundref="dsproc3_8h" startline="1407">CSVParser::nlines</references>
        <references refid="structCSVParser_1a2254416ecfc54321c8dc3f9b9a1cfdbc" compoundref="dsproc3_8h" startline="1412">CSVParser::headers</references>
        <references refid="structCSVParser_1afde3c8a549642c5b6dc4cd7bfcdf2fe4" compoundref="dsproc3_8h" startline="1418">CSVParser::free_header</references>
        <references refid="structCSVParser_1a24574de37adb1e6d6c79cad16097f8ee" compoundref="dsproc3_8h" startline="1423">CSVParser::nfields_alloced</references>
        <references refid="group__DSPROC__CSV__UTILITIES_1gaee23cbd2ea0c54ca3562572b661c80da" compoundref="dsproc__csv__parser_8c" startline="1606" endline="1681">dsproc_split_csv_string</references>
        <references refid="group__DSPROC__STATUS_1ga578f7f64ebf563e305ca5ee235431876" compoundref="dsproc3_8h" startline="1325">DSPROC_ECSVPARSER</references>
        <references refid="structCSVParser_1aaf4e666a40dcc7574c32e0c0ce3f50ee" compoundref="dsproc3_8h" startline="1414">CSVParser::nfields</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1gad6803b3565f03005c23808e4b1f5200a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_parse_csv_record</definition>
        <argsstring>(CSVParser *csv, char *linep, int flags)</argsstring>
        <name>dsproc_parse_csv_record</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <param>
          <type>char *</type>
          <declname>linep</declname>
        </param>
        <param>
          <type>int</type>
          <declname>flags</declname>
        </param>
        <briefdescription>
<para>Parse a record line. </para>        </briefdescription>
        <detaileddescription>
<para>If the number of values found on the current line does not match the number of header fields, a warning message will be generated.</para><para>The records values in the internal <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure point to the substrings in the input string and have been null terminated. All leading and trailing spaces, and surrounding quotes have also been removed from the substrings.</para><para>The input string must not be altered or freed after calling this function until the record values are no longer needed by the calling process.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>linep</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the line to parse, or NULL to parse from the beginning of the current line. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>flags</parametername>
</parameternamelist>
<parameterdescription>
<para>reserved for control flags, set to 0 to maintain backward compatibility with future updates.</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if the record time has an invalid format, or the number of values found on the line does not match the number of header fields </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>-1</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1465" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="1135" bodyend="1207"/>
        <references refid="structCSVParser_1acbbc6c629ff744f612c1c9301f565919" compoundref="dsproc3_8h" startline="1426">CSVParser::delim</references>
        <references refid="structCSVParser_1a3396264df59972ad5b6d1c97dbc3e9af" compoundref="dsproc3_8h" startline="1409">CSVParser::linenum</references>
        <references refid="structCSVParser_1a48d0a21bb761d2b7ba46d7ae14a0ada6" compoundref="dsproc3_8h" startline="1408">CSVParser::lines</references>
        <references refid="structCSVParser_1a801f2d3bb3eb21f0a7bebf0c4ac5acc5" compoundref="dsproc3_8h" startline="1415">CSVParser::nrecs</references>
        <references refid="structCSVParser_1a30c864b4b158b32cae9fef770a5aed65" compoundref="dsproc3_8h" startline="1424">CSVParser::nrecs_alloced</references>
        <references refid="structCSVParser_1aaf4e666a40dcc7574c32e0c0ce3f50ee" compoundref="dsproc3_8h" startline="1414">CSVParser::nfields</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="structCSVParser_1af01daaa997db9798eb0d766678fa7b74" compoundref="dsproc3_8h" startline="1404">CSVParser::file_name</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
        <references refid="group__DSPROC__CSV__UTILITIES_1gaee23cbd2ea0c54ca3562572b661c80da" compoundref="dsproc__csv__parser_8c" startline="1606" endline="1681">dsproc_split_csv_string</references>
        <references refid="structCSVParser_1ab181a4000901501ec81aba28494ba8be" compoundref="dsproc3_8h" startline="1419">CSVParser::rec_buff</references>
        <references refid="group__DSPROC__MESSAGES_1ga878551804aeabdc8b8a75d9271bc92f7" compoundref="dsproc3_8h" startline="260">DSPROC_BAD_RECORD_WARNING</references>
        <references refid="structCSVParser_1a8c0820a5397bc3739e111c83dbf9c1ec" compoundref="dsproc3_8h" startline="1413">CSVParser::values</references>
        <references refid="structCSVParser_1a1f29c3b2810d0656f1cacfd38c84b3ed" compoundref="dsproc3_8h" startline="1433">CSVParser::ntc</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1ga620350d25fcc7bfa39df18135f8864c3" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_print_csv</definition>
        <argsstring>(FILE *fp, CSVParser *csv)</argsstring>
        <name>dsproc_print_csv</name>
        <param>
          <type>FILE *</type>
          <declname>fp</declname>
        </param>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <briefdescription>
<para>Print CSV header and records. </para>        </briefdescription>
        <detaileddescription>
<para>If the number of values found on the current line does not match the number of header fields, a warning message will be generated.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>fp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the output stream </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if no data was found in the CSV table </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>-1</parametername>
</parameternamelist>
<parameterdescription>
<para>if a write error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1467" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="1700" bodyend="1713"/>
        <references refid="group__DSPROC__CSV__FILE__PARSING_1gae9cffb5e238d64b417fd6a765fd8282b" compoundref="dsproc__csv__parser_8c" startline="1728" endline="1755">dsproc_print_csv_header</references>
        <references refid="group__DSPROC__CSV__FILE__PARSING_1ga9f8a4c793ac85de8290654bf67328c7f" compoundref="dsproc__csv__parser_8c" startline="1770" endline="1806">dsproc_print_csv_record</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1gae9cffb5e238d64b417fd6a765fd8282b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_print_csv_header</definition>
        <argsstring>(FILE *fp, CSVParser *csv)</argsstring>
        <name>dsproc_print_csv_header</name>
        <param>
          <type>FILE *</type>
          <declname>fp</declname>
        </param>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <briefdescription>
<para>Print CSV header data. </para>        </briefdescription>
        <detaileddescription>
<para>If the number of values found on the current line does not match the number of header fields, a warning message will be generated.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>fp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the output stream </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if no header was found in the CSV table </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>-1</parametername>
</parameternamelist>
<parameterdescription>
<para>if a write error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1468" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="1728" bodyend="1755"/>
        <references refid="structCSVParser_1acbbc6c629ff744f612c1c9301f565919" compoundref="dsproc3_8h" startline="1426">CSVParser::delim</references>
        <references refid="structCSVParser_1aaf4e666a40dcc7574c32e0c0ce3f50ee" compoundref="dsproc3_8h" startline="1414">CSVParser::nfields</references>
        <references refid="structCSVParser_1a2254416ecfc54321c8dc3f9b9a1cfdbc" compoundref="dsproc3_8h" startline="1412">CSVParser::headers</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1gab7c229a26ecf6891b5b6a14d2a402cea" compoundref="dsproc3_8h" startline="1205">DSPROC_EFILEWRITE</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1ga9f8a4c793ac85de8290654bf67328c7f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_print_csv_record</definition>
        <argsstring>(FILE *fp, CSVParser *csv)</argsstring>
        <name>dsproc_print_csv_record</name>
        <param>
          <type>FILE *</type>
          <declname>fp</declname>
        </param>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <briefdescription>
<para>Print CSV record data. </para>        </briefdescription>
        <detaileddescription>
<para>If the number of values found on the current line does not match the number of header fields, a warning message will be generated.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>fp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the output stream </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if no data was found in the CSV table </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>-1</parametername>
</parameternamelist>
<parameterdescription>
<para>if a write error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1469" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="1770" bodyend="1806"/>
        <references refid="structCSVParser_1acbbc6c629ff744f612c1c9301f565919" compoundref="dsproc3_8h" startline="1426">CSVParser::delim</references>
        <references refid="structCSVParser_1aaf4e666a40dcc7574c32e0c0ce3f50ee" compoundref="dsproc3_8h" startline="1414">CSVParser::nfields</references>
        <references refid="structCSVParser_1a801f2d3bb3eb21f0a7bebf0c4ac5acc5" compoundref="dsproc3_8h" startline="1415">CSVParser::nrecs</references>
        <references refid="structCSVParser_1a8c0820a5397bc3739e111c83dbf9c1ec" compoundref="dsproc3_8h" startline="1413">CSVParser::values</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1gab7c229a26ecf6891b5b6a14d2a402cea" compoundref="dsproc3_8h" startline="1205">DSPROC_EFILEWRITE</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1ga3329cb09fdadbcc1b98a6023dc5d28db" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_csv_column_name</definition>
        <argsstring>(CSVParser *csv, int index, const char *name)</argsstring>
        <name>dsproc_set_csv_column_name</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <param>
          <type>int</type>
          <declname>index</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Set or change a column name in the header. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>index</parametername>
</parameternamelist>
<parameterdescription>
<para>column index </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>column name</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if a memory allocation error occurs </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1474" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="1234" bodyend="1283"/>
        <references refid="structCSVParser_1a9770375ded34547298eb5288e8740471" compoundref="dsproc3_8h" startline="1428">CSVParser::nfields_guess</references>
        <references refid="structCSVParser_1a9f67753783d87dc39bfc206048df5bfb" compoundref="dsproc3_8h" startline="1407">CSVParser::nlines</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="structCSVParser_1af01daaa997db9798eb0d766678fa7b74" compoundref="dsproc3_8h" startline="1404">CSVParser::file_name</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
        <references refid="structCSVParser_1a2254416ecfc54321c8dc3f9b9a1cfdbc" compoundref="dsproc3_8h" startline="1412">CSVParser::headers</references>
        <references refid="structCSVParser_1afde3c8a549642c5b6dc4cd7bfcdf2fe4" compoundref="dsproc3_8h" startline="1418">CSVParser::free_header</references>
        <references refid="structCSVParser_1aaf4e666a40dcc7574c32e0c0ce3f50ee" compoundref="dsproc3_8h" startline="1414">CSVParser::nfields</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1gac97ef9a13db0c86088dbb1a801b3afe0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_csv_delimiter</definition>
        <argsstring>(CSVParser *csv, char delim)</argsstring>
        <name>dsproc_set_csv_delimiter</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <param>
          <type>char</type>
          <declname>delim</declname>
        </param>
        <briefdescription>
<para>Set the column delimiter. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>delim</parametername>
</parameternamelist>
<parameterdescription>
<para>column delimiter </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1478" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="1216" bodyend="1219"/>
        <references refid="structCSVParser_1acbbc6c629ff744f612c1c9301f565919" compoundref="dsproc3_8h" startline="1426">CSVParser::delim</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1ga379a78e98461f2af243544616e40e36e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_csv_base_time</definition>
        <argsstring>(CSVParser *csv, time_t base_time)</argsstring>
        <name>dsproc_set_csv_base_time</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <param>
          <type>time_t</type>
          <declname>base_time</declname>
        </param>
        <briefdescription>
<para>Set the base time to use for record times. </para>        </briefdescription>
        <detaileddescription>
<para>This option is used when the records times are relative to a base time.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>base_time</parametername>
</parameternamelist>
<parameterdescription>
<para>base time in seconds since 1970</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1482" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="1297" bodyend="1313"/>
        <references refid="structCSVParser_1af21aa178d603bc057a78aaea04be7b3d" compoundref="dsproc3_8h" startline="1441">CSVParser::base_tm</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga578f7f64ebf563e305ca5ee235431876" compoundref="dsproc3_8h" startline="1325">DSPROC_ECSVPARSER</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1ga5c7c01614957bb90a69d73c959d5d672" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_csv_file_time_patterns</definition>
        <argsstring>(CSVParser *csv, int npatterns, const char **patterns)</argsstring>
        <name>dsproc_set_csv_file_time_patterns</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <param>
          <type>int</type>
          <declname>npatterns</declname>
        </param>
        <param>
          <type>const char **</type>
          <declname>patterns</declname>
        </param>
        <briefdescription>
<para>Specify the pattern to use to parse the date/time from the file name. </para>        </briefdescription>
        <detaileddescription>
<para>The time string patterns can containing a mixture of regex and time format codes similar to the strptime function. The time format codes recognized by this function begin with a % and are followed by one of the following characters:</para><para><itemizedlist>
<listitem><para>&apos;C&apos; century number (year/100) as a 2-digit integer</para></listitem><listitem><para>&apos;d&apos; day number in the month (1-31).</para></listitem><listitem><para>&apos;e&apos; day number in the month (1-31).</para></listitem><listitem><para>&apos;h&apos; hour * 100 + minute (0-2359)</para></listitem><listitem><para>&apos;H&apos; hour (0-23)</para></listitem><listitem><para>&apos;j&apos; day number in the year (1-366).</para></listitem><listitem><para>&apos;m&apos; month number (1-12)</para></listitem><listitem><para>&apos;M&apos; minute (0-59)</para></listitem><listitem><para>&apos;n&apos; arbitrary whitespace</para></listitem><listitem><para>&apos;o&apos; time offset in seconds</para></listitem><listitem><para>&apos;s&apos; seconds since Epoch, 1970-01-01 00:00:00 +0000 (UTC)</para></listitem><listitem><para>&apos;S&apos; second (0-60; 60 may occur for leap seconds)</para></listitem><listitem><para>&apos;t&apos; arbitrary whitespace</para></listitem><listitem><para>&apos;y&apos; year within century (0-99)</para></listitem><listitem><para>&apos;Y&apos; year with century as a 4-digit integer</para></listitem><listitem><para>&apos;&apos; a literal &quot;%&quot; character</para></listitem></itemizedlist>
</para><para>An optional 0 character can be used between the % and format code to specify that the number must be zero padded. For example, &apos;%0d&apos; specifies that the day range is 01 to 31.</para><para>See the regex(7) man page for the descriptions of the regex patterns.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>npatterns</parametername>
</parameternamelist>
<parameterdescription>
<para>number of possible patterns to check </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>patterns</parametername>
</parameternamelist>
<parameterdescription>
<para>list of possible time string patterns</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1487" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="1355" bodyend="1377"/>
        <references refid="structCSVParser_1a5192919f8820f6dbc97a2b2817ddd61f" compoundref="dsproc3_8h" startline="1430">CSVParser::ft_patterns</references>
        <references refid="group__ARMUTILS__REGEX__TIME_1gade01c295930d99e1efe6aa259e85ea58">retime_list_free</references>
        <references refid="group__ARMUTILS__REGEX__TIME_1ga608a791c2c5d3b0e71767810405d8bed">retime_list_compile</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga578f7f64ebf563e305ca5ee235431876" compoundref="dsproc3_8h" startline="1325">DSPROC_ECSVPARSER</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1ga7dfc5ea1948261d1ddf488eb58bf9a39" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_set_csv_time_offset</definition>
        <argsstring>(CSVParser *csv, time_t time_offset)</argsstring>
        <name>dsproc_set_csv_time_offset</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <param>
          <type>time_t</type>
          <declname>time_offset</declname>
        </param>
        <briefdescription>
<para>Set the time offset to apply to record times. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>time_offset</parametername>
</parameternamelist>
<parameterdescription>
<para>base time in seconds since 1970 </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1491" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="1385" bodyend="1388"/>
        <references refid="structCSVParser_1a187ae1de6c978521c262ed95158fa5f5" compoundref="dsproc3_8h" startline="1440">CSVParser::time_offset</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__FILE__PARSING_1ga7f514306d4bf10f16bfe3a8c521cda21" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_set_csv_time_patterns</definition>
        <argsstring>(CSVParser *csv, const char *name, int npatterns, const char **patterns)</argsstring>
        <name>dsproc_set_csv_time_patterns</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>int</type>
          <declname>npatterns</declname>
        </param>
        <param>
          <type>const char **</type>
          <declname>patterns</declname>
        </param>
        <briefdescription>
<para>Specify the pattern to use to parse a date/time column. </para>        </briefdescription>
        <detaileddescription>
<para>The time string patterns can containing a mixture of regex and time format codes similar to the strptime function. The time format codes recognized by this function begin with a % and are followed by one of the following characters:</para><para><itemizedlist>
<listitem><para>&apos;C&apos; century number (year/100) as a 2-digit integer</para></listitem><listitem><para>&apos;d&apos; day number in the month (1-31).</para></listitem><listitem><para>&apos;e&apos; day number in the month (1-31).</para></listitem><listitem><para>&apos;h&apos; hour * 100 + minute (0-2359)</para></listitem><listitem><para>&apos;H&apos; hour (0-23)</para></listitem><listitem><para>&apos;j&apos; day number in the year (1-366).</para></listitem><listitem><para>&apos;m&apos; month number (1-12)</para></listitem><listitem><para>&apos;M&apos; minute (0-59)</para></listitem><listitem><para>&apos;n&apos; arbitrary whitespace</para></listitem><listitem><para>&apos;s&apos; seconds since Epoch, 1970-01-01 00:00:00 +0000 (UTC)</para></listitem><listitem><para>&apos;S&apos; second (0-60; 60 may occur for leap seconds)</para></listitem><listitem><para>&apos;t&apos; arbitrary whitespace</para></listitem><listitem><para>&apos;y&apos; year within century (0-99)</para></listitem><listitem><para>&apos;Y&apos; year with century as a 4-digit integer</para></listitem><listitem><para>&apos;&apos; a literal &quot;%&quot; character</para></listitem></itemizedlist>
</para><para>An optional 0 character can be used between the % and format code to specify that the number must be zero padded. For example, &apos;%0d&apos; specifies that the day range is 01 to 31.</para><para>See the regex(7) man page for the descriptions of the regex patterns.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>name of the time column </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>npatterns</parametername>
</parameternamelist>
<parameterdescription>
<para>number of possible patterns to check </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>patterns</parametername>
</parameternamelist>
<parameterdescription>
<para>list of possible time string patterns</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1497" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_parser.c" bodystart="1430" bodyend="1500"/>
        <references refid="structCSVParser_1a1f29c3b2810d0656f1cacfd38c84b3ed" compoundref="dsproc3_8h" startline="1433">CSVParser::ntc</references>
        <references refid="structCSVParser_1a70f7ffe9ccc6d8f9a308a9e487ea5a10" compoundref="dsproc3_8h" startline="1436">CSVParser::tc_index</references>
        <references refid="structCSVParser_1ab8c90ce0b538e59ae8d288de05ae4415" compoundref="dsproc3_8h" startline="1434">CSVParser::tc_names</references>
        <references refid="structCSVParser_1ab047bfe68b08b3c3345e3eb99cb7f661" compoundref="dsproc3_8h" startline="1435">CSVParser::tc_patterns</references>
        <references refid="group__ARMUTILS__REGEX__TIME_1gade01c295930d99e1efe6aa259e85ea58">retime_list_free</references>
        <references refid="group__ARMUTILS__REGEX__TIME_1ga608a791c2c5d3b0e71767810405d8bed">retime_list_compile</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV2CDS_1gad339874ef4e4de02bec149dd2b774e7d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_map_csv_to_cds</definition>
        <argsstring>(CSVParser *csv, int csv_start, int csv_count, CSV2CDSMap *map, CDSGroup *cds, int cds_start, int flags)</argsstring>
        <name>dsproc_map_csv_to_cds</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <param>
          <type>int</type>
          <declname>csv_start</declname>
        </param>
        <param>
          <type>int</type>
          <declname>csv_count</declname>
        </param>
        <param>
          <type><ref refid="structCSV2CDSMap" kindref="compound">CSV2CDSMap</ref> *</type>
          <declname>map</declname>
        </param>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>cds</declname>
        </param>
        <param>
          <type>int</type>
          <declname>cds_start</declname>
        </param>
        <param>
          <type>int</type>
          <declname>flags</declname>
        </param>
        <briefdescription>
<para>Map <ref refid="structCSVParser" kindref="compound">CSVParser</ref> data to variables in a <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref>. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>csv_start</parametername>
</parameternamelist>
<parameterdescription>
<para>index of the start record in the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>csv_count</parametername>
</parameternamelist>
<parameterdescription>
<para>number of records to map (0 for all) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>map</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the CSV2CDS Map structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cds</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cds_start</parametername>
</parameternamelist>
<parameterdescription>
<para>index of the start record in the <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>flags</parametername>
</parameternamelist>
<parameterdescription>
<para>control flags</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1554" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv2cds.c" bodystart="89" bodyend="129"/>
        <references refid="structCSVParser_1a801f2d3bb3eb21f0a7bebf0c4ac5acc5" compoundref="dsproc3_8h" startline="1415">CSVParser::nrecs</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
        <references refid="group__DSPROC__CSV2CDS_1gaecc30e8030f329d767f8483fc18c08a7" compoundref="dsproc__csv2cds_8c" startline="241" endline="618">dsproc_map_csv_to_cds_by_index</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV2CDS_1gaecc30e8030f329d767f8483fc18c08a7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_map_csv_to_cds_by_index</definition>
        <argsstring>(CSVParser *csv, int *csv_indexes, int csv_count, CSV2CDSMap *map, CDSGroup *cds, int cds_start, int flags)</argsstring>
        <name>dsproc_map_csv_to_cds_by_index</name>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <param>
          <type>int *</type>
          <declname>csv_indexes</declname>
        </param>
        <param>
          <type>int</type>
          <declname>csv_count</declname>
        </param>
        <param>
          <type><ref refid="structCSV2CDSMap" kindref="compound">CSV2CDSMap</ref> *</type>
          <declname>map</declname>
        </param>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>cds</declname>
        </param>
        <param>
          <type>int</type>
          <declname>cds_start</declname>
        </param>
        <param>
          <type>int</type>
          <declname>flags</declname>
        </param>
        <briefdescription>
<para>Map <ref refid="structCSVParser" kindref="compound">CSVParser</ref> data to variables in a <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> using CSV record indexes. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>csv_indexes</parametername>
</parameternamelist>
<parameterdescription>
<para>indexes of the CSV records </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>csv_count</parametername>
</parameternamelist>
<parameterdescription>
<para>number of indexes </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>map</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the CSV2CDS Map structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cds</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cds_start</parametername>
</parameternamelist>
<parameterdescription>
<para>index of the start record in the <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>flags</parametername>
</parameternamelist>
<parameterdescription>
<para>control flags</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1563" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv2cds.c" bodystart="241" bodyend="618"/>
        <references refid="group__INTERNAL__DSPROC__CONTROL_1gacbdf1260eff2c7bdf4185d9957042785" compoundref="dsproc_8c" startline="1943" endline="1946">dsproc_get_dynamic_dods_mode</references>
        <references refid="group__MESSENGER_1gaffdb945fbac5ab74c7903296199053d1">DEBUG_LV1</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="structCSVParser_1af01daaa997db9798eb0d766678fa7b74" compoundref="dsproc3_8h" startline="1404">CSVParser::file_name</references>
        <references refid="structCDSGroup_1a09f68acfa7f871b417e7b9e84111aa0b">CDSGroup::name</references>
        <references refid="structCSV2CDSMap_1a419f974f1f3714eef6cc6b50c60f9fdc" compoundref="dsproc3_8h" startline="1525">CSV2CDSMap::csv_name</references>
        <references refid="structCSV2CDSMap_1ab5cc1f1f0113de06a93a1ad5a2296158" compoundref="dsproc3_8h" startline="1528">CSV2CDSMap::cds_name</references>
        <references refid="structCSV2CDSMap_1a594b717e8c5b187e70fcf400ec7dcd8a" compoundref="dsproc3_8h" startline="1526">CSV2CDSMap::csv_units</references>
        <references refid="structCSV2CDSMap_1ad1e3819d6556d30c9c405e8a88916c02" compoundref="dsproc3_8h" startline="1527">CSV2CDSMap::csv_missings</references>
        <references refid="structCSV2CDSMap_1a380107fd0114851b5314d14333d6f9e7" compoundref="dsproc3_8h" startline="1531">CSV2CDSMap::str_map</references>
        <references refid="structCSV2CDSMap_1ad793c042459a4cf40e6e1fb93d386171" compoundref="dsproc3_8h" startline="1534">CSV2CDSMap::str_to_dbl</references>
        <references refid="structCSV2CDSMap_1aa02bfea2fbce6534df1f7b7233deee0b" compoundref="dsproc3_8h" startline="1537">CSV2CDSMap::set_data</references>
        <references refid="group__DSPROC__CSV__FILE__PARSING_1ga50a1f9a854f0a0c6cf79977bd2af3fee" compoundref="dsproc__csv__parser_8c" startline="693" endline="705">dsproc_get_csv_field_strvals</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1gabf8a13e4ec821b660a6fe9adc438246e" compoundref="dsproc3_8h" startline="1331">DSPROC_ECSV2CDS</references>
        <references refid="group__CDS__VARS_1gacdefa1f21e178776cd8d3a7a7c704e7c">cds_get_var</references>
        <references refid="group__CDS__DIMS_1gac7708a2ede68b01310a7881757a409ca">cds_get_dim</references>
        <references refid="group__CDS__DIMS_1gaf4dd688adb9488307fdd1e03409fff4f">cds_define_dim</references>
        <references refid="group__CDSObject_1gad6d5f86f7c842c2e9fc594fe3cfed2bb">cds_get_object_path</references>
        <references refid="group__CDS__VARS_1ga8c180b95e8b39b2c131c0894cd5a113b">cds_define_var</references>
        <references refid="group__CDS__DATA__TYPES_1ggaf9b792da04e0b823868cf48a01503f0ba3fea059cb18e9e138201e3945c960564">CDS_DOUBLE</references>
        <references refid="structCDSDim_1a8288e3efe2ccd4fd245db6cfd3af9022">CDSDim::name</references>
        <references refid="group__CDS__DATA__TYPES_1ggaf9b792da04e0b823868cf48a01503f0ba2ed25375c1930b0ff899652128fb62be">CDS_FLOAT</references>
        <references refid="group__CDS__ATTS_1ga7b36c8316148acb19b4cc7e5ebeecf3e">cds_define_att_text</references>
        <references refid="group__CDS__ATTS_1gaf27b41b4756715ec7f4f2bf55d8f04ae">cds_define_att</references>
        <references refid="structCDSVar_1ae42924a7181b190ecb94849cbb35af2d">CDSVar::sample_count</references>
        <references refid="group__DSPROC__CSV2CDS_1ga3050cdd90bca8880d5f7ab53445c7970" compoundref="dsproc3_8h" startline="1508">CSV_OVERWRITE</references>
        <references refid="group__MESSENGER_1ga1f466faf63497e92801d7b44e4e8bdd4">DEBUG_LV2</references>
        <references refid="group__CDS__VAR__DATA_1ga910d84c6c33f16fc48f731a4736ebc65">cds_get_var_units</references>
        <references refid="group__CDS__CORE__UNITS_1ga01a837dd7a8338198cdf9fec9b5a6d20">cds_get_unit_converter</references>
        <references refid="unionCDSData_1aae584b2623f802851a39e5f970535d08">CDSData::vp</references>
        <references refid="group__CDS__VAR__DATA_1ga5a80293d87729f6d60ba657070c87c92">cds_get_var_missing_values</references>
        <references refid="structCDSVar_1a08baec1f48b5050d16198e3f0ef3f51f">CDSVar::name</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
        <references refid="group__CDS__DATA__TYPES_1ga983c81a23d830dedbe0a49abf2a1a37c">cds_get_default_fill_value</references>
        <references refid="structCDSVar_1a62c8bde11e5ca278495a8abc4fbc1beb">CDSVar::type</references>
        <references refid="group__CDS__VAR__DATA_1ga14c255afce06376efa8bf97c04b6ba97">cds_alloc_var_data</references>
        <references refid="group__CDS__VARS_1ga350b7dcedcfe45df5db7d0e98cfdfbb0">cds_var_sample_size</references>
        <references refid="group__CDS__DATA__TYPES_1gaf87fcd104a858b83acde7c4646210e00">cds_data_type_size</references>
        <references refid="group__CDS__DATA__TYPES_1ggaf9b792da04e0b823868cf48a01503f0ba965c2d26bf80e13cf899fdb0ad4323fa">CDS_CHAR</references>
        <references refid="unionCDSData_1a9d88223a072d7ade9783a72c1d0f9f1e">CDSData::cp</references>
        <references refid="group__CDS__DATA__TYPES_1ggaf9b792da04e0b823868cf48a01503f0ba04c4cd5c9c8c5c1daf6fdbcc19ac6895">CDS_BYTE</references>
        <references refid="dsproc__csv2cds_8c_1ae98ff71f78536c18be371abf7caa281f" compoundref="dsproc__csv2cds_8c" startline="134">CSV_MAP_TO_CDS</references>
        <references refid="unionCDSData_1aabd79235ca1442e76d9f111078732c89">CDSData::bp</references>
        <references refid="group__CDS__DATA__TYPES_1ggaf9b792da04e0b823868cf48a01503f0ba9516a78115d9ac85358c8af0c89139d8">CDS_SHORT</references>
        <references refid="unionCDSData_1a7b64679fb1734be10e59a7b332bb7d25">CDSData::sp</references>
        <references refid="group__CDS__DATA__TYPES_1ggaf9b792da04e0b823868cf48a01503f0ba71b61f884d3dcbf901995969d3cb5ddc">CDS_INT</references>
        <references refid="unionCDSData_1acf1e17eb084c1fe426480563d5f895e3">CDSData::ip</references>
        <references refid="unionCDSData_1ad6cc73612b8d45d21490edd2ead5bdb5">CDSData::fp</references>
        <references refid="unionCDSData_1a4490c36b71be762bb7395f3c70e93f13">CDSData::dp</references>
        <references refid="group__CDS__CORE__UNITS_1gae0a3227a650b9d4cdebda19e3b7d1358">cds_convert_units</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV2CDS_1gac4b7954a1ea4a459aa31b483515f94f2" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_add_csv_str_to_dbl_function</definition>
        <argsstring>(CSV2CDSMap *map, const char *csv_name, double(*str_to_dbl)(const char *strval, int *status))</argsstring>
        <name>dsproc_add_csv_str_to_dbl_function</name>
        <param>
          <type><ref refid="structCSV2CDSMap" kindref="compound">CSV2CDSMap</ref> *</type>
          <declname>map</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>csv_name</declname>
        </param>
        <param>
          <type>double(*)(const char *strval, int *status)</type>
          <declname>str_to_dbl</declname>
        </param>
        <briefdescription>
<para>Add a string to double conversion function to a CSV2CDS Mapping structure. </para>        </briefdescription>
        <detaileddescription>
<para>The str_to_double function must return a double and set the status value to non-zero if successful or 0 for an invalid input string.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>map</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the CSV2CDS Map structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>csv_name</parametername>
</parameternamelist>
<parameterdescription>
<para>name of the column in the csv file </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>str_to_dbl</parametername>
</parameternamelist>
<parameterdescription>
<para>function used to convert csv string to a double.</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if the specified csv_name was found </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if the specified csv_name was not found </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1568" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv2cds.c" bodystart="55" bodyend="70"/>
        <references refid="structCSV2CDSMap_1a419f974f1f3714eef6cc6b50c60f9fdc" compoundref="dsproc3_8h" startline="1525">CSV2CDSMap::csv_name</references>
        <references refid="structCSV2CDSMap_1ad793c042459a4cf40e6e1fb93d386171" compoundref="dsproc3_8h" startline="1534">CSV2CDSMap::str_to_dbl</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__INGEST__CONFIG_1gae230ae35131464c6bab52ecfbddaa561" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_add_csv_field_map</definition>
        <argsstring>(CSVConf *conf, const char *out_name, const char *col_name, int nargs, const char **args)</argsstring>
        <name>dsproc_add_csv_field_map</name>
        <param>
          <type><ref refid="structCSVConf" kindref="compound">CSVConf</ref> *</type>
          <declname>conf</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>out_name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>col_name</declname>
        </param>
        <param>
          <type>int</type>
          <declname>nargs</declname>
        </param>
        <param>
          <type>const char **</type>
          <declname>args</declname>
        </param>
        <briefdescription>
<para>Add an entry to the field map. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>conf</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure to populate </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>out_name</parametername>
</parameternamelist>
<parameterdescription>
<para>name of the output variable, or NULL to use the column name </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>col_name</parametername>
</parameternamelist>
<parameterdescription>
<para>name of the CSV column </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>nargs</parametername>
</parameternamelist>
<parameterdescription>
<para>length of args list </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>args</parametername>
</parameternamelist>
<parameterdescription>
<para>list of additional arguments in the following order (specify NULL or empty string for no value):<itemizedlist>
<listitem><para>units</para></listitem><listitem><para>comma separated list of missing value strings</para></listitem></itemizedlist>
</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1664" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_ingest_config.c" bodystart="1081" bodyend="1185"/>
        <references refid="structCSVConf_1a4200eabaa226493f24118a6bdd9c7ec5" compoundref="dsproc3_8h" startline="1652">CSVConf::field_nmaps</references>
        <references refid="structCSVConf_1a4a308b3aee0baefe7f9528e95774f1f5" compoundref="dsproc3_8h" startline="1653">CSVConf::field_maps</references>
        <references refid="structCSVFieldMap_1a145e601d26b782ee79a3e29b2d255ff0" compoundref="dsproc3_8h" startline="1599">CSVFieldMap::out_name</references>
        <references refid="structCSVFieldMap_1a4a87a49db92e669cea88efabd3bb7d9e" compoundref="dsproc3_8h" startline="1600">CSVFieldMap::col_name</references>
        <references refid="structCSVFieldMap_1a388273db7658c39ddf038ecb3c6a6d3b" compoundref="dsproc3_8h" startline="1601">CSVFieldMap::units</references>
        <references refid="structCSVFieldMap_1a03fd731152892832ad82e56f3f0bad2c" compoundref="dsproc3_8h" startline="1603">CSVFieldMap::missings</references>
        <references refid="structCSVFieldMap_1a9c55c67e41830f903c2b518d2033288c" compoundref="dsproc3_8h" startline="1604">CSVFieldMap::missbuf</references>
        <references refid="group__DSPROC__CSV__UTILITIES_1gaeb15d1c5ca84e61fea37af3459ebddd9" compoundref="dsproc__csv__parser_8c" startline="1516" endline="1529">dsproc_count_csv_delims</references>
        <references refid="structCSVFieldMap_1a16fab8a1910e8df56357ae4bd527a4a2" compoundref="dsproc3_8h" startline="1602">CSVFieldMap::nmissings</references>
        <references refid="group__DSPROC__CSV__UTILITIES_1gaee23cbd2ea0c54ca3562572b661c80da" compoundref="dsproc__csv__parser_8c" startline="1606" endline="1681">dsproc_split_csv_string</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__INGEST__CONFIG_1ga296af2fd5fb54b2679bbffff1a5f6fbd" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_add_csv_file_name_patterns</definition>
        <argsstring>(CSVConf *conf, int npatterns, const char **patterns)</argsstring>
        <name>dsproc_add_csv_file_name_patterns</name>
        <param>
          <type><ref refid="structCSVConf" kindref="compound">CSVConf</ref> *</type>
          <declname>conf</declname>
        </param>
        <param>
          <type>int</type>
          <declname>npatterns</declname>
        </param>
        <param>
          <type>const char **</type>
          <declname>patterns</declname>
        </param>
        <briefdescription>
<para>Add file name patterns to a <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>conf</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure to populate </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>npatterns</parametername>
</parameternamelist>
<parameterdescription>
<para>number of patterns </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>patterns</parametername>
</parameternamelist>
<parameterdescription>
<para>list of extended regex patterns, see man regex(7)</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1669" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_ingest_config.c" bodystart="1200" bodyend="1236"/>
        <references refid="structCSVConf_1ac86e2fb2658e327be2d67bf4c9c0c457" compoundref="dsproc3_8h" startline="1634">CSVConf::fn_npatterns</references>
        <references refid="structCSVConf_1a8beb01826dbd71e3c4685739d67fbef4" compoundref="dsproc3_8h" startline="1635">CSVConf::fn_patterns</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__INGEST__CONFIG_1ga2188656d588ad2089a013d92c890d110" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_add_csv_file_time_patterns</definition>
        <argsstring>(CSVConf *conf, int npatterns, const char **patterns)</argsstring>
        <name>dsproc_add_csv_file_time_patterns</name>
        <param>
          <type><ref refid="structCSVConf" kindref="compound">CSVConf</ref> *</type>
          <declname>conf</declname>
        </param>
        <param>
          <type>int</type>
          <declname>npatterns</declname>
        </param>
        <param>
          <type>const char **</type>
          <declname>patterns</declname>
        </param>
        <briefdescription>
<para>Add file time patterns to a <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>conf</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure to populate </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>npatterns</parametername>
</parameternamelist>
<parameterdescription>
<para>number of patterns </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>patterns</parametername>
</parameternamelist>
<parameterdescription>
<para>list of extended regex patterns, see man regex(7)</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1674" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_ingest_config.c" bodystart="1251" bodyend="1289"/>
        <references refid="structCSVConf_1a449a565ed95f03bf843b6b69db7e228f" compoundref="dsproc3_8h" startline="1637">CSVConf::ft_npatterns</references>
        <references refid="structCSVConf_1a82a7593fdb3f9b503418d92772661270" compoundref="dsproc3_8h" startline="1638">CSVConf::ft_patterns</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__INGEST__CONFIG_1ga79d430ae0bdc9344489454d9e3c629eb" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_add_csv_time_column_patterns</definition>
        <argsstring>(CSVConf *conf, const char *name, int npatterns, const char **patterns)</argsstring>
        <name>dsproc_add_csv_time_column_patterns</name>
        <param>
          <type><ref refid="structCSVConf" kindref="compound">CSVConf</ref> *</type>
          <declname>conf</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>int</type>
          <declname>npatterns</declname>
        </param>
        <param>
          <type>const char **</type>
          <declname>patterns</declname>
        </param>
        <briefdescription>
<para>Add time column patterns to a <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>conf</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure to populate </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>name of the time column </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>npatterns</parametername>
</parameternamelist>
<parameterdescription>
<para>number of patterns </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>patterns</parametername>
</parameternamelist>
<parameterdescription>
<para>list of time patterns</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1680" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_ingest_config.c" bodystart="1305" bodyend="1380"/>
        <references refid="structCSVConf_1a3cc93361492661fcdc722c0fa106ceed" compoundref="dsproc3_8h" startline="1649">CSVConf::time_ncols</references>
        <references refid="structCSVConf_1a44bd5949463eee335f772afdec7471da" compoundref="dsproc3_8h" startline="1650">CSVConf::time_cols</references>
        <references refid="structCSVTimeCol_1a348e0bf69fcc479116a6dc9eb90b1a2f" compoundref="dsproc3_8h" startline="1588">CSVTimeCol::name</references>
        <references refid="structCSVTimeCol_1a2ff505b4e7e291d3137f55b6bdd09cf4" compoundref="dsproc3_8h" startline="1589">CSVTimeCol::npatterns</references>
        <references refid="structCSVTimeCol_1aab92b0127992495f15ddacf86845fcb3" compoundref="dsproc3_8h" startline="1590">CSVTimeCol::patterns</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__INGEST__CONFIG_1ga74b69e1fb23974cd342dc9b700c9259d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_append_csv_header_line</definition>
        <argsstring>(CSVConf *conf, const char *string)</argsstring>
        <name>dsproc_append_csv_header_line</name>
        <param>
          <type><ref refid="structCSVConf" kindref="compound">CSVConf</ref> *</type>
          <declname>conf</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>string</declname>
        </param>
        <briefdescription>
<para>Append a string to the end of the header line. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>conf</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure to populate </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>string</parametername>
</parameternamelist>
<parameterdescription>
<para>string to append to the header line</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1684" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_ingest_config.c" bodystart="1394" bodyend="1428"/>
        <references refid="structCSVConf_1ae8dcb9d33367d6f1edca77107c3d2f0b" compoundref="dsproc3_8h" startline="1642">CSVConf::header_line</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__INGEST__CONFIG_1gaa9c387b979ff6250b32be4970305ee8e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_clear_csv_field_maps</definition>
        <argsstring>(CSVConf *conf)</argsstring>
        <name>dsproc_clear_csv_field_maps</name>
        <param>
          <type><ref refid="structCSVConf" kindref="compound">CSVConf</ref> *</type>
          <declname>conf</declname>
        </param>
        <briefdescription>
<para>Clear the time column patterns in a <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>conf</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure to populate </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1686" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_ingest_config.c" bodystart="1435" bodyend="1458"/>
        <references refid="structCSVConf_1a4a308b3aee0baefe7f9528e95774f1f5" compoundref="dsproc3_8h" startline="1653">CSVConf::field_maps</references>
        <references refid="structCSVConf_1a4200eabaa226493f24118a6bdd9c7ec5" compoundref="dsproc3_8h" startline="1652">CSVConf::field_nmaps</references>
        <references refid="structCSVFieldMap_1a145e601d26b782ee79a3e29b2d255ff0" compoundref="dsproc3_8h" startline="1599">CSVFieldMap::out_name</references>
        <references refid="structCSVFieldMap_1a4a87a49db92e669cea88efabd3bb7d9e" compoundref="dsproc3_8h" startline="1600">CSVFieldMap::col_name</references>
        <references refid="structCSVFieldMap_1a388273db7658c39ddf038ecb3c6a6d3b" compoundref="dsproc3_8h" startline="1601">CSVFieldMap::units</references>
        <references refid="structCSVFieldMap_1a03fd731152892832ad82e56f3f0bad2c" compoundref="dsproc3_8h" startline="1603">CSVFieldMap::missings</references>
        <references refid="structCSVFieldMap_1a9c55c67e41830f903c2b518d2033288c" compoundref="dsproc3_8h" startline="1604">CSVFieldMap::missbuf</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__INGEST__CONFIG_1ga7e6781b080b83622c00cf48df2e68f87" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_clear_csv_file_name_patterns</definition>
        <argsstring>(CSVConf *conf)</argsstring>
        <name>dsproc_clear_csv_file_name_patterns</name>
        <param>
          <type><ref refid="structCSVConf" kindref="compound">CSVConf</ref> *</type>
          <declname>conf</declname>
        </param>
        <briefdescription>
<para>Clear the file name patterns in a <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>conf</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure to populate </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1687" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_ingest_config.c" bodystart="1465" bodyend="1480"/>
        <references refid="structCSVConf_1a8beb01826dbd71e3c4685739d67fbef4" compoundref="dsproc3_8h" startline="1635">CSVConf::fn_patterns</references>
        <references refid="structCSVConf_1ac86e2fb2658e327be2d67bf4c9c0c457" compoundref="dsproc3_8h" startline="1634">CSVConf::fn_npatterns</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__INGEST__CONFIG_1ga0f7b35c2367bb8cc0145a9a7b09b8968" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_clear_csv_file_time_patterns</definition>
        <argsstring>(CSVConf *conf)</argsstring>
        <name>dsproc_clear_csv_file_time_patterns</name>
        <param>
          <type><ref refid="structCSVConf" kindref="compound">CSVConf</ref> *</type>
          <declname>conf</declname>
        </param>
        <briefdescription>
<para>Clear the file name patterns in a <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>conf</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure to populate </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1688" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_ingest_config.c" bodystart="1487" bodyend="1502"/>
        <references refid="structCSVConf_1a82a7593fdb3f9b503418d92772661270" compoundref="dsproc3_8h" startline="1638">CSVConf::ft_patterns</references>
        <references refid="structCSVConf_1a449a565ed95f03bf843b6b69db7e228f" compoundref="dsproc3_8h" startline="1637">CSVConf::ft_npatterns</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__INGEST__CONFIG_1ga632258feaec005b99db9a686f8194d9d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_clear_csv_time_column_patterns</definition>
        <argsstring>(CSVConf *conf)</argsstring>
        <name>dsproc_clear_csv_time_column_patterns</name>
        <param>
          <type><ref refid="structCSVConf" kindref="compound">CSVConf</ref> *</type>
          <declname>conf</declname>
        </param>
        <briefdescription>
<para>Clear the time column patterns in a <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>conf</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure to populate </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1689" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_ingest_config.c" bodystart="1509" bodyend="1537"/>
        <references refid="structCSVConf_1a44bd5949463eee335f772afdec7471da" compoundref="dsproc3_8h" startline="1650">CSVConf::time_cols</references>
        <references refid="structCSVConf_1a3cc93361492661fcdc722c0fa106ceed" compoundref="dsproc3_8h" startline="1649">CSVConf::time_ncols</references>
        <references refid="structCSVTimeCol_1a348e0bf69fcc479116a6dc9eb90b1a2f" compoundref="dsproc3_8h" startline="1588">CSVTimeCol::name</references>
        <references refid="structCSVTimeCol_1aab92b0127992495f15ddacf86845fcb3" compoundref="dsproc3_8h" startline="1590">CSVTimeCol::patterns</references>
        <references refid="structCSVTimeCol_1a2ff505b4e7e291d3137f55b6bdd09cf4" compoundref="dsproc3_8h" startline="1589">CSVTimeCol::npatterns</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__INGEST__CONFIG_1ga2a53f197f39074f4714603d07e28ba9d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_configure_csv_parser</definition>
        <argsstring>(CSVConf *conf, CSVParser *csv)</argsstring>
        <name>dsproc_configure_csv_parser</name>
        <param>
          <type><ref refid="structCSVConf" kindref="compound">CSVConf</ref> *</type>
          <declname>conf</declname>
        </param>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <briefdescription>
<para>Free memory used by a <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>conf</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to <ref refid="structCSVParser" kindref="compound">CSVParser</ref></para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occured </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1691" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_ingest_config.c" bodystart="1548" bodyend="1584"/>
        <references refid="structCSVConf_1a8d5463675c2a23f75bb458cd27967e68" compoundref="dsproc3_8h" startline="1640">CSVConf::delim</references>
        <references refid="group__DSPROC__CSV__FILE__PARSING_1gac97ef9a13db0c86088dbb1a801b3afe0" compoundref="dsproc__csv__parser_8c" startline="1216" endline="1219">dsproc_set_csv_delimiter</references>
        <references refid="structCSVConf_1a449a565ed95f03bf843b6b69db7e228f" compoundref="dsproc3_8h" startline="1637">CSVConf::ft_npatterns</references>
        <references refid="group__DSPROC__CSV__FILE__PARSING_1ga5c7c01614957bb90a69d73c959d5d672" compoundref="dsproc__csv__parser_8c" startline="1355" endline="1377">dsproc_set_csv_file_time_patterns</references>
        <references refid="structCSVConf_1a82a7593fdb3f9b503418d92772661270" compoundref="dsproc3_8h" startline="1638">CSVConf::ft_patterns</references>
        <references refid="structCSVConf_1a3cc93361492661fcdc722c0fa106ceed" compoundref="dsproc3_8h" startline="1649">CSVConf::time_ncols</references>
        <references refid="structCSVConf_1a44bd5949463eee335f772afdec7471da" compoundref="dsproc3_8h" startline="1650">CSVConf::time_cols</references>
        <references refid="group__DSPROC__CSV__FILE__PARSING_1ga7f514306d4bf10f16bfe3a8c521cda21" compoundref="dsproc__csv__parser_8c" startline="1430" endline="1500">dsproc_set_csv_time_patterns</references>
        <references refid="structCSVTimeCol_1a348e0bf69fcc479116a6dc9eb90b1a2f" compoundref="dsproc3_8h" startline="1588">CSVTimeCol::name</references>
        <references refid="structCSVTimeCol_1a2ff505b4e7e291d3137f55b6bdd09cf4" compoundref="dsproc3_8h" startline="1589">CSVTimeCol::npatterns</references>
        <references refid="structCSVTimeCol_1aab92b0127992495f15ddacf86845fcb3" compoundref="dsproc3_8h" startline="1590">CSVTimeCol::patterns</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__INGEST__CONFIG_1gae8658e7a5866f17f3369abafe2d8980e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCSV2CDSMap" kindref="compound">CSV2CDSMap</ref> *</type>
        <definition>CSV2CDSMap* dsproc_create_csv_to_cds_map</definition>
        <argsstring>(CSVConf *conf, CSVParser *csv, CDSGroup *cds, int flags)</argsstring>
        <name>dsproc_create_csv_to_cds_map</name>
        <param>
          <type><ref refid="structCSVConf" kindref="compound">CSVConf</ref> *</type>
          <declname>conf</declname>
        </param>
        <param>
          <type><ref refid="structCSVParser" kindref="compound">CSVParser</ref> *</type>
          <declname>csv</declname>
        </param>
        <param>
          <type><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> *</type>
          <declname>cds</declname>
        </param>
        <param>
          <type>int</type>
          <declname>flags</declname>
        </param>
        <briefdescription>
<para>Create a CSV2CDS Map. </para>        </briefdescription>
        <detaileddescription>
<para>The memory used by the returned CSV2CDS Map is dynamically allocated and must be freed using the <ref refid="group__DSPROC__CSV__INGEST__CONFIG_1ga62d49f268fa7e1c8d83abba5d16c68d6" kindref="member">dsproc_free_csv_to_cds_map()</ref>.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>conf</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>csv</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVParser" kindref="compound">CSVParser</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cds</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>flags</parametername>
</parameternamelist>
<parameterdescription>
<para>reserved for control flags</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>map</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the CSV2CDS Map structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>NULL</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1697" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_ingest_config.c" bodystart="1603" bodyend="1802"/>
        <references refid="structCSVParser_1aaf4e666a40dcc7574c32e0c0ce3f50ee" compoundref="dsproc3_8h" startline="1414">CSVParser::nfields</references>
        <references refid="group__DSPROC__DATASET__VARS_1gadc6e184c421faaf7b7fd7f81879fc9aa" compoundref="dsproc__dataset__vars_8c" startline="594" endline="830">dsproc_get_dataset_vars</references>
        <references refid="structCSVParser_1a1f29c3b2810d0656f1cacfd38c84b3ed" compoundref="dsproc3_8h" startline="1433">CSVParser::ntc</references>
        <references refid="structCSVParser_1ab8c90ce0b538e59ae8d288de05ae4415" compoundref="dsproc3_8h" startline="1434">CSVParser::tc_names</references>
        <references refid="structCSVParser_1a2254416ecfc54321c8dc3f9b9a1cfdbc" compoundref="dsproc3_8h" startline="1412">CSVParser::headers</references>
        <references refid="structCSVConf_1a4a308b3aee0baefe7f9528e95774f1f5" compoundref="dsproc3_8h" startline="1653">CSVConf::field_maps</references>
        <references refid="structCSVConf_1a4200eabaa226493f24118a6bdd9c7ec5" compoundref="dsproc3_8h" startline="1652">CSVConf::field_nmaps</references>
        <references refid="structCSV2CDSMap_1a419f974f1f3714eef6cc6b50c60f9fdc" compoundref="dsproc3_8h" startline="1525">CSV2CDSMap::csv_name</references>
        <references refid="structCSVFieldMap_1a4a87a49db92e669cea88efabd3bb7d9e" compoundref="dsproc3_8h" startline="1600">CSVFieldMap::col_name</references>
        <references refid="structCSVFieldMap_1a145e601d26b782ee79a3e29b2d255ff0" compoundref="dsproc3_8h" startline="1599">CSVFieldMap::out_name</references>
        <references refid="structCSV2CDSMap_1ab5cc1f1f0113de06a93a1ad5a2296158" compoundref="dsproc3_8h" startline="1528">CSV2CDSMap::cds_name</references>
        <references refid="structCSVFieldMap_1a388273db7658c39ddf038ecb3c6a6d3b" compoundref="dsproc3_8h" startline="1601">CSVFieldMap::units</references>
        <references refid="structCSV2CDSMap_1a594b717e8c5b187e70fcf400ec7dcd8a" compoundref="dsproc3_8h" startline="1526">CSV2CDSMap::csv_units</references>
        <references refid="structCSVFieldMap_1a16fab8a1910e8df56357ae4bd527a4a2" compoundref="dsproc3_8h" startline="1602">CSVFieldMap::nmissings</references>
        <references refid="structCSVFieldMap_1a03fd731152892832ad82e56f3f0bad2c" compoundref="dsproc3_8h" startline="1603">CSVFieldMap::missings</references>
        <references refid="structCSV2CDSMap_1ad1e3819d6556d30c9c405e8a88916c02" compoundref="dsproc3_8h" startline="1527">CSV2CDSMap::csv_missings</references>
        <references refid="group__DSPROC__CSV__INGEST__CONFIG_1ga62d49f268fa7e1c8d83abba5d16c68d6" compoundref="dsproc__csv__ingest__config_8c" startline="1853" endline="1877">dsproc_free_csv_to_cds_map</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__INGEST__CONFIG_1gacc30ddc3f55af6b78867b9b201b7e170" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_free_csv_conf</definition>
        <argsstring>(CSVConf *conf)</argsstring>
        <name>dsproc_free_csv_conf</name>
        <param>
          <type><ref refid="structCSVConf" kindref="compound">CSVConf</ref> *</type>
          <declname>conf</declname>
        </param>
        <briefdescription>
<para>Free memory used by a <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>conf</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1699" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_ingest_config.c" bodystart="1809" bodyend="1846"/>
        <references refid="structCSVConf_1a2883d6dd67cc1a0ac8ae6267e351dace" compoundref="dsproc3_8h" startline="1615">CSVConf::proc</references>
        <references refid="structCSVConf_1aa4b8f4af05db378c342565699d011cf7" compoundref="dsproc3_8h" startline="1616">CSVConf::site</references>
        <references refid="structCSVConf_1a54386bad87125dba3e362700d6c4e7eb" compoundref="dsproc3_8h" startline="1617">CSVConf::fac</references>
        <references refid="structCSVConf_1aba56067a3d39de2e7b7bb66dcaf9c6cf" compoundref="dsproc3_8h" startline="1618">CSVConf::name</references>
        <references refid="structCSVConf_1ad47e51e6c9c0633522393f3139c77edf" compoundref="dsproc3_8h" startline="1619">CSVConf::level</references>
        <references refid="structCSVConf_1a16f0724fbd89dec2292df716432804bb" compoundref="dsproc3_8h" startline="1624">CSVConf::file_name</references>
        <references refid="structCSVConf_1a1b54d77fdca8aa04559d9bd63fea085d" compoundref="dsproc3_8h" startline="1623">CSVConf::file_path</references>
        <references refid="structCSVConf_1a75a067f8800a4ede6b372c201280030d" compoundref="dsproc3_8h" startline="1629">CSVConf::search_paths</references>
        <references refid="structCSVConf_1ac668b473eb3c61d83363d98c4c12eb00" compoundref="dsproc3_8h" startline="1628">CSVConf::search_npaths</references>
        <references refid="structCSVConf_1ad61ee675408abaf4648d5dd83617a616" compoundref="dsproc3_8h" startline="1630">CSVConf::dirlist</references>
        <references refid="group__ARMUTILS__DIR__UTILS_1ga9b577f1dd522b62f10a0e307554f2911">dirlist_free</references>
        <references refid="group__DSPROC__CSV__INGEST__CONFIG_1ga7e6781b080b83622c00cf48df2e68f87" compoundref="dsproc__csv__ingest__config_8c" startline="1465" endline="1480">dsproc_clear_csv_file_name_patterns</references>
        <references refid="group__DSPROC__CSV__INGEST__CONFIG_1ga0f7b35c2367bb8cc0145a9a7b09b8968" compoundref="dsproc__csv__ingest__config_8c" startline="1487" endline="1502">dsproc_clear_csv_file_time_patterns</references>
        <references refid="structCSVConf_1ae8dcb9d33367d6f1edca77107c3d2f0b" compoundref="dsproc3_8h" startline="1642">CSVConf::header_line</references>
        <references refid="structCSVConf_1ae6a72759fc8d44c5b2c1aaf2e6070c42" compoundref="dsproc3_8h" startline="1643">CSVConf::header_tag</references>
        <references refid="group__DSPROC__CSV__INGEST__CONFIG_1ga632258feaec005b99db9a686f8194d9d" compoundref="dsproc__csv__ingest__config_8c" startline="1509" endline="1537">dsproc_clear_csv_time_column_patterns</references>
        <references refid="group__DSPROC__CSV__INGEST__CONFIG_1gaa9c387b979ff6250b32be4970305ee8e" compoundref="dsproc__csv__ingest__config_8c" startline="1435" endline="1458">dsproc_clear_csv_field_maps</references>
        <references refid="structCSVConf_1a7c4dffb7ec48ea7213ca1c220d48d48e" compoundref="dsproc3_8h" startline="1655">CSVConf::split_interval</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__INGEST__CONFIG_1ga62d49f268fa7e1c8d83abba5d16c68d6" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void dsproc_free_csv_to_cds_map</definition>
        <argsstring>(CSV2CDSMap *map)</argsstring>
        <name>dsproc_free_csv_to_cds_map</name>
        <param>
          <type><ref refid="structCSV2CDSMap" kindref="compound">CSV2CDSMap</ref> *</type>
          <declname>map</declname>
        </param>
        <briefdescription>
<para>Free the memory used by a CSV2CDS Map. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>map</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the CSV2CDS Map structure </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1702" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_ingest_config.c" bodystart="1853" bodyend="1877"/>
        <references refid="structCSV2CDSMap_1a419f974f1f3714eef6cc6b50c60f9fdc" compoundref="dsproc3_8h" startline="1525">CSV2CDSMap::csv_name</references>
        <references refid="structCSV2CDSMap_1ad1e3819d6556d30c9c405e8a88916c02" compoundref="dsproc3_8h" startline="1527">CSV2CDSMap::csv_missings</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__INGEST__CONFIG_1gad10972d2ae92e5f0a050c9a58bea63a0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structCSVConf" kindref="compound">CSVConf</ref> *</type>
        <definition>CSVConf* dsproc_init_csv_conf</definition>
        <argsstring>(const char *name, const char *level)</argsstring>
        <name>dsproc_init_csv_conf</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>level</declname>
        </param>
        <briefdescription>
<para>Initialize a new <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure. </para>        </briefdescription>
        <detaileddescription>
<para>The memory used by the returned structure is dynamically allocated and must be freed using <ref refid="group__DSPROC__CSV__INGEST__CONFIG_1gacc30ddc3f55af6b78867b9b201b7e170" kindref="member">dsproc_free_csv_conf()</ref>.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>name</parametername>
</parameternamelist>
<parameterdescription>
<para>the base name of the conf file </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>level</parametername>
</parameternamelist>
<parameterdescription>
<para>the data level of the conf file, or NULL</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>conf</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>NULL</parametername>
</parameternamelist>
<parameterdescription>
<para>if an error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1706" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_ingest_config.c" bodystart="1894" bodyend="1924"/>
        <references refid="group__DSPROC__INFO_1ga59224e5b61203d5deffcd2ce3885c541" compoundref="dsproc_8c" startline="4035" endline="4038">dsproc_get_name</references>
        <references refid="group__DSPROC__INFO_1ga78be2bbf2b8651efb06921b1df4f539e" compoundref="dsproc_8c" startline="4015" endline="4018">dsproc_get_site</references>
        <references refid="group__DSPROC__INFO_1gaa1e4c8e971e35ae8aec470c83a4234e0" compoundref="dsproc_8c" startline="4025" endline="4028">dsproc_get_facility</references>
        <references refid="structCSVConf_1a2883d6dd67cc1a0ac8ae6267e351dace" compoundref="dsproc3_8h" startline="1615">CSVConf::proc</references>
        <references refid="structCSVConf_1aa4b8f4af05db378c342565699d011cf7" compoundref="dsproc3_8h" startline="1616">CSVConf::site</references>
        <references refid="structCSVConf_1a54386bad87125dba3e362700d6c4e7eb" compoundref="dsproc3_8h" startline="1617">CSVConf::fac</references>
        <references refid="structCSVConf_1aba56067a3d39de2e7b7bb66dcaf9c6cf" compoundref="dsproc3_8h" startline="1618">CSVConf::name</references>
        <references refid="structCSVConf_1ad47e51e6c9c0633522393f3139c77edf" compoundref="dsproc3_8h" startline="1619">CSVConf::level</references>
        <references refid="group__DSPROC__CSV__INGEST__CONFIG_1gacc30ddc3f55af6b78867b9b201b7e170" compoundref="dsproc__csv__ingest__config_8c" startline="1809" endline="1846">dsproc_free_csv_conf</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__INGEST__CONFIG_1ga11aceb7fac3b7436ea9beccf828d1ea7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_load_csv_conf</definition>
        <argsstring>(CSVConf *conf, time_t data_time, int flags)</argsstring>
        <name>dsproc_load_csv_conf</name>
        <param>
          <type><ref refid="structCSVConf" kindref="compound">CSVConf</ref> *</type>
          <declname>conf</declname>
        </param>
        <param>
          <type>time_t</type>
          <declname>data_time</declname>
        </param>
        <param>
          <type>int</type>
          <declname>flags</declname>
        </param>
        <briefdescription>
<para>Load the CSV Configuration file into a CVSConf structure. </para>        </briefdescription>
        <detaileddescription>
<para>The frist time this function is called the data_time argument must be set to 0. This will load the main conf file containing the the file name patterns and all default configuration settings. It will also set the path to look for time varying conf files in subsequent calls to this function.</para><para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>conf</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>data_time</parametername>
</parameternamelist>
<parameterdescription>
<para>The start time of the data being processed, this should be determined from the file name. Specify 0 to find the main conf file containing the the file name patterns and all default configuration settings.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>flags</parametername>
</parameternamelist>
<parameterdescription>
<para>Control Flags: <verbatim>                 - CSV_CHECK_DATA_CONF  check for config files under the root directory
                                        defined by the CONF_DATA environment variable.
</verbatim></para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if a file was not found, or it has already been loaded </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>-1</parametername>
</parameternamelist>
<parameterdescription>
<para>if error occurred </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1711" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_ingest_config.c" bodystart="1954" bodyend="2002"/>
        <references refid="structCSVConf_1a1b54d77fdca8aa04559d9bd63fea085d" compoundref="dsproc3_8h" startline="1623">CSVConf::file_path</references>
        <references refid="structCSVConf_1a16f0724fbd89dec2292df716432804bb" compoundref="dsproc3_8h" startline="1624">CSVConf::file_name</references>
        <references refid="messenger_8h_1ac791733161412261186acd64e02b55e0">msngr_debug_level</references>
        <references refid="group__DSPROC__CSV__INGEST__CONFIG_1gac3d335667566b8ba999b42ad802beaa8" compoundref="dsproc__csv__ingest__config_8c" startline="2016" endline="2138">dsproc_print_csv_conf</references>
        <references refid="group__MESSENGER_1ga3daef1e04a92bab649cd28129f18d42a">ERROR</references>
        <references refid="dsproc3__internal_8h_1a087b93f9823718ac015d00c34ff29858" compoundref="dsproc3__internal_8h" startline="36">DSPROC_LIB_NAME</references>
        <references refid="group__INTERNAL__DSPROC__INFO_1ga26a56a456306d66be13dcd17c7201362" compoundref="dsproc_8c" startline="3994" endline="4008">dsproc_set_status</references>
        <references refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" compoundref="dsproc3_8h" startline="1079">DSPROC_ENOMEM</references>
      </memberdef>
      <memberdef kind="function" id="group__DSPROC__CSV__INGEST__CONFIG_1gac3d335667566b8ba999b42ad802beaa8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int dsproc_print_csv_conf</definition>
        <argsstring>(FILE *fp, CSVConf *conf)</argsstring>
        <name>dsproc_print_csv_conf</name>
        <param>
          <type>FILE *</type>
          <declname>fp</declname>
        </param>
        <param>
          <type><ref refid="structCSVConf" kindref="compound">CSVConf</ref> *</type>
          <declname>conf</declname>
        </param>
        <briefdescription>
<para>Print the contents of a <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure. </para>        </briefdescription>
        <detaileddescription>
<para>If an error occurs in this function it will be appended to the log and error mail messages, and the process status will be set appropriately.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>fp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the output stream </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>conf</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the <ref refid="structCSVConf" kindref="compound">CSVConf</ref> structure</para></parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>1</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>0</parametername>
</parameternamelist>
<parameterdescription>
<para>if successful </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h" line="1714" bodyfile="/home/ermold/dev/Linux-x86_64-el6/dslib/src/libdsproc3/dsproc_csv_ingest_config.c" bodystart="2016" bodyend="2138"/>
        <references refid="structCSVConf_1a8beb01826dbd71e3c4685739d67fbef4" compoundref="dsproc3_8h" startline="1635">CSVConf::fn_patterns</references>
        <references refid="structCSVConf_1ac86e2fb2658e327be2d67bf4c9c0c457" compoundref="dsproc3_8h" startline="1634">CSVConf::fn_npatterns</references>
        <references refid="structCSVConf_1a82a7593fdb3f9b503418d92772661270" compoundref="dsproc3_8h" startline="1638">CSVConf::ft_patterns</references>
        <references refid="structCSVConf_1a449a565ed95f03bf843b6b69db7e228f" compoundref="dsproc3_8h" startline="1637">CSVConf::ft_npatterns</references>
        <references refid="structCSVConf_1a8d5463675c2a23f75bb458cd27967e68" compoundref="dsproc3_8h" startline="1640">CSVConf::delim</references>
        <references refid="structCSVConf_1ae8dcb9d33367d6f1edca77107c3d2f0b" compoundref="dsproc3_8h" startline="1642">CSVConf::header_line</references>
        <references refid="structCSVConf_1ae6a72759fc8d44c5b2c1aaf2e6070c42" compoundref="dsproc3_8h" startline="1643">CSVConf::header_tag</references>
        <references refid="structCSVConf_1aebe41ca64c1afbef9c0702ad1ae1de8c" compoundref="dsproc3_8h" startline="1644">CSVConf::header_linenum</references>
        <references refid="structCSVConf_1a4697ac395acacb2442021f27278676be" compoundref="dsproc3_8h" startline="1645">CSVConf::header_nlines</references>
        <references refid="structCSVConf_1a57c2d376cf39971f123bd9ef3c77eb14" compoundref="dsproc3_8h" startline="1647">CSVConf::exp_ncols</references>
        <references refid="structCSVConf_1a44bd5949463eee335f772afdec7471da" compoundref="dsproc3_8h" startline="1650">CSVConf::time_cols</references>
        <references refid="structCSVConf_1a3cc93361492661fcdc722c0fa106ceed" compoundref="dsproc3_8h" startline="1649">CSVConf::time_ncols</references>
        <references refid="structCSVTimeCol_1a348e0bf69fcc479116a6dc9eb90b1a2f" compoundref="dsproc3_8h" startline="1588">CSVTimeCol::name</references>
        <references refid="structCSVTimeCol_1a2ff505b4e7e291d3137f55b6bdd09cf4" compoundref="dsproc3_8h" startline="1589">CSVTimeCol::npatterns</references>
        <references refid="structCSVTimeCol_1aab92b0127992495f15ddacf86845fcb3" compoundref="dsproc3_8h" startline="1590">CSVTimeCol::patterns</references>
        <references refid="structCSVConf_1a7c4dffb7ec48ea7213ca1c220d48d48e" compoundref="dsproc3_8h" startline="1655">CSVConf::split_interval</references>
        <references refid="structCSVConf_1a4a308b3aee0baefe7f9528e95774f1f5" compoundref="dsproc3_8h" startline="1653">CSVConf::field_maps</references>
        <references refid="structCSVConf_1a4200eabaa226493f24118a6bdd9c7ec5" compoundref="dsproc3_8h" startline="1652">CSVConf::field_nmaps</references>
        <references refid="structCSVFieldMap_1a145e601d26b782ee79a3e29b2d255ff0" compoundref="dsproc3_8h" startline="1599">CSVFieldMap::out_name</references>
        <references refid="structCSVFieldMap_1a4a87a49db92e669cea88efabd3bb7d9e" compoundref="dsproc3_8h" startline="1600">CSVFieldMap::col_name</references>
        <references refid="structCSVFieldMap_1a388273db7658c39ddf038ecb3c6a6d3b" compoundref="dsproc3_8h" startline="1601">CSVFieldMap::units</references>
        <references refid="structCSVFieldMap_1a16fab8a1910e8df56357ae4bd527a4a2" compoundref="dsproc3_8h" startline="1602">CSVFieldMap::nmissings</references>
        <references refid="structCSVFieldMap_1a03fd731152892832ad82e56f3f0bad2c" compoundref="dsproc3_8h" startline="1603">CSVFieldMap::missings</references>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Header file for libdsproc3. </para>    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <programlisting>
<codeline lineno="1"><highlight class="comment">/*******************************************************************************</highlight></codeline>
<codeline lineno="2"><highlight class="comment">*</highlight></codeline>
<codeline lineno="3"><highlight class="comment">*<sp/><sp/>COPYRIGHT<sp/>(C)<sp/>2010<sp/>Battelle<sp/>Memorial<sp/>Institute.<sp/><sp/>All<sp/>Rights<sp/>Reserved.</highlight></codeline>
<codeline lineno="4"><highlight class="comment">*</highlight></codeline>
<codeline lineno="5"><highlight class="comment">********************************************************************************</highlight></codeline>
<codeline lineno="6"><highlight class="comment">*</highlight></codeline>
<codeline lineno="7"><highlight class="comment">*<sp/><sp/>Author:</highlight></codeline>
<codeline lineno="8"><highlight class="comment">*<sp/><sp/><sp/><sp/><sp/>name:<sp/><sp/>Brian<sp/>Ermold</highlight></codeline>
<codeline lineno="9"><highlight class="comment">*<sp/><sp/><sp/><sp/><sp/>phone:<sp/>(509)<sp/>375-2277</highlight></codeline>
<codeline lineno="10"><highlight class="comment">*<sp/><sp/><sp/><sp/><sp/>email:<sp/>brian.ermold@pnl.gov</highlight></codeline>
<codeline lineno="11"><highlight class="comment">*</highlight></codeline>
<codeline lineno="12"><highlight class="comment">********************************************************************************</highlight></codeline>
<codeline lineno="13"><highlight class="comment">*</highlight></codeline>
<codeline lineno="14"><highlight class="comment">*<sp/><sp/>REPOSITORY<sp/>INFORMATION:</highlight></codeline>
<codeline lineno="15"><highlight class="comment">*<sp/><sp/><sp/><sp/>$Revision:<sp/>81662<sp/>$</highlight></codeline>
<codeline lineno="16"><highlight class="comment">*<sp/><sp/><sp/><sp/>$Author:<sp/>ermold<sp/>$</highlight></codeline>
<codeline lineno="17"><highlight class="comment">*<sp/><sp/><sp/><sp/>$Date:<sp/>2017-10-27<sp/>16:09:46<sp/>+0000<sp/>(Fri,<sp/>27<sp/>Oct<sp/>2017)<sp/>$</highlight></codeline>
<codeline lineno="18"><highlight class="comment">*</highlight></codeline>
<codeline lineno="19"><highlight class="comment">********************************************************************************</highlight></codeline>
<codeline lineno="20"><highlight class="comment">*</highlight></codeline>
<codeline lineno="21"><highlight class="comment">*<sp/><sp/>NOTE:<sp/>DOXYGEN<sp/>is<sp/>used<sp/>to<sp/>generate<sp/>documentation<sp/>for<sp/>this<sp/>file.</highlight></codeline>
<codeline lineno="22"><highlight class="comment">*</highlight></codeline>
<codeline lineno="23"><highlight class="comment">*******************************************************************************/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="24"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="25"><highlight class="comment">/**<sp/>@file<sp/>dsproc3.h</highlight></codeline>
<codeline lineno="26"><highlight class="comment"><sp/>*<sp/><sp/>Header<sp/>file<sp/>for<sp/>libdsproc3</highlight></codeline>
<codeline lineno="27"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="28"><highlight class="normal"></highlight></codeline>
<codeline lineno="29"><highlight class="normal"></highlight><highlight class="preprocessor">#ifndef<sp/>_DSPROC3_H</highlight></codeline>
<codeline lineno="30"><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define<sp/>_DSPROC3_H</highlight></codeline>
<codeline lineno="31"><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="32"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="armutils_8h" kindref="compound" external="libarmutils.tag">armutils.h</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="33"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="cds3_8h" kindref="compound" external="libcds3.tag">cds3.h</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="34"><highlight class="normal"></highlight></codeline>
<codeline lineno="35"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="36"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="37"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_MAIN<sp/>Process<sp/>Main</highlight></codeline>
<codeline lineno="38"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="39"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="40"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="41"><highlight class="comment">/**<sp/>Flag<sp/>specifying<sp/>that<sp/>the<sp/>data<sp/>retrieval<sp/>process<sp/>should<sp/>be<sp/>run.<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="42" refid="group__DSPROC__MAIN_1ga4023bd74807f2a8fa0c4c7b82802faa0" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSP_RETRIEVER<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x001</highlight></codeline>
<codeline lineno="43"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="44"><highlight class="comment">/**<sp/>Flag<sp/>specifying<sp/>if<sp/>a<sp/>retriever<sp/>definition<sp/>is<sp/>required.<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="45" refid="group__DSPROC__MAIN_1ga55ba56cc545ae9689cd9aebd2606e017" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSP_RETRIEVER_REQUIRED<sp/><sp/>0x002</highlight></codeline>
<codeline lineno="46"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="47"><highlight class="comment">/**<sp/>Flag<sp/>specifying<sp/>that<sp/>the<sp/>data<sp/>transformation<sp/>process<sp/>should<sp/>be<sp/>run.<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="48" refid="group__DSPROC__MAIN_1ga78aa4b909a2223e6a061d0f84cf6525a" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSP_TRANSFORM<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x004</highlight></codeline>
<codeline lineno="49"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="50"><highlight class="comment">/**<sp/>Flag<sp/>specifying<sp/>that<sp/>this<sp/>is<sp/>an<sp/>ingest<sp/>process.<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="51" refid="group__DSPROC__MAIN_1gabc7755bb9091b5049de1f7ce77d3cd9e" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSP_INGEST<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x100</highlight></codeline>
<codeline lineno="52"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="53"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="54"><highlight class="comment"><sp/>*<sp/><sp/>Process<sp/>Models</highlight></codeline>
<codeline lineno="55"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="56" refid="group__DSPROC__MAIN_1ga33494e92e6acc51e15df1336dfd42bad" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">enum</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="57"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="58"><highlight class="comment"><sp/><sp/><sp/><sp/>/**<sp/>Generic<sp/>VAP<sp/>process.</highlight></codeline>
<codeline lineno="59"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*</highlight></codeline>
<codeline lineno="60"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>The<sp/>retriever<sp/>definition<sp/>will<sp/>be<sp/>used<sp/>if<sp/>it<sp/>exists<sp/>in<sp/>the<sp/>database</highlight></codeline>
<codeline lineno="61"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>but<sp/>it<sp/>is<sp/>not<sp/>required<sp/>for<sp/>the<sp/>process<sp/>to<sp/>run.<sp/>This<sp/>will<sp/>also<sp/>run<sp/>the</highlight></codeline>
<codeline lineno="62"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>transform<sp/>logic<sp/>for<sp/>any<sp/>variables<sp/>that<sp/>are<sp/>found<sp/>in<sp/>the<sp/>retrieved</highlight></codeline>
<codeline lineno="63"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>data<sp/>that<sp/>have<sp/>been<sp/>tagged<sp/>with<sp/>a<sp/>coordinate<sp/>system<sp/>name.</highlight></codeline>
<codeline lineno="64"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="65" refid="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42bada9d2a3b74219ca1a0e415eec14021bdf6" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42bada9d2a3b74219ca1a0e415eec14021bdf6" kindref="member" tooltip="Generic VAP process.">PM_GENERIC</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>=<sp/><ref refid="group__DSPROC__MAIN_1ga4023bd74807f2a8fa0c4c7b82802faa0" kindref="member" tooltip="Flag specifying that the data retrieval process should be run.">DSP_RETRIEVER</ref><sp/>|<sp/><ref refid="group__DSPROC__MAIN_1ga78aa4b909a2223e6a061d0f84cf6525a" kindref="member" tooltip="Flag specifying that the data transformation process should be run.">DSP_TRANSFORM</ref>,</highlight></codeline>
<codeline lineno="66"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="67"><highlight class="comment"><sp/><sp/><sp/><sp/>/**<sp/>Retriever<sp/>only<sp/>VAP.</highlight></codeline>
<codeline lineno="68"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*</highlight></codeline>
<codeline lineno="69"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>This<sp/>VAP<sp/>requires<sp/>a<sp/>retriever<sp/>definition<sp/>to<sp/>be<sp/>specified<sp/>in<sp/>the</highlight></codeline>
<codeline lineno="70"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>database,<sp/>but<sp/>will<sp/>bypass<sp/>the<sp/>transformation<sp/>logic.</highlight></codeline>
<codeline lineno="71"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="72" refid="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42bada43782459f23eb559303d7370f85bb1c5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42bada43782459f23eb559303d7370f85bb1c5" kindref="member" tooltip="Retriever only VAP.">PM_RETRIEVER_VAP</ref><sp/><sp/><sp/><sp/>=<sp/><ref refid="group__DSPROC__MAIN_1ga4023bd74807f2a8fa0c4c7b82802faa0" kindref="member" tooltip="Flag specifying that the data retrieval process should be run.">DSP_RETRIEVER</ref><sp/>|<sp/><ref refid="group__DSPROC__MAIN_1ga55ba56cc545ae9689cd9aebd2606e017" kindref="member" tooltip="Flag specifying if a retriever definition is required.">DSP_RETRIEVER_REQUIRED</ref>,</highlight></codeline>
<codeline lineno="73"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="74"><highlight class="comment"><sp/><sp/><sp/><sp/>/**<sp/>Transformation<sp/>VAP.</highlight></codeline>
<codeline lineno="75"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*</highlight></codeline>
<codeline lineno="76"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>This<sp/>VAP<sp/>requires<sp/>a<sp/>retriever<sp/>definition<sp/>to<sp/>be<sp/>specified<sp/>in<sp/>the</highlight></codeline>
<codeline lineno="77"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>database,<sp/>and<sp/>will<sp/>run<sp/>the<sp/>transformation<sp/>logic.</highlight></codeline>
<codeline lineno="78"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="79" refid="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42badabe84e68ed28ec2fdba708074abec6f8a" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42badabe84e68ed28ec2fdba708074abec6f8a" kindref="member" tooltip="Transformation VAP.">PM_TRANSFORM_VAP</ref><sp/><sp/><sp/><sp/>=<sp/><ref refid="group__DSPROC__MAIN_1ga4023bd74807f2a8fa0c4c7b82802faa0" kindref="member" tooltip="Flag specifying that the data retrieval process should be run.">DSP_RETRIEVER</ref><sp/>|<sp/><ref refid="group__DSPROC__MAIN_1ga55ba56cc545ae9689cd9aebd2606e017" kindref="member" tooltip="Flag specifying if a retriever definition is required.">DSP_RETRIEVER_REQUIRED</ref><sp/>|<sp/><ref refid="group__DSPROC__MAIN_1ga78aa4b909a2223e6a061d0f84cf6525a" kindref="member" tooltip="Flag specifying that the data transformation process should be run.">DSP_TRANSFORM</ref>,</highlight></codeline>
<codeline lineno="80"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="81"><highlight class="comment"><sp/><sp/><sp/><sp/>/**<sp/>Ingest<sp/>Process.</highlight></codeline>
<codeline lineno="82"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*</highlight></codeline>
<codeline lineno="83"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>This<sp/>is<sp/>an<sp/>Ingest<sp/>process<sp/>that<sp/>loops<sp/>over<sp/>all<sp/>raw<sp/>files<sp/>in<sp/>the</highlight></codeline>
<codeline lineno="84"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>input<sp/>datastream<sp/>directory.</highlight></codeline>
<codeline lineno="85"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="86" refid="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42bada6069f0ae00a9a7f8099f72e126019722" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42bada6069f0ae00a9a7f8099f72e126019722" kindref="member" tooltip="Ingest Process.">PM_INGEST</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>=<sp/><ref refid="group__DSPROC__MAIN_1gabc7755bb9091b5049de1f7ce77d3cd9e" kindref="member" tooltip="Flag specifying that this is an ingest process.">DSP_INGEST</ref>,</highlight></codeline>
<codeline lineno="87"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="88"><highlight class="comment"><sp/><sp/><sp/><sp/>/**<sp/>Ingest/VAP<sp/>Hybrid<sp/>Process<sp/>that<sp/>bypasses<sp/>the<sp/>transform<sp/>logic.</highlight></codeline>
<codeline lineno="89"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*</highlight></codeline>
<codeline lineno="90"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>This<sp/>is<sp/>an<sp/>Ingest<sp/>process<sp/>that<sp/>uses<sp/>the<sp/>PM_RETRIEVER_VAP<sp/>processing</highlight></codeline>
<codeline lineno="91"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>model,<sp/>but<sp/>is<sp/>designed<sp/>to<sp/>run<sp/>in<sp/>real-time<sp/>like<sp/>an<sp/>ingest<sp/>without<sp/>the</highlight></codeline>
<codeline lineno="92"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>need<sp/>for<sp/>the<sp/>&apos;-b<sp/>begin_time&apos;<sp/>command<sp/>line<sp/>argument.<sp/><sp/>The<sp/>standard</highlight></codeline>
<codeline lineno="93"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>VAP<sp/>-b/-e<sp/>command<sp/>line<sp/>options<sp/>can<sp/>still<sp/>be<sp/>used<sp/>for<sp/>reprocessing.</highlight></codeline>
<codeline lineno="94"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="95" refid="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42bada529cdc20d617a29624d504333df47a58" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42bada529cdc20d617a29624d504333df47a58" kindref="member" tooltip="Ingest/VAP Hybrid Process that bypasses the transform logic.">PM_RETRIEVER_INGEST</ref><sp/>=<sp/><ref refid="group__DSPROC__MAIN_1gabc7755bb9091b5049de1f7ce77d3cd9e" kindref="member" tooltip="Flag specifying that this is an ingest process.">DSP_INGEST</ref><sp/>|<sp/><ref refid="group__DSPROC__MAIN_1ga4023bd74807f2a8fa0c4c7b82802faa0" kindref="member" tooltip="Flag specifying that the data retrieval process should be run.">DSP_RETRIEVER</ref><sp/>|<sp/><ref refid="group__DSPROC__MAIN_1ga55ba56cc545ae9689cd9aebd2606e017" kindref="member" tooltip="Flag specifying if a retriever definition is required.">DSP_RETRIEVER_REQUIRED</ref>,</highlight></codeline>
<codeline lineno="96"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="97"><highlight class="comment"><sp/><sp/><sp/><sp/>/**<sp/>Ingest/VAP<sp/>Hybrid<sp/>Process<sp/>that<sp/>uses<sp/>the<sp/>transform<sp/>logic.</highlight></codeline>
<codeline lineno="98"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*</highlight></codeline>
<codeline lineno="99"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>This<sp/>is<sp/>an<sp/>Ingest<sp/>process<sp/>that<sp/>uses<sp/>the<sp/>PM_TRANSFORM_VAP<sp/>processing</highlight></codeline>
<codeline lineno="100"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>model,<sp/>but<sp/>is<sp/>designed<sp/>to<sp/>run<sp/>in<sp/>real-time<sp/>like<sp/>an<sp/>ingest<sp/>without<sp/>the</highlight></codeline>
<codeline lineno="101"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>need<sp/>for<sp/>the<sp/>&apos;-b<sp/>begin_time&apos;<sp/>command<sp/>line<sp/>argument.<sp/><sp/>The<sp/>standard</highlight></codeline>
<codeline lineno="102"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*<sp/><sp/>VAP<sp/>-b/-e<sp/>command<sp/>line<sp/>options<sp/>can<sp/>still<sp/>be<sp/>used<sp/>for<sp/>reprocessing.</highlight></codeline>
<codeline lineno="103"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="104" refid="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42badadd8dbe1ca02cd82cb6877c441cff0ebe" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__MAIN_1gga33494e92e6acc51e15df1336dfd42badadd8dbe1ca02cd82cb6877c441cff0ebe" kindref="member" tooltip="Ingest/VAP Hybrid Process that uses the transform logic.">PM_TRANSFORM_INGEST</ref><sp/>=<sp/><ref refid="group__DSPROC__MAIN_1gabc7755bb9091b5049de1f7ce77d3cd9e" kindref="member" tooltip="Flag specifying that this is an ingest process.">DSP_INGEST</ref><sp/>|<sp/><ref refid="group__DSPROC__MAIN_1ga4023bd74807f2a8fa0c4c7b82802faa0" kindref="member" tooltip="Flag specifying that the data retrieval process should be run.">DSP_RETRIEVER</ref><sp/>|<sp/><ref refid="group__DSPROC__MAIN_1ga55ba56cc545ae9689cd9aebd2606e017" kindref="member" tooltip="Flag specifying if a retriever definition is required.">DSP_RETRIEVER_REQUIRED</ref><sp/>|<sp/><ref refid="group__DSPROC__MAIN_1ga78aa4b909a2223e6a061d0f84cf6525a" kindref="member" tooltip="Flag specifying that the data transformation process should be run.">DSP_TRANSFORM</ref></highlight></codeline>
<codeline lineno="105"><highlight class="normal"></highlight></codeline>
<codeline lineno="106"><highlight class="normal">}<sp/><ref refid="group__DSPROC__MAIN_1ga33494e92e6acc51e15df1336dfd42bad" kindref="member" tooltip="Process Models.">ProcModel</ref>;</highlight></codeline>
<codeline lineno="107"><highlight class="normal"></highlight></codeline>
<codeline lineno="108"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MAIN_1ga8645903a798bffe2afff542d0663a76b" kindref="member" tooltip="Free memory used by user defined command line options.">dsproc_freeopts</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="109"><highlight class="normal"></highlight></codeline>
<codeline lineno="110"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MAIN_1gaa2c3ea00b8b2626fcb2588e4c4431c6b" kindref="member" tooltip="Get user defined command line option.">dsproc_getopt</ref>(</highlight></codeline>
<codeline lineno="111"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*option,</highlight></codeline>
<codeline lineno="112"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**value);</highlight></codeline>
<codeline lineno="113"><highlight class="normal"></highlight></codeline>
<codeline lineno="114"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MAIN_1ga4dd7de0a5e50734e7da17d00f5febc41" kindref="member" tooltip="Set user defined command line option.">dsproc_setopt</ref>(</highlight></codeline>
<codeline lineno="115"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>short_opt,</highlight></codeline>
<codeline lineno="116"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*long_opt,</highlight></codeline>
<codeline lineno="117"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*arg_name,</highlight></codeline>
<codeline lineno="118"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*opt_desc);</highlight></codeline>
<codeline lineno="119"><highlight class="normal"></highlight></codeline>
<codeline lineno="120"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MAIN_1gab1f5a6e0be37aa3b0bed376508c990d4" kindref="member" tooltip="Set the default NetCDF file extension to &amp;#39;nc&amp;#39; for output files.">dsproc_use_nc_extension</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="121"><highlight class="normal"></highlight></codeline>
<codeline lineno="122"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MAIN_1ga1679b444fc06ed04aa35b31d5d0b7aba" kindref="member" tooltip="Datasystem Process Main Function.">dsproc_main</ref>(</highlight></codeline>
<codeline lineno="123"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>argc,</highlight></codeline>
<codeline lineno="124"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>**argv,</highlight></codeline>
<codeline lineno="125"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__MAIN_1ga33494e92e6acc51e15df1336dfd42bad" kindref="member" tooltip="Process Models.">ProcModel</ref><sp/><sp/><sp/><sp/>proc_model,</highlight></codeline>
<codeline lineno="126"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*proc_version,</highlight></codeline>
<codeline lineno="127"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>nproc_names,</highlight></codeline>
<codeline lineno="128"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**proc_names);</highlight></codeline>
<codeline lineno="129"><highlight class="normal"></highlight></codeline>
<codeline lineno="130"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MAIN_1ga1442bece6007cb86d66a1abeddbb7ab3" kindref="member" tooltip="VAP/Ingest: Set hook function to call when a process is first initialized.">dsproc_set_init_process_hook</ref>(</highlight></codeline>
<codeline lineno="131"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>*(*_init_process_hook)(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">));</highlight></codeline>
<codeline lineno="132"><highlight class="normal"></highlight></codeline>
<codeline lineno="133"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MAIN_1ga26f3c0b904ac17d5b22558f1d3c8d652" kindref="member" tooltip="VAP/Ingest: Set hook function to call before a process finishes.">dsproc_set_finish_process_hook</ref>(</highlight></codeline>
<codeline lineno="134"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>(*finish_process_hook)(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>*user_data));</highlight></codeline>
<codeline lineno="135"><highlight class="normal"></highlight></codeline>
<codeline lineno="136"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MAIN_1ga200bd6330ec67173c80edc1be21b14da" kindref="member" tooltip="VAP: Set the main data processing function.">dsproc_set_process_data_hook</ref>(</highlight></codeline>
<codeline lineno="137"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>(*process_data)(</highlight></codeline>
<codeline lineno="138"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/>*user_data,</highlight></codeline>
<codeline lineno="139"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/>begin_date,</highlight></codeline>
<codeline lineno="140"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/>end_date,</highlight></codeline>
<codeline lineno="141"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/>*input_data));</highlight></codeline>
<codeline lineno="142"><highlight class="normal"></highlight></codeline>
<codeline lineno="143"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MAIN_1gad8ea17dd2aa81ac130f98d89d626e6fa" kindref="member" tooltip="VAP: Set hook function to call before data is retrieved.">dsproc_set_pre_retrieval_hook</ref>(</highlight></codeline>
<codeline lineno="144"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>(*pre_retrieval_hook)(</highlight></codeline>
<codeline lineno="145"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/>*user_data,</highlight></codeline>
<codeline lineno="146"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/>begin_date,</highlight></codeline>
<codeline lineno="147"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/>end_date));</highlight></codeline>
<codeline lineno="148"><highlight class="normal"></highlight></codeline>
<codeline lineno="149"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MAIN_1gaefbf3270ce1234ce72441e17f48a6501" kindref="member" tooltip="VAP: Set hook function to call after data is retrieved.">dsproc_set_post_retrieval_hook</ref>(</highlight></codeline>
<codeline lineno="150"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>(*post_retrieval_hook)(</highlight></codeline>
<codeline lineno="151"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/>*user_data,</highlight></codeline>
<codeline lineno="152"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/>begin_date,</highlight></codeline>
<codeline lineno="153"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/>end_date,</highlight></codeline>
<codeline lineno="154"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/>*ret_data));</highlight></codeline>
<codeline lineno="155"><highlight class="normal"></highlight></codeline>
<codeline lineno="156"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MAIN_1gaf0a2bd4827314d9ecd86f4a49439291f" kindref="member" tooltip="VAP: Set hook function to call before the data is transformed.">dsproc_set_pre_transform_hook</ref>(</highlight></codeline>
<codeline lineno="157"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>(*pre_transform_hook)(</highlight></codeline>
<codeline lineno="158"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/>*user_data,</highlight></codeline>
<codeline lineno="159"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/>begin_date,</highlight></codeline>
<codeline lineno="160"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/>end_date,</highlight></codeline>
<codeline lineno="161"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/>*ret_data));</highlight></codeline>
<codeline lineno="162"><highlight class="normal"></highlight></codeline>
<codeline lineno="163"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MAIN_1ga6af2754d1063d18450062875171217d6" kindref="member" tooltip="VAP: Set hook function to call after the data is transformed.">dsproc_set_post_transform_hook</ref>(</highlight></codeline>
<codeline lineno="164"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>(*post_transform_hook)(</highlight></codeline>
<codeline lineno="165"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/>*user_data,</highlight></codeline>
<codeline lineno="166"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/>begin_date,</highlight></codeline>
<codeline lineno="167"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/>end_date,</highlight></codeline>
<codeline lineno="168"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/>*trans_data));</highlight></codeline>
<codeline lineno="169"><highlight class="normal"></highlight></codeline>
<codeline lineno="170"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MAIN_1ga57db261858928ca170cecb234024b918" kindref="member" tooltip="VAP or Ingest: Set hook function to call after all data is stored.">dsproc_set_quicklook_hook</ref>(</highlight></codeline>
<codeline lineno="171"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>(*quicklook_hook)(</highlight></codeline>
<codeline lineno="172"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/>*user_data,</highlight></codeline>
<codeline lineno="173"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/>begin_date,</highlight></codeline>
<codeline lineno="174"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/>end_date));</highlight></codeline>
<codeline lineno="175"><highlight class="normal"></highlight></codeline>
<codeline lineno="176"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MAIN_1gaec68cde7e273a2d77b1eaa7a0c7343d1" kindref="member" tooltip="Ingest: Set the main file processing function.">dsproc_set_process_file_hook</ref>(</highlight></codeline>
<codeline lineno="177"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>(*process_file_hook)(</highlight></codeline>
<codeline lineno="178"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*user_data,</highlight></codeline>
<codeline lineno="179"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*input_dir,</highlight></codeline>
<codeline lineno="180"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*file_name));</highlight></codeline>
<codeline lineno="181"><highlight class="normal"></highlight></codeline>
<codeline lineno="182"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MAIN_1gaba4b338c3a4eeab6572007c19f5d3171" kindref="member" tooltip="Ingest: Set the custom QC function.">dsproc_set_custom_qc_hook</ref>(</highlight></codeline>
<codeline lineno="183"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>(*custom_qc_hook)(</highlight></codeline>
<codeline lineno="184"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*user_data,</highlight></codeline>
<codeline lineno="185"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ds_id,</highlight></codeline>
<codeline lineno="186"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/>*dataset));</highlight></codeline>
<codeline lineno="187"><highlight class="normal"></highlight></codeline>
<codeline lineno="188"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Station<sp/>view</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="189"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>dsproc_station_view_hook(</highlight></codeline>
<codeline lineno="190"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/>*user_data,</highlight></codeline>
<codeline lineno="191"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/>begin_date,</highlight></codeline>
<codeline lineno="192"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/>end_date,</highlight></codeline>
<codeline lineno="193"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/>*trans_data);</highlight></codeline>
<codeline lineno="194"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="195"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="196"><highlight class="normal"></highlight></codeline>
<codeline lineno="197"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="198"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="199"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_MESSAGES<sp/>Process<sp/>Messages</highlight></codeline>
<codeline lineno="200"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="201"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="202"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="203"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="204"><highlight class="comment"><sp/>*<sp/><sp/>Convenience<sp/>macro<sp/>for<sp/>the<sp/>dsproc_error()<sp/>function.</highlight></codeline>
<codeline lineno="205"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="206"><highlight class="comment"><sp/>*<sp/><sp/>Usage:<sp/>DSPROC_ERROR(const<sp/>char<sp/>*status,<sp/>const<sp/>char<sp/>*format,<sp/>...)</highlight></codeline>
<codeline lineno="207"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="208"><highlight class="comment"><sp/>*<sp/><sp/>See<sp/>printf<sp/>for<sp/>a<sp/>complete<sp/>description<sp/>of<sp/>the<sp/>format<sp/>string.</highlight></codeline>
<codeline lineno="209"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="210" refid="group__DSPROC__MESSAGES_1ga4d56e48d35f7598e3cf90c5e42477e45" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ERROR(status,<sp/>...)<sp/>\</highlight></codeline>
<codeline lineno="211"><highlight class="preprocessor">dsproc_error(__func__,<sp/>__FILE__,<sp/>__LINE__,<sp/>status,<sp/>__VA_ARGS__)</highlight></codeline>
<codeline lineno="212"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="213"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="214"><highlight class="comment"><sp/>*<sp/><sp/>Convenience<sp/>macro<sp/>for<sp/>the<sp/>dsproc_warning()<sp/>function.</highlight></codeline>
<codeline lineno="215"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="216"><highlight class="comment"><sp/>*<sp/><sp/>Usage:<sp/>DSPROC_WARNING(const<sp/>char<sp/>*format,<sp/>...)</highlight></codeline>
<codeline lineno="217"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="218"><highlight class="comment"><sp/>*<sp/><sp/>See<sp/>printf<sp/>for<sp/>a<sp/>complete<sp/>description<sp/>of<sp/>the<sp/>format<sp/>string.</highlight></codeline>
<codeline lineno="219"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="220" refid="group__DSPROC__MESSAGES_1gafe4fa57945d752a9707db1528afe36b2" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_WARNING(...)<sp/>\</highlight></codeline>
<codeline lineno="221"><highlight class="preprocessor">dsproc_warning(__func__,<sp/>__FILE__,<sp/>__LINE__,<sp/>__VA_ARGS__)</highlight></codeline>
<codeline lineno="222"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="223"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="224"><highlight class="comment"><sp/>*<sp/><sp/>Convenience<sp/>macro<sp/>for<sp/>the<sp/>dsproc_log()<sp/>function.</highlight></codeline>
<codeline lineno="225"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="226"><highlight class="comment"><sp/>*<sp/><sp/>Usage:<sp/>DSPROC_LOG(const<sp/>char<sp/>*format,<sp/>...)</highlight></codeline>
<codeline lineno="227"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="228"><highlight class="comment"><sp/>*<sp/><sp/>See<sp/>printf<sp/>for<sp/>a<sp/>complete<sp/>description<sp/>of<sp/>the<sp/>format<sp/>string.</highlight></codeline>
<codeline lineno="229"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="230" refid="group__DSPROC__MESSAGES_1gac829d7371ba57a86a7231f36f290f076" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_LOG(...)<sp/>\</highlight></codeline>
<codeline lineno="231"><highlight class="preprocessor">dsproc_log(__func__,<sp/>__FILE__,<sp/>__LINE__,<sp/>__VA_ARGS__)</highlight></codeline>
<codeline lineno="232"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="233"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="234"><highlight class="comment"><sp/>*<sp/><sp/>Convenience<sp/>macro<sp/>for<sp/>the<sp/>dsproc_bad_file_warning()<sp/>function.</highlight></codeline>
<codeline lineno="235"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="236"><highlight class="comment"><sp/>*<sp/><sp/>Usage:<sp/>DSPROC_BAD_FILE_WARNING(const<sp/>char<sp/>*file_name,<sp/>const<sp/>char<sp/>*format,<sp/>...)</highlight></codeline>
<codeline lineno="237"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="238"><highlight class="comment"><sp/>*<sp/><sp/>See<sp/>printf<sp/>for<sp/>a<sp/>complete<sp/>description<sp/>of<sp/>the<sp/>format<sp/>string.</highlight></codeline>
<codeline lineno="239"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="240" refid="group__DSPROC__MESSAGES_1gac2de3f51f457208c96c038960dd87d78" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_BAD_FILE_WARNING(file_name,<sp/>...)<sp/>\</highlight></codeline>
<codeline lineno="241"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>dsproc_bad_file_warning(__func__,<sp/>__FILE__,<sp/>__LINE__,<sp/>file_name,<sp/>__VA_ARGS__)</highlight></codeline>
<codeline lineno="242"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="243"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="244"><highlight class="comment"><sp/>*<sp/><sp/>Convenience<sp/>macro<sp/>for<sp/>the<sp/>dsproc_bad_line_warning()<sp/>function.</highlight></codeline>
<codeline lineno="245"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="246"><highlight class="comment"><sp/>*<sp/><sp/>Usage:<sp/>DSPROC_BAD_LINE_WARNING(const<sp/>char<sp/>*file_name,<sp/>int<sp/>line_num,<sp/>const<sp/>char<sp/>*format,<sp/>...)</highlight></codeline>
<codeline lineno="247"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="248"><highlight class="comment"><sp/>*<sp/><sp/>See<sp/>printf<sp/>for<sp/>a<sp/>complete<sp/>description<sp/>of<sp/>the<sp/>format<sp/>string.</highlight></codeline>
<codeline lineno="249"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="250" refid="group__DSPROC__MESSAGES_1gaaeaa49b7a832e651c3012030c4b0abc7" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_BAD_LINE_WARNING(file_name,<sp/>line_num,<sp/>...)<sp/>\</highlight></codeline>
<codeline lineno="251"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>dsproc_bad_line_warning(__func__,<sp/>__FILE__,<sp/>__LINE__,<sp/>file_name,<sp/>line_num,<sp/>__VA_ARGS__)</highlight></codeline>
<codeline lineno="252"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="253"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="254"><highlight class="comment"><sp/>*<sp/><sp/>Convenience<sp/>macro<sp/>for<sp/>the<sp/>dsproc_bad_record_warning()<sp/>function.</highlight></codeline>
<codeline lineno="255"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="256"><highlight class="comment"><sp/>*<sp/><sp/>Usage:<sp/>DSPROC_BAD_RECORD_WARNING(const<sp/>char<sp/>*file_name,<sp/>int<sp/>rec_num,<sp/>const<sp/>char<sp/>*format,<sp/>...)</highlight></codeline>
<codeline lineno="257"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="258"><highlight class="comment"><sp/>*<sp/><sp/>See<sp/>printf<sp/>for<sp/>a<sp/>complete<sp/>description<sp/>of<sp/>the<sp/>format<sp/>string.</highlight></codeline>
<codeline lineno="259"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="260" refid="group__DSPROC__MESSAGES_1ga878551804aeabdc8b8a75d9271bc92f7" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_BAD_RECORD_WARNING(file_name,<sp/>rec_num,<sp/>...)<sp/>\</highlight></codeline>
<codeline lineno="261"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>dsproc_bad_record_warning(__func__,<sp/>__FILE__,<sp/>__LINE__,<sp/>file_name,<sp/>rec_num,<sp/>__VA_ARGS__)</highlight></codeline>
<codeline lineno="262"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="263"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="264"><highlight class="comment"><sp/>*<sp/><sp/>Convenience<sp/>macro<sp/>for<sp/>the<sp/>dsproc_mentor_mail()<sp/>function.</highlight></codeline>
<codeline lineno="265"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="266"><highlight class="comment"><sp/>*<sp/><sp/>Usage:<sp/>DSPROC_MENTOR_MAIL(const<sp/>char<sp/>*format,<sp/>...)</highlight></codeline>
<codeline lineno="267"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="268"><highlight class="comment"><sp/>*<sp/><sp/>See<sp/>printf<sp/>for<sp/>a<sp/>complete<sp/>description<sp/>of<sp/>the<sp/>format<sp/>string.</highlight></codeline>
<codeline lineno="269"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="270" refid="group__DSPROC__MESSAGES_1gab86db00d79bf4487cb6f32ef3449b5cb" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_MENTOR_MAIL(...)<sp/>\</highlight></codeline>
<codeline lineno="271"><highlight class="preprocessor">dsproc_mentor_mail(__func__,<sp/>__FILE__,<sp/>__LINE__,<sp/>__VA_ARGS__)</highlight></codeline>
<codeline lineno="272"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="273"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="274"><highlight class="comment"><sp/>*<sp/><sp/>Convenience<sp/>macro<sp/>for<sp/>the<sp/>dsproc_debug()<sp/>function:<sp/>level<sp/>==<sp/>1.</highlight></codeline>
<codeline lineno="275"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="276"><highlight class="comment"><sp/>*<sp/><sp/>Usage:<sp/>DSPROC_DEBUG_LV1(const<sp/>char<sp/>*format,<sp/>...)</highlight></codeline>
<codeline lineno="277"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="278"><highlight class="comment"><sp/>*<sp/><sp/>See<sp/>printf<sp/>for<sp/>a<sp/>complete<sp/>description<sp/>of<sp/>the<sp/>format<sp/>string.</highlight></codeline>
<codeline lineno="279"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="280" refid="group__DSPROC__MESSAGES_1ga7577f8a24038144a7a09a19bd34cd632" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_DEBUG_LV1(...)<sp/>\</highlight></codeline>
<codeline lineno="281"><highlight class="preprocessor">if<sp/>(msngr_debug_level<sp/>||<sp/>msngr_provenance_level)<sp/>\</highlight></codeline>
<codeline lineno="282"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>dsproc_debug(__func__,<sp/>__FILE__,<sp/>__LINE__,<sp/>1,<sp/>__VA_ARGS__)</highlight></codeline>
<codeline lineno="283"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="284"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="285"><highlight class="comment"><sp/>*<sp/><sp/>Convenience<sp/>macro<sp/>for<sp/>the<sp/>dsproc_debug()<sp/>function:<sp/>level<sp/>==<sp/>2.</highlight></codeline>
<codeline lineno="286"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="287"><highlight class="comment"><sp/>*<sp/><sp/>Usage:<sp/>DSPROC_DEBUG_LV2(const<sp/>char<sp/>*format,<sp/>...)</highlight></codeline>
<codeline lineno="288"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="289"><highlight class="comment"><sp/>*<sp/><sp/>See<sp/>printf<sp/>for<sp/>a<sp/>complete<sp/>description<sp/>of<sp/>the<sp/>format<sp/>string.</highlight></codeline>
<codeline lineno="290"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="291" refid="group__DSPROC__MESSAGES_1ga34a46b217508dbe1c05ee9965b7a6cfa" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_DEBUG_LV2(...)<sp/>\</highlight></codeline>
<codeline lineno="292"><highlight class="preprocessor">if<sp/>(msngr_debug_level<sp/>||<sp/>msngr_provenance_level)<sp/>\</highlight></codeline>
<codeline lineno="293"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>dsproc_debug(__func__,<sp/>__FILE__,<sp/>__LINE__,<sp/>2,<sp/>__VA_ARGS__)</highlight></codeline>
<codeline lineno="294"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="295"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="296"><highlight class="comment"><sp/>*<sp/><sp/>Convenience<sp/>macro<sp/>for<sp/>the<sp/>dsproc_debug()<sp/>function:<sp/>level<sp/>==<sp/>3.</highlight></codeline>
<codeline lineno="297"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="298"><highlight class="comment"><sp/>*<sp/><sp/>Usage:<sp/>DSPROC_DEBUG_LV3(const<sp/>char<sp/>*format,<sp/>...)</highlight></codeline>
<codeline lineno="299"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="300"><highlight class="comment"><sp/>*<sp/><sp/>See<sp/>printf<sp/>for<sp/>a<sp/>complete<sp/>description<sp/>of<sp/>the<sp/>format<sp/>string.</highlight></codeline>
<codeline lineno="301"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="302" refid="group__DSPROC__MESSAGES_1ga2f78d317b8b0bdc63faaa7baf7093a92" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_DEBUG_LV3(...)<sp/>\</highlight></codeline>
<codeline lineno="303"><highlight class="preprocessor">if<sp/>(msngr_debug_level<sp/>||<sp/>msngr_provenance_level)<sp/>\</highlight></codeline>
<codeline lineno="304"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>dsproc_debug(__func__,<sp/>__FILE__,<sp/>__LINE__,<sp/>3,<sp/>__VA_ARGS__)</highlight></codeline>
<codeline lineno="305"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="306"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="307"><highlight class="comment"><sp/>*<sp/><sp/>Convenience<sp/>macro<sp/>for<sp/>the<sp/>dsproc_debug()<sp/>function:<sp/>level<sp/>==<sp/>4.</highlight></codeline>
<codeline lineno="308"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="309"><highlight class="comment"><sp/>*<sp/><sp/>Usage:<sp/>DSPROC_DEBUG_LV4(const<sp/>char<sp/>*format,<sp/>...)</highlight></codeline>
<codeline lineno="310"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="311"><highlight class="comment"><sp/>*<sp/><sp/>See<sp/>printf<sp/>for<sp/>a<sp/>complete<sp/>description<sp/>of<sp/>the<sp/>format<sp/>string.</highlight></codeline>
<codeline lineno="312"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="313" refid="group__DSPROC__MESSAGES_1gafbc22b7fd8809d72b13c9c370cb63a71" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_DEBUG_LV4(...)<sp/>\</highlight></codeline>
<codeline lineno="314"><highlight class="preprocessor">if<sp/>(msngr_debug_level<sp/>||<sp/>msngr_provenance_level)<sp/>\</highlight></codeline>
<codeline lineno="315"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>dsproc_debug(__func__,<sp/>__FILE__,<sp/>__LINE__,<sp/>4,<sp/>__VA_ARGS__)</highlight></codeline>
<codeline lineno="316"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="317"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="318"><highlight class="comment"><sp/>*<sp/><sp/>Convenience<sp/>macro<sp/>for<sp/>the<sp/>dsproc_debug()<sp/>function:<sp/>level<sp/>==<sp/>5.</highlight></codeline>
<codeline lineno="319"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="320"><highlight class="comment"><sp/>*<sp/><sp/>Usage:<sp/>DSPROC_DEBUG_LV5(const<sp/>char<sp/>*format,<sp/>...)</highlight></codeline>
<codeline lineno="321"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="322"><highlight class="comment"><sp/>*<sp/><sp/>See<sp/>printf<sp/>for<sp/>a<sp/>complete<sp/>description<sp/>of<sp/>the<sp/>format<sp/>string.</highlight></codeline>
<codeline lineno="323"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="324" refid="group__DSPROC__MESSAGES_1ga8f315c697d27c48356918c1795ec6e2c" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_DEBUG_LV5(...)<sp/>\</highlight></codeline>
<codeline lineno="325"><highlight class="preprocessor">if<sp/>(msngr_debug_level<sp/>||<sp/>msngr_provenance_level)<sp/>\</highlight></codeline>
<codeline lineno="326"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>dsproc_debug(__func__,<sp/>__FILE__,<sp/>__LINE__,<sp/>5,<sp/>__VA_ARGS__)</highlight></codeline>
<codeline lineno="327"><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="328"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MESSAGES_1ga9cd7e5684665965697b02862b47b57e7" kindref="member" tooltip="Get the current debug level.">dsproc_get_debug_level</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="329"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="330"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="331"><highlight class="normal"></highlight></codeline>
<codeline lineno="332"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="333"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="334"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_INFO<sp/>Process<sp/>Information</highlight></codeline>
<codeline lineno="335"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="336"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="337"><highlight class="normal"></highlight></codeline>
<codeline lineno="338"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__DSPROC__INFO_1ga78be2bbf2b8651efb06921b1df4f539e" kindref="member" tooltip="Get the process site.">dsproc_get_site</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="339"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__DSPROC__INFO_1gaa1e4c8e971e35ae8aec470c83a4234e0" kindref="member" tooltip="Get the process facility.">dsproc_get_facility</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="340"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__DSPROC__INFO_1ga59224e5b61203d5deffcd2ce3885c541" kindref="member" tooltip="Get the process name.">dsproc_get_name</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="341"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="342"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="343"><highlight class="normal"></highlight></codeline>
<codeline lineno="344"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="345"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="346"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_CONTROL<sp/>Process<sp/>Control</highlight></codeline>
<codeline lineno="347"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="348"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="349"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="350"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="351"><highlight class="comment"><sp/>*<sp/><sp/>Convenience<sp/>macro<sp/>for<sp/>the<sp/>dsproc_abort()<sp/>function.</highlight></codeline>
<codeline lineno="352"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="353"><highlight class="comment"><sp/>*<sp/><sp/>Usage:<sp/>DSPROC_ABORT(const<sp/>char<sp/>*status,<sp/>const<sp/>char<sp/>*format,<sp/>...)</highlight></codeline>
<codeline lineno="354"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="355"><highlight class="comment"><sp/>*<sp/><sp/>See<sp/>printf<sp/>for<sp/>a<sp/>complete<sp/>description<sp/>of<sp/>the<sp/>format<sp/>string.</highlight></codeline>
<codeline lineno="356"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="357" refid="group__DSPROC__CONTROL_1gad316ac8a8dc7eb58cdc9e15edbbf9cb4" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ABORT(status,<sp/>...)<sp/>\</highlight></codeline>
<codeline lineno="358"><highlight class="preprocessor">dsproc_abort(__func__,<sp/>__FILE__,<sp/>__LINE__,<sp/>status,<sp/>__VA_ARGS__)</highlight></codeline>
<codeline lineno="359"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="360"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="361"><highlight class="comment"><sp/>*<sp/><sp/>Log<sp/>File<sp/>Intervals.</highlight></codeline>
<codeline lineno="362"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="363" refid="group__DSPROC__CONTROL_1gaae8df92fad9018dec361ef5ada66c667" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">enum</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="364"><highlight class="normal"></highlight></codeline>
<codeline lineno="365" refid="group__DSPROC__CONTROL_1ggaae8df92fad9018dec361ef5ada66c667a01975612e16c9cd4b610f8b267009eaa" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CONTROL_1ggaae8df92fad9018dec361ef5ada66c667a01975612e16c9cd4b610f8b267009eaa" kindref="member" tooltip="create monthly log files">LOG_MONTHLY</ref><sp/>=<sp/>0,<sp/></highlight><highlight class="comment">/**&lt;<sp/>create<sp/>monthly<sp/>log<sp/>files<sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="366" refid="group__DSPROC__CONTROL_1ggaae8df92fad9018dec361ef5ada66c667ab9a5ffa8dfb1129ed74b12ace9ec0955" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CONTROL_1ggaae8df92fad9018dec361ef5ada66c667ab9a5ffa8dfb1129ed74b12ace9ec0955" kindref="member" tooltip="create daily log files">LOG_DAILY</ref><sp/><sp/><sp/>=<sp/>1,<sp/></highlight><highlight class="comment">/**&lt;<sp/>create<sp/>daily<sp/>log<sp/>files<sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="367" refid="group__DSPROC__CONTROL_1ggaae8df92fad9018dec361ef5ada66c667a0a7bd1fb7b0bd92fc919bf24c583cf48" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CONTROL_1ggaae8df92fad9018dec361ef5ada66c667a0a7bd1fb7b0bd92fc919bf24c583cf48" kindref="member" tooltip="create one log file per run">LOG_RUN</ref><sp/><sp/><sp/><sp/><sp/>=<sp/>2,<sp/></highlight><highlight class="comment">/**&lt;<sp/>create<sp/>one<sp/>log<sp/>file<sp/>per<sp/>run<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="368"><highlight class="normal"></highlight></codeline>
<codeline lineno="369"><highlight class="normal">}<sp/><ref refid="group__DSPROC__CONTROL_1gaae8df92fad9018dec361ef5ada66c667" kindref="member" tooltip="Log File Intervals.">LogInterval</ref>;</highlight></codeline>
<codeline lineno="370"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="371"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="372"><highlight class="comment"><sp/>*<sp/><sp/>Output<sp/>File<sp/>Splitting<sp/>Mode.</highlight></codeline>
<codeline lineno="373"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="374" refid="group__DSPROC__CONTROL_1gaa84661e0fcef11e4b346bc7ed122eb3f" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">enum</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="375"><highlight class="normal"></highlight></codeline>
<codeline lineno="376" refid="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3faae7d04a5dec790ac8cf738dfffd45e80" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3faae7d04a5dec790ac8cf738dfffd45e80" kindref="member" tooltip="Always create a new file when data is stored.">SPLIT_ON_STORE</ref><sp/><sp/>=<sp/>0,<sp/></highlight><highlight class="comment">/**&lt;<sp/>Always<sp/>create<sp/>a<sp/>new<sp/>file<sp/>when<sp/>data<sp/>is<sp/>stored.<sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="377"><highlight class="normal"></highlight></codeline>
<codeline lineno="378" refid="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3faf50477354748ac4aaeb744945ea81004" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3faf50477354748ac4aaeb744945ea81004" kindref="member" tooltip="Split start is the hour of the day for the first split [0-23], and split interval is in hours...">SPLIT_ON_HOURS</ref><sp/><sp/>=<sp/>1,<sp/></highlight><highlight class="comment">/**&lt;<sp/>Split<sp/>start<sp/>is<sp/>the<sp/>hour<sp/>of<sp/>the<sp/>day<sp/>for<sp/>the<sp/>first</highlight></codeline>
<codeline lineno="379"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>split<sp/>[0-23],<sp/>and<sp/>split<sp/>interval<sp/>is<sp/>in<sp/>hours.<sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="380"><highlight class="normal"></highlight></codeline>
<codeline lineno="381" refid="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3fa01e320cd708e4f7a134484a56bb2c904" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3fa01e320cd708e4f7a134484a56bb2c904" kindref="member" tooltip="Split start is the day of the month for the first split [1-31], and split interval is in days...">SPLIT_ON_DAYS</ref><sp/><sp/><sp/>=<sp/>2,<sp/></highlight><highlight class="comment">/**&lt;<sp/>Split<sp/>start<sp/>is<sp/>the<sp/>day<sp/>of<sp/>the<sp/>month<sp/>for<sp/>the<sp/>first</highlight></codeline>
<codeline lineno="382"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>split<sp/>[1-31],<sp/>and<sp/>split<sp/>interval<sp/>is<sp/>in<sp/>days.<sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="383"><highlight class="normal"></highlight></codeline>
<codeline lineno="384" refid="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3fa2f01a9e9ab78c303b4731007e47fadec" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3fa2f01a9e9ab78c303b4731007e47fadec" kindref="member" tooltip="Split start is the month of the year for the first split [1-12], and split interval is in months...">SPLIT_ON_MONTHS</ref><sp/>=<sp/>3,<sp/></highlight><highlight class="comment">/**&lt;<sp/>Split<sp/>start<sp/>is<sp/>the<sp/>month<sp/>of<sp/>the<sp/>year<sp/>for<sp/>the<sp/>first</highlight></codeline>
<codeline lineno="385"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>split<sp/>[1-12],<sp/>and<sp/>split<sp/>interval<sp/>is<sp/>in<sp/>months.<sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="386"><highlight class="normal"></highlight></codeline>
<codeline lineno="387" refid="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3fab47e3d9cfbc682f27a7d48144fcf420c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CONTROL_1ggaa84661e0fcef11e4b346bc7ed122eb3fab47e3d9cfbc682f27a7d48144fcf420c" kindref="member" tooltip="Always append output to the previous file unless otherwise specified in the call to dsproc_store_data...">SPLIT_NONE</ref><sp/><sp/><sp/><sp/><sp/><sp/>=<sp/>4<sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>Always<sp/>append<sp/>output<sp/>to<sp/>the<sp/>previous<sp/>file</highlight></codeline>
<codeline lineno="388"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>unless<sp/>otherwise<sp/>specified<sp/>in<sp/>the<sp/>call<sp/>to</highlight></codeline>
<codeline lineno="389"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>dsproc_store_dataset.<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="390"><highlight class="normal"></highlight></codeline>
<codeline lineno="391"><highlight class="normal">}<sp/><ref refid="group__DSPROC__CONTROL_1gaa84661e0fcef11e4b346bc7ed122eb3f" kindref="member" tooltip="Output File Splitting Mode.">SplitMode</ref>;</highlight></codeline>
<codeline lineno="392"><highlight class="normal"></highlight></codeline>
<codeline lineno="393"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CONTROL_1ga69a77c7be874fd5599465d297ad8ec5f" kindref="member" tooltip="Set the file splitting mode for output files.">dsproc_set_datastream_split_mode</ref>(</highlight></codeline>
<codeline lineno="394"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ds_id,</highlight></codeline>
<codeline lineno="395"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CONTROL_1gaa84661e0fcef11e4b346bc7ed122eb3f" kindref="member" tooltip="Output File Splitting Mode.">SplitMode</ref><sp/>split_mode,</highlight></codeline>
<codeline lineno="396"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/>split_start,</highlight></codeline>
<codeline lineno="397"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/>split_interval);</highlight></codeline>
<codeline lineno="398"><highlight class="normal"></highlight></codeline>
<codeline lineno="399"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CONTROL_1gafed0b2eb02002b05e8d0df38a32aa1a5" kindref="member" tooltip="Set Log file interval.">dsproc_set_log_interval</ref>(<ref refid="group__DSPROC__CONTROL_1gaae8df92fad9018dec361ef5ada66c667" kindref="member" tooltip="Log File Intervals.">LogInterval</ref><sp/>interval,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>use_begin_time);</highlight></codeline>
<codeline lineno="400"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CONTROL_1ga3d3f8a373ea636fa3fb22c0ac127bb02" kindref="member" tooltip="Set the offset to apply to the processing interval.">dsproc_set_processing_interval_offset</ref>(time_t<sp/>offset);</highlight></codeline>
<codeline lineno="401"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CONTROL_1gab6c7ecbeae2d47214316bff7d17af925" kindref="member" tooltip="Set the global transformation QC rollup flag.">dsproc_set_trans_qc_rollup_flag</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>flag);</highlight></codeline>
<codeline lineno="402"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="403"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="404"><highlight class="normal"></highlight></codeline>
<codeline lineno="405"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="406"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="407"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_DATASTREAM<sp/>DataStreams</highlight></codeline>
<codeline lineno="408"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="409"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="410"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="411"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="412"><highlight class="comment"><sp/>*<sp/><sp/>DataStream<sp/>Roles</highlight></codeline>
<codeline lineno="413"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="414" refid="group__DSPROC__DATASTREAM_1ga15b890c351c132e694a5ead0c6a413da" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">enum</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="415"><highlight class="normal"></highlight></codeline>
<codeline lineno="416" refid="group__DSPROC__DATASTREAM_1gga15b890c351c132e694a5ead0c6a413daa6f20dd563fa70b31ad1c06c210b74af3" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASTREAM_1gga15b890c351c132e694a5ead0c6a413daa6f20dd563fa70b31ad1c06c210b74af3" kindref="member" tooltip="input datastream">DSR_INPUT</ref><sp/><sp/>=<sp/><sp/>1,<sp/></highlight><highlight class="comment">/**&lt;<sp/>input<sp/>datastream<sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="417" refid="group__DSPROC__DATASTREAM_1gga15b890c351c132e694a5ead0c6a413daa65007e1eac434ec827bf3219392a1954" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASTREAM_1gga15b890c351c132e694a5ead0c6a413daa65007e1eac434ec827bf3219392a1954" kindref="member" tooltip="output datastream">DSR_OUTPUT</ref><sp/>=<sp/><sp/>2<sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>output<sp/>datastream<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="418"><highlight class="normal"></highlight></codeline>
<codeline lineno="419"><highlight class="normal">}<sp/><ref refid="group__DSPROC__DATASTREAM_1ga15b890c351c132e694a5ead0c6a413da" kindref="member" tooltip="DataStream Roles.">DSRole</ref>;</highlight></codeline>
<codeline lineno="420"><highlight class="normal"></highlight></codeline>
<codeline lineno="421"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASTREAM_1ga9abd018709fe33b3105bc88fa1987c96" kindref="member" tooltip="Get the ID of a datastream.">dsproc_get_datastream_id</ref>(</highlight></codeline>
<codeline lineno="422"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*site,</highlight></codeline>
<codeline lineno="423"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*facility,</highlight></codeline>
<codeline lineno="424"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*dsc_name,</highlight></codeline>
<codeline lineno="425"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*dsc_level,</highlight></codeline>
<codeline lineno="426"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASTREAM_1ga15b890c351c132e694a5ead0c6a413da" kindref="member" tooltip="DataStream Roles.">DSRole</ref><sp/><sp/><sp/><sp/><sp/><sp/>role);</highlight></codeline>
<codeline lineno="427"><highlight class="normal"></highlight></codeline>
<codeline lineno="428"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASTREAM_1gadb5c417cc3a0f80fce823f2454c8a2ca" kindref="member" tooltip="Get the ID of an input datastream.">dsproc_get_input_datastream_id</ref>(</highlight></codeline>
<codeline lineno="429"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*dsc_name,</highlight></codeline>
<codeline lineno="430"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*dsc_level);</highlight></codeline>
<codeline lineno="431"><highlight class="normal"></highlight></codeline>
<codeline lineno="432"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASTREAM_1ga89806725d9b5385df3e780ba120e7f63" kindref="member" tooltip="Get the IDs of all input datastreams.">dsproc_get_input_datastream_ids</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>**ids);</highlight></codeline>
<codeline lineno="433"><highlight class="normal"></highlight></codeline>
<codeline lineno="434"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASTREAM_1gaea7fc1c2a2ccf3e204a81233a605d432" kindref="member" tooltip="Get the ID of an output datastream.">dsproc_get_output_datastream_id</ref>(</highlight></codeline>
<codeline lineno="435"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*dsc_name,</highlight></codeline>
<codeline lineno="436"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*dsc_level);</highlight></codeline>
<codeline lineno="437"><highlight class="normal"></highlight></codeline>
<codeline lineno="438"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASTREAM_1ga232c0fb35aa38daad224c10b7e5204f2" kindref="member" tooltip="Get the IDs of all output datastreams.">dsproc_get_output_datastream_ids</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>**ids);</highlight></codeline>
<codeline lineno="439"><highlight class="normal"></highlight></codeline>
<codeline lineno="440"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__DSPROC__DATASTREAM_1gafdd0388c2c76cf124a8be784c69a7839" kindref="member" tooltip="Returns the fully qualified datastream name.">dsproc_datastream_name</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ds_id);</highlight></codeline>
<codeline lineno="441"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__DSPROC__DATASTREAM_1ga53991f183de71e533f67675b3656e466" kindref="member" tooltip="Returns the datastream site.">dsproc_datastream_site</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ds_id);</highlight></codeline>
<codeline lineno="442"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__DSPROC__DATASTREAM_1ga14e620670ed5e6f3d39ab7c9b11fa94a" kindref="member" tooltip="Returns the datastream facility.">dsproc_datastream_facility</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ds_id);</highlight></codeline>
<codeline lineno="443"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__DSPROC__DATASTREAM_1gaa599c5528b8b1525353ee0e948cb1831" kindref="member" tooltip="Returns the datastream class name.">dsproc_datastream_class_name</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ds_id);</highlight></codeline>
<codeline lineno="444"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__DSPROC__DATASTREAM_1ga9ebd4a259caddd61a441330738ee79d5" kindref="member" tooltip="Returns the datastream class level.">dsproc_datastream_class_level</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ds_id);</highlight></codeline>
<codeline lineno="445"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__DSPROC__DATASTREAM_1ga18725926d3880714f2be6fb7f3cb9730" kindref="member" tooltip="Returns the path to the datastream directory.">dsproc_datastream_path</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ds_id);</highlight></codeline>
<codeline lineno="446"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="447"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="448"><highlight class="normal"></highlight></codeline>
<codeline lineno="449"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="450"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="451"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_DATASTREAM_FILES<sp/>DataStream<sp/>Files</highlight></codeline>
<codeline lineno="452"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="453"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="454"><highlight class="normal"></highlight></codeline>
<codeline lineno="455"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASTREAM__FILES_1ga5980db27315e22c0857fc0e6571545b5" kindref="member" tooltip="Add datastream file patterns.">dsproc_add_datastream_file_patterns</ref>(</highlight></codeline>
<codeline lineno="456"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ds_id,</highlight></codeline>
<codeline lineno="457"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>npatterns,</highlight></codeline>
<codeline lineno="458"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**patterns,</highlight></codeline>
<codeline lineno="459"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ignore_case);</highlight></codeline>
<codeline lineno="460"><highlight class="normal"></highlight></codeline>
<codeline lineno="461"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASTREAM__FILES_1ga38197c4f0a8902eba75886b089f4df88" kindref="member" tooltip="Find all files in a datastream directory for a specified time range.">dsproc_find_datastream_files</ref>(</highlight></codeline>
<codeline lineno="462"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ds_id,</highlight></codeline>
<codeline lineno="463"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/>begin_time,</highlight></codeline>
<codeline lineno="464"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/>end_time,</highlight></codeline>
<codeline lineno="465"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>***file_list);</highlight></codeline>
<codeline lineno="466"><highlight class="normal"></highlight></codeline>
<codeline lineno="467"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASTREAM__FILES_1ga043642c0bd5c7b6f2063d1b0893c5616" kindref="member" tooltip="Free a null terminated list of file names.">dsproc_free_file_list</ref>(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**file_list);</highlight></codeline>
<codeline lineno="468"><highlight class="normal"></highlight></codeline>
<codeline lineno="469"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASTREAM__FILES_1gaab26e606fd855641b468216997952ef5" kindref="member" tooltip="Get the list of files in a datastream directory.">dsproc_get_datastream_files</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ds_id,<sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>***file_list);</highlight></codeline>
<codeline lineno="470"><highlight class="normal"></highlight></codeline>
<codeline lineno="471"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASTREAM__FILES_1ga9262725cb3dbd7d2d2246547c4119389" kindref="member" tooltip="Set the path to the datastream directory.">dsproc_set_datastream_path</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ds_id,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*path);</highlight></codeline>
<codeline lineno="472"><highlight class="normal"></highlight></codeline>
<codeline lineno="473"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASTREAM__FILES_1ga1619dbe09b203cffba72038b11545e93" kindref="member" tooltip="Set the file name compare function used to sort the file list.">dsproc_set_file_name_compare_function</ref>(</highlight></codeline>
<codeline lineno="474"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/>ds_id,</highlight></codeline>
<codeline lineno="475"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/>(*</highlight><highlight class="keyword">function</highlight><highlight class="normal">)(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>*,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>*));</highlight></codeline>
<codeline lineno="476"><highlight class="normal"></highlight></codeline>
<codeline lineno="477"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASTREAM__FILES_1gad1eec8889d3dbcc6cc864ec38c1b46ae" kindref="member" tooltip="Set the function used to parse the time from a file name.">dsproc_set_file_name_time_function</ref>(</highlight></codeline>
<codeline lineno="478"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>ds_id,</highlight></codeline>
<codeline lineno="479"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/>(*</highlight><highlight class="keyword">function</highlight><highlight class="normal">)(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*));</highlight></codeline>
<codeline lineno="480"><highlight class="normal"></highlight></codeline>
<codeline lineno="481"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASTREAM__FILES_1gad0177e815219c5bb5c488fbf61814532" kindref="member" tooltip="Set the datastream file extension.">dsproc_set_datastream_file_extension</ref>(</highlight></codeline>
<codeline lineno="482"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ds_id,</highlight></codeline>
<codeline lineno="483"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*extension);</highlight></codeline>
<codeline lineno="484"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="485"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="486"><highlight class="normal"></highlight></codeline>
<codeline lineno="487"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="488"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="489"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_DATASET<sp/>Datasets</highlight></codeline>
<codeline lineno="490"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="491"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="492"><highlight class="normal"></highlight></codeline>
<codeline lineno="493"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__DSPROC__DATASET_1ga18e8f1cea61bb03aec7a4445bb5b4b1c" kindref="member" tooltip="Returns the dataset name.">dsproc_dataset_name</ref>(<ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/>*dataset);</highlight></codeline>
<codeline lineno="494"><highlight class="normal"></highlight></codeline>
<codeline lineno="495"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__DSPROC__DATASET_1ga8952211422f6cf2acc4f7e1d6e6193f7" kindref="member" tooltip="Get the DOD version of a dataset.">dsproc_get_dataset_version</ref>(</highlight></codeline>
<codeline lineno="496"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/>*dataset,</highlight></codeline>
<codeline lineno="497"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>*major,</highlight></codeline>
<codeline lineno="498"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>*minor,</highlight></codeline>
<codeline lineno="499"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>*micro);</highlight></codeline>
<codeline lineno="500"><highlight class="normal"></highlight></codeline>
<codeline lineno="501"><highlight class="normal"><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/>*<ref refid="group__DSPROC__DATASET_1gaabac86e3618c6373aadecdf05b0cc333" kindref="member" tooltip="Get an output dataset.">dsproc_get_output_dataset</ref>(</highlight></codeline>
<codeline lineno="502"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ds_id,</highlight></codeline>
<codeline lineno="503"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>obs_index);</highlight></codeline>
<codeline lineno="504"><highlight class="normal"></highlight></codeline>
<codeline lineno="505"><highlight class="normal"><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/>*<ref refid="group__DSPROC__DATASET_1ga4e2820c02adab94b868f09bf9a183b61" kindref="member" tooltip="Get a retrieved dataset.">dsproc_get_retrieved_dataset</ref>(</highlight></codeline>
<codeline lineno="506"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ds_id,</highlight></codeline>
<codeline lineno="507"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>obs_index);</highlight></codeline>
<codeline lineno="508"><highlight class="normal"></highlight></codeline>
<codeline lineno="509"><highlight class="normal"><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/>*<ref refid="group__DSPROC__DATASET_1ga6de65041cb2326e6864bd1afdc3727d0" kindref="member" tooltip="Get a transformed dataset.">dsproc_get_transformed_dataset</ref>(</highlight></codeline>
<codeline lineno="510"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*coordsys_name,</highlight></codeline>
<codeline lineno="511"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ds_id,</highlight></codeline>
<codeline lineno="512"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obs_index);</highlight></codeline>
<codeline lineno="513"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="514"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="515"><highlight class="normal"></highlight></codeline>
<codeline lineno="516"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="517"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="518"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_DATASET_DIMS<sp/>Dataset<sp/>Dimensions</highlight></codeline>
<codeline lineno="519"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="520"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="521"><highlight class="normal"></highlight></codeline>
<codeline lineno="522"><highlight class="normal"><ref refid="structCDSDim" kindref="compound" external="libcds3.tag">CDSDim</ref><sp/>*<ref refid="group__DSPROC__DATASET__DIMS_1gac98df80bddc547bf1e75146af4a6eead" kindref="member" tooltip="Get a dimension from a dataset.">dsproc_get_dim</ref>(</highlight></codeline>
<codeline lineno="523"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/>*dataset,</highlight></codeline>
<codeline lineno="524"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name);</highlight></codeline>
<codeline lineno="525"><highlight class="normal"></highlight></codeline>
<codeline lineno="526"><highlight class="normal"></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><ref refid="group__DSPROC__DATASET__DIMS_1gae8c13d0cffc550c77109af8c4e1ff1e4" kindref="member" tooltip="Get the length of a dimension in a dataset.">dsproc_get_dim_length</ref>(</highlight></codeline>
<codeline lineno="527"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/>*dataset,</highlight></codeline>
<codeline lineno="528"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name);</highlight></codeline>
<codeline lineno="529"><highlight class="normal"></highlight></codeline>
<codeline lineno="530"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASET__DIMS_1gae1ee4142e877cd749e51cefe7f07517c" kindref="member" tooltip="Set the length of a dimension in a dataset.">dsproc_set_dim_length</ref>(</highlight></codeline>
<codeline lineno="531"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/><sp/>*dataset,</highlight></codeline>
<codeline lineno="532"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*name,</highlight></codeline>
<codeline lineno="533"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>length);</highlight></codeline>
<codeline lineno="534"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="535"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="536"><highlight class="normal"></highlight></codeline>
<codeline lineno="537"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="538"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="539"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_DATASET_ATTS<sp/>Dataset<sp/>Attributes</highlight></codeline>
<codeline lineno="540"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="541"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="542"><highlight class="normal"></highlight></codeline>
<codeline lineno="543"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASET__ATTS_1ga8812ccfea7445e519cb75d1a1fedf168" kindref="member" tooltip="Change an attribute for a dataset or variable.">dsproc_change_att</ref>(</highlight></codeline>
<codeline lineno="544"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*parent,</highlight></codeline>
<codeline lineno="545"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>overwrite,</highlight></codeline>
<codeline lineno="546"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*name,</highlight></codeline>
<codeline lineno="547"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref><sp/><sp/>type,</highlight></codeline>
<codeline lineno="548"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>length,</highlight></codeline>
<codeline lineno="549"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*value);</highlight></codeline>
<codeline lineno="550"><highlight class="normal"></highlight></codeline>
<codeline lineno="551"><highlight class="normal"><ref refid="structCDSAtt" kindref="compound" external="libcds3.tag">CDSAtt</ref><sp/>*<ref refid="group__DSPROC__DATASET__ATTS_1gacd1888cfaa96859393528bea36107f18" kindref="member" tooltip="Get an attribute from a dataset or variable.">dsproc_get_att</ref>(</highlight></codeline>
<codeline lineno="552"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*parent,</highlight></codeline>
<codeline lineno="553"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*name);</highlight></codeline>
<codeline lineno="554"><highlight class="normal"></highlight></codeline>
<codeline lineno="555"><highlight class="normal"></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="group__DSPROC__DATASET__ATTS_1gae2c23485559efaf0bc8e8eca5e3c7c29" kindref="member" tooltip="Get a copy of an attribute value from a dataset or variable.">dsproc_get_att_text</ref>(</highlight></codeline>
<codeline lineno="556"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*parent,</highlight></codeline>
<codeline lineno="557"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name,</highlight></codeline>
<codeline lineno="558"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/>*length,</highlight></codeline>
<codeline lineno="559"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*value);</highlight></codeline>
<codeline lineno="560"><highlight class="normal"></highlight></codeline>
<codeline lineno="561"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="group__DSPROC__DATASET__ATTS_1ga21e557d42a26d2ec08125ab6495f2c57" kindref="member" tooltip="Get a copy of an attribute value from a dataset or variable.">dsproc_get_att_value</ref>(</highlight></codeline>
<codeline lineno="562"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*parent,</highlight></codeline>
<codeline lineno="563"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*name,</highlight></codeline>
<codeline lineno="564"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref><sp/><sp/>type,</highlight></codeline>
<codeline lineno="565"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>*length,</highlight></codeline>
<codeline lineno="566"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*value);</highlight></codeline>
<codeline lineno="567"><highlight class="normal"></highlight></codeline>
<codeline lineno="568"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASET__ATTS_1ga2b29a654856f388bc16915f79afdde4a" kindref="member" tooltip="Set the value of an attribute in a dataset or variable.">dsproc_set_att</ref>(</highlight></codeline>
<codeline lineno="569"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*parent,</highlight></codeline>
<codeline lineno="570"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>overwrite,</highlight></codeline>
<codeline lineno="571"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*name,</highlight></codeline>
<codeline lineno="572"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref><sp/><sp/>type,</highlight></codeline>
<codeline lineno="573"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>length,</highlight></codeline>
<codeline lineno="574"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*value);</highlight></codeline>
<codeline lineno="575"><highlight class="normal"></highlight></codeline>
<codeline lineno="576"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASET__ATTS_1ga6bf6fa6839a206ca3b4ede3005b61610" kindref="member" tooltip="Set the value of an attribute in a dataset or variable.">dsproc_set_att_text</ref>(</highlight></codeline>
<codeline lineno="577"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*parent,</highlight></codeline>
<codeline lineno="578"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*name,</highlight></codeline>
<codeline lineno="579"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*format,<sp/>...);</highlight></codeline>
<codeline lineno="580"><highlight class="normal"></highlight></codeline>
<codeline lineno="581"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASET__ATTS_1ga53e952ce6597349408ad8ef955a68536" kindref="member" tooltip="Set the value of an attribute in a dataset or variable.">dsproc_set_att_value</ref>(</highlight></codeline>
<codeline lineno="582"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*parent,</highlight></codeline>
<codeline lineno="583"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*name,</highlight></codeline>
<codeline lineno="584"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref><sp/><sp/>type,</highlight></codeline>
<codeline lineno="585"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>length,</highlight></codeline>
<codeline lineno="586"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*value);</highlight></codeline>
<codeline lineno="587"><highlight class="normal"></highlight></codeline>
<codeline lineno="588"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASET__ATTS_1gab4c9352a79442eadea763bcb83cd4fbc" kindref="member" tooltip="Set the value of an attribute if the current value is NULL.">dsproc_set_att_value_if_null</ref>(</highlight></codeline>
<codeline lineno="589"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*parent,</highlight></codeline>
<codeline lineno="590"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*name,</highlight></codeline>
<codeline lineno="591"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref><sp/><sp/>type,</highlight></codeline>
<codeline lineno="592"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>length,</highlight></codeline>
<codeline lineno="593"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*value);</highlight></codeline>
<codeline lineno="594"><highlight class="normal"></highlight></codeline>
<codeline lineno="595"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASET__ATTS_1ga93351ebc3ef9cc4bbead60064d9d3cd2" kindref="member" tooltip="Set the value of an attribute if the current value is NULL.">dsproc_set_att_text_if_null</ref>(</highlight></codeline>
<codeline lineno="596"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*parent,</highlight></codeline>
<codeline lineno="597"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*name,</highlight></codeline>
<codeline lineno="598"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*format,<sp/>...);</highlight></codeline>
<codeline lineno="599"><highlight class="normal"></highlight></codeline>
<codeline lineno="600"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASET__ATTS_1ga91020c7f2c2bd7475dea726cd7f6c22f" kindref="member" tooltip="Set the _ChunkSizes attribute value for a variable.">dsproc_set_var_chunksizes</ref>(</highlight></codeline>
<codeline lineno="601"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var,</highlight></codeline>
<codeline lineno="602"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/>*time_chunksize);</highlight></codeline>
<codeline lineno="603"><highlight class="normal"></highlight></codeline>
<codeline lineno="604"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASET__ATTS_1ga63b28fa56cee46ae9867844b0a9109fb" kindref="member" tooltip="Set the maximum size of a chunk to use when setting _ChunkSizes.">dsproc_set_max_chunksize</ref>(</highlight></codeline>
<codeline lineno="605"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>max_chunksize);</highlight></codeline>
<codeline lineno="606"><highlight class="normal"></highlight></codeline>
<codeline lineno="607"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASET__ATTS_1ga2e0617519fb3e5a2f3b5fbf72aaaa91a" kindref="member" tooltip="Set the values of all _ChunkSizes attributes that have not been defined.">dsproc_set_chunksizes</ref>(</highlight></codeline>
<codeline lineno="608"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/>*dataset,</highlight></codeline>
<codeline lineno="609"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_chunksize);</highlight></codeline>
<codeline lineno="610"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="611"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="612"><highlight class="normal"></highlight></codeline>
<codeline lineno="613"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="614"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="615"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_DATASET_VARS<sp/>Dataset<sp/>Variables</highlight></codeline>
<codeline lineno="616"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="617"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="618"><highlight class="normal"></highlight></codeline>
<codeline lineno="619"><highlight class="normal"><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*<ref refid="group__DSPROC__DATASET__VARS_1gabc56b2b7f10863176156903c6eb56c05" kindref="member" tooltip="Create a clone of an existing variable.">dsproc_clone_var</ref>(</highlight></codeline>
<codeline lineno="620"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*src_var,</highlight></codeline>
<codeline lineno="621"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/><sp/><sp/>*dataset,</highlight></codeline>
<codeline lineno="622"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*var_name,</highlight></codeline>
<codeline lineno="623"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref><sp/><sp/><sp/>data_type,</highlight></codeline>
<codeline lineno="624"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>**dim_names,</highlight></codeline>
<codeline lineno="625"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>copy_data);</highlight></codeline>
<codeline lineno="626"><highlight class="normal"></highlight></codeline>
<codeline lineno="627"><highlight class="normal"><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*<ref refid="group__DSPROC__DATASET__VARS_1gaebffd0072f26282bf16f89bba774d631" kindref="member" tooltip="Define a new variable in an existing dataset.">dsproc_define_var</ref>(</highlight></codeline>
<codeline lineno="628"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/><sp/>*dataset,</highlight></codeline>
<codeline lineno="629"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*name,</highlight></codeline>
<codeline lineno="630"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref><sp/><sp/>type,</highlight></codeline>
<codeline lineno="631"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ndims,</highlight></codeline>
<codeline lineno="632"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**dim_names,</highlight></codeline>
<codeline lineno="633"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*long_name,</highlight></codeline>
<codeline lineno="634"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*standard_name,</highlight></codeline>
<codeline lineno="635"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*units,</highlight></codeline>
<codeline lineno="636"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*valid_min,</highlight></codeline>
<codeline lineno="637"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*valid_max,</highlight></codeline>
<codeline lineno="638"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*missing_value,</highlight></codeline>
<codeline lineno="639"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*fill_value);</highlight></codeline>
<codeline lineno="640"><highlight class="normal"></highlight></codeline>
<codeline lineno="641"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASET__VARS_1gad13fe9382ae427af31283c118584ff1a" kindref="member" tooltip="Delete a variable from a dataset.">dsproc_delete_var</ref>(</highlight></codeline>
<codeline lineno="642"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var);</highlight></codeline>
<codeline lineno="643"><highlight class="normal"></highlight></codeline>
<codeline lineno="644"><highlight class="normal"><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*<ref refid="group__DSPROC__DATASET__VARS_1ga7ba0c594b24c7844a977f36c1e21794a" kindref="member" tooltip="Get the boundary variable for a coordinate variable.">dsproc_get_bounds_var</ref>(<ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*coord_var);</highlight></codeline>
<codeline lineno="645"><highlight class="normal"></highlight></codeline>
<codeline lineno="646"><highlight class="normal"><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*<ref refid="group__DSPROC__DATASET__VARS_1gabb4f3288de6ec982e12c02cbc78c0c64" kindref="member" tooltip="Get the coordinate variable for a variable&amp;#39;s dimension.">dsproc_get_coord_var</ref>(</highlight></codeline>
<codeline lineno="647"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var,</highlight></codeline>
<codeline lineno="648"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/>dim_index);</highlight></codeline>
<codeline lineno="649"><highlight class="normal"></highlight></codeline>
<codeline lineno="650"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASET__VARS_1gadc6e184c421faaf7b7fd7f81879fc9aa" kindref="member" tooltip="Get variables and companion QC variables from a dataset.">dsproc_get_dataset_vars</ref>(</highlight></codeline>
<codeline lineno="651"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/><sp/><sp/>*dataset,</highlight></codeline>
<codeline lineno="652"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>**var_names,</highlight></codeline>
<codeline lineno="653"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>required,</highlight></codeline>
<codeline lineno="654"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/><sp/><sp/><sp/><sp/>***vars,</highlight></codeline>
<codeline lineno="655"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/><sp/><sp/><sp/><sp/>***qc_vars,</highlight></codeline>
<codeline lineno="656"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/><sp/><sp/><sp/><sp/>***aqc_vars);</highlight></codeline>
<codeline lineno="657"><highlight class="normal"></highlight></codeline>
<codeline lineno="658"><highlight class="normal"><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*<ref refid="group__DSPROC__DATASET__VARS_1ga56d03dcc717fe57be7cedd2bd3cb71ab" kindref="member" tooltip="Get a companion metric variable for a variable.">dsproc_get_metric_var</ref>(</highlight></codeline>
<codeline lineno="659"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/><sp/><sp/><sp/><sp/>*var,</highlight></codeline>
<codeline lineno="660"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*metric);</highlight></codeline>
<codeline lineno="661"><highlight class="normal"></highlight></codeline>
<codeline lineno="662"><highlight class="normal"><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*<ref refid="group__DSPROC__DATASET__VARS_1ga6d879e4e5de4fb2d38310fd563e04d5f" kindref="member" tooltip="Get a variable from an output dataset.">dsproc_get_output_var</ref>(</highlight></codeline>
<codeline lineno="663"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ds_id,</highlight></codeline>
<codeline lineno="664"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*var_name,</highlight></codeline>
<codeline lineno="665"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obs_index);</highlight></codeline>
<codeline lineno="666"><highlight class="normal"></highlight></codeline>
<codeline lineno="667"><highlight class="normal"><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*<ref refid="group__DSPROC__DATASET__VARS_1gab1fe27abbd5132d22410c4921fcf2886" kindref="member" tooltip="Get the companion QC variable for a variable.">dsproc_get_qc_var</ref>(</highlight></codeline>
<codeline lineno="668"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var);</highlight></codeline>
<codeline lineno="669"><highlight class="normal"></highlight></codeline>
<codeline lineno="670"><highlight class="normal"><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*<ref refid="group__DSPROC__DATASET__VARS_1ga07136b68129cb3fd34737edbe55c39f1" kindref="member" tooltip="Get a primary variable from the retrieved data.">dsproc_get_retrieved_var</ref>(</highlight></codeline>
<codeline lineno="671"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*var_name,</highlight></codeline>
<codeline lineno="672"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obs_index);</highlight></codeline>
<codeline lineno="673"><highlight class="normal"></highlight></codeline>
<codeline lineno="674"><highlight class="normal"><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*<ref refid="group__DSPROC__DATASET__VARS_1ga098f1fc930b8f689fd8ff3180c728551" kindref="member" tooltip="Get a primary variable from the transformed data.">dsproc_get_transformed_var</ref>(</highlight></codeline>
<codeline lineno="675"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*var_name,</highlight></codeline>
<codeline lineno="676"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obs_index);</highlight></codeline>
<codeline lineno="677"><highlight class="normal"></highlight></codeline>
<codeline lineno="678"><highlight class="normal"><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*<ref refid="group__DSPROC__DATASET__VARS_1gaf5ba1ab76312be0804970c4e2a7668ad" kindref="member" tooltip="Get a variable from a transformation coordinate system.">dsproc_get_trans_coordsys_var</ref>(</highlight></codeline>
<codeline lineno="679"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*coordsys_name,</highlight></codeline>
<codeline lineno="680"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*var_name,</highlight></codeline>
<codeline lineno="681"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obs_index);</highlight></codeline>
<codeline lineno="682"><highlight class="normal"></highlight></codeline>
<codeline lineno="683"><highlight class="normal"><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*<ref refid="group__DSPROC__DATASET__VARS_1gaf4c9d39208a14ffe140ed2090ebec664" kindref="member" tooltip="Get a variable from a dataset.">dsproc_get_var</ref>(</highlight></codeline>
<codeline lineno="684"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/>*dataset,</highlight></codeline>
<codeline lineno="685"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name);</highlight></codeline>
<codeline lineno="686"><highlight class="normal"></highlight></codeline>
<codeline lineno="687"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__DSPROC__DATASET__VARS_1ga6970f06e47859df75ba4faaf65e4ac8c" kindref="member" tooltip="Returns the variable name.">dsproc_var_name</ref>(<ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var);</highlight></codeline>
<codeline lineno="688"><highlight class="normal"></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASET__VARS_1ga9471eea1afdf952003e77ebcb0c1bc90" kindref="member" tooltip="Returns the number of samples in a variable&amp;#39;s data array.">dsproc_var_sample_count</ref>(<ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var);</highlight></codeline>
<codeline lineno="689"><highlight class="normal"></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__DATASET__VARS_1gaa026f1f8af890c6ab0c904bf73417a85" kindref="member" tooltip="Returns the sample size of a variable.">dsproc_var_sample_size</ref>(<ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var);</highlight></codeline>
<codeline lineno="690"><highlight class="normal"></highlight></codeline>
<codeline lineno="691"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline>
<codeline lineno="692"><highlight class="comment"></highlight></codeline>
<codeline lineno="693"><highlight class="comment">Need<sp/>to<sp/>add:</highlight></codeline>
<codeline lineno="694"><highlight class="comment"></highlight></codeline>
<codeline lineno="695"><highlight class="comment">int<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>dsproc_var_is_unlimited(CDSVar<sp/>*var);</highlight></codeline>
<codeline lineno="696"><highlight class="comment">CDSGroup<sp/><sp/><sp/>*dsproc_var_parent(CDSVar<sp/>*var);</highlight></codeline>
<codeline lineno="697"><highlight class="comment">int<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>dsproc_var_shape(CDSVar<sp/>*var,<sp/>size_t<sp/>**lengths);</highlight></codeline>
<codeline lineno="698"><highlight class="comment"></highlight></codeline>
<codeline lineno="699"><highlight class="comment">*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="700"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="701"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="702"><highlight class="normal"></highlight></codeline>
<codeline lineno="703"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="704"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="705"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_VAR_DATA<sp/>Dataset<sp/>Variable<sp/>Data</highlight></codeline>
<codeline lineno="706"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="707"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="708"><highlight class="normal"></highlight></codeline>
<codeline lineno="709"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="group__DSPROC__VAR__DATA_1ga43f4b9f232a560a7168e61c4d186a028" kindref="member" tooltip="Allocate memory for a variable&amp;#39;s data array.">dsproc_alloc_var_data</ref>(</highlight></codeline>
<codeline lineno="710"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var,</highlight></codeline>
<codeline lineno="711"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/>sample_start,</highlight></codeline>
<codeline lineno="712"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/>sample_count);</highlight></codeline>
<codeline lineno="713"><highlight class="normal"></highlight></codeline>
<codeline lineno="714"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="group__DSPROC__VAR__DATA_1ga08261ceae44fc053db31787f99ea0baa" kindref="member" tooltip="Allocate memory for a variable&amp;#39;s data array.">dsproc_alloc_var_data_index</ref>(</highlight></codeline>
<codeline lineno="715"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var,</highlight></codeline>
<codeline lineno="716"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/>sample_start,</highlight></codeline>
<codeline lineno="717"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/>sample_count);</highlight></codeline>
<codeline lineno="718"><highlight class="normal"></highlight></codeline>
<codeline lineno="719"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="group__DSPROC__VAR__DATA_1ga483df35bc28c23e7181480b3903cd3ba" kindref="member" tooltip="Get a data index for a multi-dimensional variable.">dsproc_get_var_data_index</ref>(</highlight></codeline>
<codeline lineno="720"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var);</highlight></codeline>
<codeline lineno="721"><highlight class="normal"></highlight></codeline>
<codeline lineno="722"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="group__DSPROC__VAR__DATA_1ga645c2b91784901544d67555f8afb212d" kindref="member" tooltip="Get a copy of the data from a dataset variable.">dsproc_get_var_data</ref>(</highlight></codeline>
<codeline lineno="723"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*var,</highlight></codeline>
<codeline lineno="724"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref><sp/><sp/><sp/>type,</highlight></codeline>
<codeline lineno="725"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sample_start,</highlight></codeline>
<codeline lineno="726"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*sample_count,</highlight></codeline>
<codeline lineno="727"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*missing_value,</highlight></codeline>
<codeline lineno="728"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*data);</highlight></codeline>
<codeline lineno="729"><highlight class="normal"></highlight></codeline>
<codeline lineno="730"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__VAR__DATA_1gad51430bc5e0af5cc5c51c71f63596c18" kindref="member" tooltip="Get the missing values for a CDS Variable.">dsproc_get_var_missing_values</ref>(</highlight></codeline>
<codeline lineno="731"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/><sp/>*var,</highlight></codeline>
<codeline lineno="732"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/>**values);</highlight></codeline>
<codeline lineno="733"><highlight class="normal"></highlight></codeline>
<codeline lineno="734"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="group__DSPROC__VAR__DATA_1ga4c2d281daf21f681e8df443cf286dc23" kindref="member" tooltip="Initialize the data values for a dataset variable.">dsproc_init_var_data</ref>(</highlight></codeline>
<codeline lineno="735"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var,</highlight></codeline>
<codeline lineno="736"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/>sample_start,</highlight></codeline>
<codeline lineno="737"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/>sample_count,</highlight></codeline>
<codeline lineno="738"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/>use_missing);</highlight></codeline>
<codeline lineno="739"><highlight class="normal"></highlight></codeline>
<codeline lineno="740"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="group__DSPROC__VAR__DATA_1ga9edf6771602aa637394081656bdb9b97" kindref="member" tooltip="Initialize the data values for a dataset variable.">dsproc_init_var_data_index</ref>(</highlight></codeline>
<codeline lineno="741"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var,</highlight></codeline>
<codeline lineno="742"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/>sample_start,</highlight></codeline>
<codeline lineno="743"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/>sample_count,</highlight></codeline>
<codeline lineno="744"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/>use_missing);</highlight></codeline>
<codeline lineno="745"><highlight class="normal"></highlight></codeline>
<codeline lineno="746"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__VAR__DATA_1ga59ec83ab50ee27189783a0500b466118" kindref="member" tooltip="Set cell boundary data for all coordinate variables in a dataset.">dsproc_set_bounds_data</ref>(</highlight></codeline>
<codeline lineno="747"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/>*dataset,</highlight></codeline>
<codeline lineno="748"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/>sample_start,</highlight></codeline>
<codeline lineno="749"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/>sample_count);</highlight></codeline>
<codeline lineno="750"><highlight class="normal"></highlight></codeline>
<codeline lineno="751"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__VAR__DATA_1gae13c148c1ac9d5131a9904e354f89a0f" kindref="member" tooltip="Set cell boundary data values for a dataset variable.">dsproc_set_bounds_var_data</ref>(</highlight></codeline>
<codeline lineno="752"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*coord_var,</highlight></codeline>
<codeline lineno="753"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/>sample_start,</highlight></codeline>
<codeline lineno="754"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/>sample_count);</highlight></codeline>
<codeline lineno="755"><highlight class="normal"></highlight></codeline>
<codeline lineno="756"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="group__DSPROC__VAR__DATA_1gae6dcce7b4fdf754048df180387f44db9" kindref="member" tooltip="Set the data values for a dataset variable.">dsproc_set_var_data</ref>(</highlight></codeline>
<codeline lineno="757"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*var,</highlight></codeline>
<codeline lineno="758"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__CDS__DATA__TYPES_1gaf9b792da04e0b823868cf48a01503f0b" kindref="member" external="libcds3.tag">CDSDataType</ref><sp/><sp/><sp/>type,</highlight></codeline>
<codeline lineno="759"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sample_start,</highlight></codeline>
<codeline lineno="760"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sample_count,</highlight></codeline>
<codeline lineno="761"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*missing_value,</highlight></codeline>
<codeline lineno="762"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*data);</highlight></codeline>
<codeline lineno="763"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="764"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="765"><highlight class="normal"></highlight></codeline>
<codeline lineno="766"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="767"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="768"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_TIME_DATA<sp/>Dataset<sp/>Time<sp/>Data</highlight></codeline>
<codeline lineno="769"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="770"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="771"><highlight class="normal"></highlight></codeline>
<codeline lineno="772"><highlight class="normal">time_t<sp/><sp/><ref refid="group__DSPROC__TIME__DATA_1ga67ecae6338533d43f6c95e3955e69042" kindref="member" tooltip="Get the base time of a dataset or time variable.">dsproc_get_base_time</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>*cds_object);</highlight></codeline>
<codeline lineno="773"><highlight class="normal"></highlight></codeline>
<codeline lineno="774"><highlight class="normal"></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><ref refid="group__DSPROC__TIME__DATA_1gaa3479e5fae1399fabbca0571f93ad5a5" kindref="member" tooltip="Get the time range of a dataset or time variable.">dsproc_get_time_range</ref>(</highlight></codeline>
<codeline lineno="775"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>*cds_object,</highlight></codeline>
<codeline lineno="776"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__ARMUTILS__TIME__UTILS_1gaeba0d8f51eb0a83c2b01ecf27e0b3260" kindref="member" external="libarmutils.tag">timeval_t</ref><sp/>*start_time,</highlight></codeline>
<codeline lineno="777"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__ARMUTILS__TIME__UTILS_1gaeba0d8f51eb0a83c2b01ecf27e0b3260" kindref="member" external="libarmutils.tag">timeval_t</ref><sp/>*end_time);</highlight></codeline>
<codeline lineno="778"><highlight class="normal"></highlight></codeline>
<codeline lineno="779"><highlight class="normal"><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*<ref refid="group__DSPROC__TIME__DATA_1ga1cdc355a586bab60ba3e8220bc87390b" kindref="member" tooltip="Get the time variable used by a dataset.">dsproc_get_time_var</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>*cds_object);</highlight></codeline>
<codeline lineno="780"><highlight class="normal"></highlight></codeline>
<codeline lineno="781"><highlight class="normal">time_t<sp/>*<ref refid="group__DSPROC__TIME__DATA_1ga08bed819bd7d3f0fbee5812d6b6c55b1" kindref="member" tooltip="Get the sample times for a dataset or time variable.">dsproc_get_sample_times</ref>(</highlight></codeline>
<codeline lineno="782"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/>*cds_object,</highlight></codeline>
<codeline lineno="783"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/>sample_start,</highlight></codeline>
<codeline lineno="784"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>*sample_count,</highlight></codeline>
<codeline lineno="785"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/>*sample_times);</highlight></codeline>
<codeline lineno="786"><highlight class="normal"></highlight></codeline>
<codeline lineno="787"><highlight class="normal"><ref refid="group__ARMUTILS__TIME__UTILS_1gaeba0d8f51eb0a83c2b01ecf27e0b3260" kindref="member" external="libarmutils.tag">timeval_t</ref><sp/>*<ref refid="group__DSPROC__TIME__DATA_1ga59fb91c5744549fe5ba120daed408748" kindref="member" tooltip="Get the sample times for a dataset or time variable.">dsproc_get_sample_timevals</ref>(</highlight></codeline>
<codeline lineno="788"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>*cds_object,</highlight></codeline>
<codeline lineno="789"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/>sample_start,</highlight></codeline>
<codeline lineno="790"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/>*sample_count,</highlight></codeline>
<codeline lineno="791"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__ARMUTILS__TIME__UTILS_1gaeba0d8f51eb0a83c2b01ecf27e0b3260" kindref="member" external="libarmutils.tag">timeval_t</ref><sp/>*sample_times);</highlight></codeline>
<codeline lineno="792"><highlight class="normal"></highlight></codeline>
<codeline lineno="793"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__TIME__DATA_1ga8ed1d6ef23ecb6a4685b30cc2b0a1570" kindref="member" tooltip="Set the base time of a dataset or time variable.">dsproc_set_base_time</ref>(</highlight></codeline>
<codeline lineno="794"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*cds_object,</highlight></codeline>
<codeline lineno="795"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*long_name,</highlight></codeline>
<codeline lineno="796"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/><sp/><sp/>base_time);</highlight></codeline>
<codeline lineno="797"><highlight class="normal"></highlight></codeline>
<codeline lineno="798"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__TIME__DATA_1ga6e25aaaf16614c0de4ebb784619b76ab" kindref="member" tooltip="Set the sample times for a dataset or time variable.">dsproc_set_sample_times</ref>(</highlight></codeline>
<codeline lineno="799"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/>*cds_object,</highlight></codeline>
<codeline lineno="800"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/>sample_start,</highlight></codeline>
<codeline lineno="801"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/>sample_count,</highlight></codeline>
<codeline lineno="802"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/>*sample_times);</highlight></codeline>
<codeline lineno="803"><highlight class="normal"></highlight></codeline>
<codeline lineno="804"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__TIME__DATA_1gad396442e64ff6140c470645cd7e9faf8" kindref="member" tooltip="Set the sample times for a dataset or time variable.">dsproc_set_sample_timevals</ref>(</highlight></codeline>
<codeline lineno="805"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>*cds_object,</highlight></codeline>
<codeline lineno="806"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/>sample_start,</highlight></codeline>
<codeline lineno="807"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/>sample_count,</highlight></codeline>
<codeline lineno="808"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__ARMUTILS__TIME__UTILS_1gaeba0d8f51eb0a83c2b01ecf27e0b3260" kindref="member" external="libarmutils.tag">timeval_t</ref><sp/>*sample_times);</highlight></codeline>
<codeline lineno="809"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="810"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="811"><highlight class="normal"></highlight></codeline>
<codeline lineno="812"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="813"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="814"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_QC_UTILS<sp/>QC<sp/>Utilities</highlight></codeline>
<codeline lineno="815"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="816"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="817"><highlight class="normal"></highlight></codeline>
<codeline lineno="818"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__QC__UTILS_1gaaf9036b9afd93e4a7f5ea4855b93c9e1" kindref="member" tooltip="Consolidate all QC bits for a variable into bad or indeterminate.">dsproc_consolidate_var_qc</ref>(</highlight></codeline>
<codeline lineno="819"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*in_qc_var,</highlight></codeline>
<codeline lineno="820"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>bad_mask,</highlight></codeline>
<codeline lineno="821"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*out_qc_var,</highlight></codeline>
<codeline lineno="822"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>bad_flag,</highlight></codeline>
<codeline lineno="823"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>ind_flag,</highlight></codeline>
<codeline lineno="824"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>reset);</highlight></codeline>
<codeline lineno="825"><highlight class="normal"></highlight></codeline>
<codeline lineno="826"><highlight class="normal"></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__QC__UTILS_1gaf9e43c5f51401d04ea5a483f3acd571b" kindref="member" tooltip="Get the QC mask used to determine bad QC values.">dsproc_get_bad_qc_mask</ref>(<ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*qc_var);</highlight></codeline>
<codeline lineno="827"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="828"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="829"><highlight class="normal"></highlight></codeline>
<codeline lineno="830"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="831"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="832"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_MISC_UTILITIES<sp/>Miscellaneous<sp/>Utilities</highlight></codeline>
<codeline lineno="833"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="834"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="835"><highlight class="normal"></highlight></codeline>
<codeline lineno="836"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MISC__UTILITIES_1ga40ec9a1bd4c09382635eac600ee349ec" kindref="member" tooltip="Convert seconds since 1970 to a timestamp.">dsproc_create_timestamp</ref>(</highlight></codeline>
<codeline lineno="837"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/>secs1970,</highlight></codeline>
<codeline lineno="838"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*timestamp);</highlight></codeline>
<codeline lineno="839"><highlight class="normal"></highlight></codeline>
<codeline lineno="840"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MISC__UTILITIES_1gac799395eb87ffd4a4d5b6ddea6650c1a" kindref="member" tooltip="Wrapper to the execvp function.">dsproc_execvp</ref>(</highlight></codeline>
<codeline lineno="841"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*file,</highlight></codeline>
<codeline lineno="842"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>argv[],</highlight></codeline>
<codeline lineno="843"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>flags);</highlight></codeline>
<codeline lineno="844"><highlight class="normal"></highlight></codeline>
<codeline lineno="845"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MISC__UTILITIES_1ga6952be2bf538cb361aae7c37bf730f2f" kindref="member" tooltip="Run DQ Inspector.">dsproc_run_dq_inspector</ref>(</highlight></codeline>
<codeline lineno="846"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>dsid,</highlight></codeline>
<codeline lineno="847"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/><sp/><sp/>begin_time,</highlight></codeline>
<codeline lineno="848"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/><sp/><sp/>end_time,</highlight></codeline>
<codeline lineno="849"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*args[],</highlight></codeline>
<codeline lineno="850"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>flags);</highlight></codeline>
<codeline lineno="851"><highlight class="normal"></highlight></codeline>
<codeline lineno="852"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__MISC__UTILITIES_1gab4bbc076520045908039c4e296af6869" kindref="member" tooltip="Calculate solar position.">dsproc_solar_position</ref>(</highlight></codeline>
<codeline lineno="853"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/>secs1970,<sp/></highlight></codeline>
<codeline lineno="854"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>latitude,<sp/></highlight></codeline>
<codeline lineno="855"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>longitude,</highlight></codeline>
<codeline lineno="856"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>*ap_ra,</highlight></codeline>
<codeline lineno="857"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>*ap_dec,</highlight></codeline>
<codeline lineno="858"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>*altitude,</highlight></codeline>
<codeline lineno="859"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>*refraction,</highlight></codeline>
<codeline lineno="860"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>*azimuth,</highlight></codeline>
<codeline lineno="861"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>*distance);</highlight></codeline>
<codeline lineno="862"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="863"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="864"><highlight class="normal"></highlight></codeline>
<codeline lineno="865"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="866"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="867"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_OUTLIER_FILTERS<sp/>Outlier<sp/>Filters</highlight></codeline>
<codeline lineno="868"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="869"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="870"><highlight class="normal"></highlight></codeline>
<codeline lineno="871"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__OUTLIER__FILTERS_1gaf8cccb558e7645a28fadfe492124fd1a" kindref="member" tooltip="Flag outliers using the Median and Interquartile Deviation Method (IQD).">dsproc_flag_outliers_iqd</ref>(</highlight></codeline>
<codeline lineno="872"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/><sp/><sp/>*dataset,</highlight></codeline>
<codeline lineno="873"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*var_name,</highlight></codeline>
<codeline lineno="874"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>window_width,</highlight></codeline>
<codeline lineno="875"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>min_npoints,</highlight></codeline>
<codeline lineno="876"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>skipped_flag,</highlight></codeline>
<codeline lineno="877"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>bad_threshold,</highlight></codeline>
<codeline lineno="878"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>bad_flag,</highlight></codeline>
<codeline lineno="879"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ind_threshold,</highlight></codeline>
<codeline lineno="880"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>ind_flag,</highlight></codeline>
<codeline lineno="881"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>analyze);</highlight></codeline>
<codeline lineno="882"><highlight class="normal"></highlight></codeline>
<codeline lineno="883"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__OUTLIER__FILTERS_1gad3efed0d5e8fd152a8022ebc8b5414f2" kindref="member" tooltip="Flag outliers using the Absolute Deviation from the Mean Method.">dsproc_flag_outliers_mean_dev</ref>(</highlight></codeline>
<codeline lineno="884"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/><sp/><sp/>*dataset,</highlight></codeline>
<codeline lineno="885"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*var_name,</highlight></codeline>
<codeline lineno="886"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>window_width,</highlight></codeline>
<codeline lineno="887"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>min_npoints,</highlight></codeline>
<codeline lineno="888"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>skipped_flag,</highlight></codeline>
<codeline lineno="889"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>bad_threshold,</highlight></codeline>
<codeline lineno="890"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>bad_flag,</highlight></codeline>
<codeline lineno="891"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ind_threshold,</highlight></codeline>
<codeline lineno="892"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>ind_flag,</highlight></codeline>
<codeline lineno="893"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>analyze);</highlight></codeline>
<codeline lineno="894"><highlight class="normal"></highlight></codeline>
<codeline lineno="895"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__OUTLIER__FILTERS_1gabf2fda3c8389abe958654d95f2cb13f4" kindref="member" tooltip="Flag outliers using the Mean and Mean Absolute Deviation Method (MAD).">dsproc_flag_outliers_mean_mad</ref>(</highlight></codeline>
<codeline lineno="896"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/><sp/><sp/>*dataset,</highlight></codeline>
<codeline lineno="897"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*var_name,</highlight></codeline>
<codeline lineno="898"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>window_width,</highlight></codeline>
<codeline lineno="899"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>min_npoints,</highlight></codeline>
<codeline lineno="900"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>skipped_flag,</highlight></codeline>
<codeline lineno="901"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>bad_threshold,</highlight></codeline>
<codeline lineno="902"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>bad_flag,</highlight></codeline>
<codeline lineno="903"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ind_threshold,</highlight></codeline>
<codeline lineno="904"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>ind_flag,</highlight></codeline>
<codeline lineno="905"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>analyze);</highlight></codeline>
<codeline lineno="906"><highlight class="normal"></highlight></codeline>
<codeline lineno="907"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__OUTLIER__FILTERS_1ga6fb5a943ef1e3292bc07e35a12af7202" kindref="member" tooltip="Flag outliers using the Median and Median Absolute Deviation Method (MAD).">dsproc_flag_outliers_median_mad</ref>(</highlight></codeline>
<codeline lineno="908"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/><sp/><sp/>*dataset,</highlight></codeline>
<codeline lineno="909"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*var_name,</highlight></codeline>
<codeline lineno="910"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>window_width,</highlight></codeline>
<codeline lineno="911"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>min_npoints,</highlight></codeline>
<codeline lineno="912"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>skipped_flag,</highlight></codeline>
<codeline lineno="913"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>bad_threshold,</highlight></codeline>
<codeline lineno="914"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>bad_flag,</highlight></codeline>
<codeline lineno="915"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ind_threshold,</highlight></codeline>
<codeline lineno="916"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>ind_flag,</highlight></codeline>
<codeline lineno="917"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>analyze);</highlight></codeline>
<codeline lineno="918"><highlight class="normal"></highlight></codeline>
<codeline lineno="919"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__OUTLIER__FILTERS_1ga547a723671d4bdc30a4047829852dd37" kindref="member" tooltip="Flag outliers using the Mean and Standard Deviation Method.">dsproc_flag_outliers_std</ref>(</highlight></codeline>
<codeline lineno="920"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/><sp/><sp/>*dataset,</highlight></codeline>
<codeline lineno="921"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*var_name,</highlight></codeline>
<codeline lineno="922"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>window_width,</highlight></codeline>
<codeline lineno="923"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>min_npoints,</highlight></codeline>
<codeline lineno="924"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>skipped_flag,</highlight></codeline>
<codeline lineno="925"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>bad_threshold,</highlight></codeline>
<codeline lineno="926"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>bad_flag,</highlight></codeline>
<codeline lineno="927"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ind_threshold,</highlight></codeline>
<codeline lineno="928"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>ind_flag,</highlight></codeline>
<codeline lineno="929"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>analyze);</highlight></codeline>
<codeline lineno="930"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="931"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="932"><highlight class="normal"></highlight></codeline>
<codeline lineno="933"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="934"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="935"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_VARTAGS<sp/>Variable<sp/>Tags</highlight></codeline>
<codeline lineno="936"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="937"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="938"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="939"><highlight class="comment">/**<sp/>Flag<sp/>instructing<sp/>the<sp/>transform<sp/>logic<sp/>to<sp/>ignore<sp/>this<sp/>variable.<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="940" refid="group__DSPROC__VARTAGS_1ga1121b44c68882d8c9e9bd655843ea03a" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>VAR_SKIP_TRANSFORM<sp/><sp/><sp/>0x1</highlight></codeline>
<codeline lineno="941"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="942"><highlight class="comment">/**<sp/>Consolidate<sp/>the<sp/>transformation<sp/>QC<sp/>bits<sp/>when<sp/>mapped<sp/>to<sp/>the<sp/>output<sp/>dataset.<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="943" refid="group__DSPROC__VARTAGS_1ga02194286a30a23338271544d63da047b" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>VAR_ROLLUP_TRANS_QC<sp/><sp/>0x2</highlight></codeline>
<codeline lineno="944"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="945"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="946"><highlight class="comment"><sp/>*<sp/><sp/>Output<sp/>Variable<sp/>Target.</highlight></codeline>
<codeline lineno="947"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="948" refid="structVarTarget" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="949"><highlight class="normal"></highlight></codeline>
<codeline lineno="950" refid="structVarTarget_1ae3418e4e7b461e0e8ae4ec6ba0c2bf4f" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structVarTarget_1ae3418e4e7b461e0e8ae4ec6ba0c2bf4f" kindref="member" tooltip="output datastream ID">ds_id</ref>;<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>output<sp/>datastream<sp/>ID<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="951" refid="structVarTarget_1acaf9e2790ba3f24bdf626e0c2d9ba1be" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="structVarTarget_1acaf9e2790ba3f24bdf626e0c2d9ba1be" kindref="member" tooltip="output variable name">var_name</ref>;<sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>output<sp/>variable<sp/>name<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="952"><highlight class="normal"></highlight></codeline>
<codeline lineno="953"><highlight class="normal">}<sp/><ref refid="structVarTarget" kindref="compound" tooltip="Output Variable Target.">VarTarget</ref>;</highlight></codeline>
<codeline lineno="954"><highlight class="normal"></highlight></codeline>
<codeline lineno="955"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__VARTAGS_1ga19f08fde4361211ae8521ec57a7a44ec" kindref="member" tooltip="Add an output target for a variable.">dsproc_add_var_output_target</ref>(</highlight></codeline>
<codeline lineno="956"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/><sp/><sp/><sp/><sp/>*var,</highlight></codeline>
<codeline lineno="957"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ds_id,</highlight></codeline>
<codeline lineno="958"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*var_name);</highlight></codeline>
<codeline lineno="959"><highlight class="normal"></highlight></codeline>
<codeline lineno="960"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__VARTAGS_1gabd8c15f53f16cb6683b36630267af75d" kindref="member" tooltip="Copy a variable tag from one variable to another.">dsproc_copy_var_tag</ref>(</highlight></codeline>
<codeline lineno="961"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*src_var,</highlight></codeline>
<codeline lineno="962"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*dest_var);</highlight></codeline>
<codeline lineno="963"><highlight class="normal"></highlight></codeline>
<codeline lineno="964"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__VARTAGS_1gad9001db57170245b758e6c99cfddda36" kindref="member" tooltip="Delete a variable tag.">dsproc_delete_var_tag</ref>(</highlight></codeline>
<codeline lineno="965"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var);</highlight></codeline>
<codeline lineno="966"><highlight class="normal"></highlight></codeline>
<codeline lineno="967"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__DSPROC__VARTAGS_1gaf49547cebaf6a1b711ccf9dc9622091a" kindref="member" tooltip="Get the name of the source variable read in from the input file.">dsproc_get_source_var_name</ref>(<ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var);</highlight></codeline>
<codeline lineno="968"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__DSPROC__VARTAGS_1ga0c0d748ad03c2abce944cea81cc0bb22" kindref="member" tooltip="Get the name of the input datastream the variable was retrieved from.">dsproc_get_source_ds_name</ref>(<ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var);</highlight></codeline>
<codeline lineno="969"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__VARTAGS_1gab976826fcce9378e390490e8b43d0c5d" kindref="member" tooltip="Get the ID of the input datastream the variable was retrieved from.">dsproc_get_source_ds_id</ref>(<ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var);</highlight></codeline>
<codeline lineno="970"><highlight class="normal"></highlight></codeline>
<codeline lineno="971"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__DSPROC__VARTAGS_1ga6f927ead3db86e4d687581534408ba43" kindref="member" tooltip="Get the name of the transformation coordinate system.">dsproc_get_var_coordsys_name</ref>(<ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var);</highlight></codeline>
<codeline lineno="972"><highlight class="normal"></highlight></codeline>
<codeline lineno="973"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__VARTAGS_1ga587f6837c9314d583466b488708f4d32" kindref="member" tooltip="Get the output targets defined for the specified variable.">dsproc_get_var_output_targets</ref>(</highlight></codeline>
<codeline lineno="974"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/><sp/><sp/><sp/><sp/><sp/>*var,</highlight></codeline>
<codeline lineno="975"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structVarTarget" kindref="compound" tooltip="Output Variable Target.">VarTarget</ref><sp/>***targets);</highlight></codeline>
<codeline lineno="976"><highlight class="normal"></highlight></codeline>
<codeline lineno="977"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__VARTAGS_1gaed38d6b658967fca73184f98ea2ae796" kindref="member" tooltip="Set the coordinate system for a variable.">dsproc_set_var_coordsys_name</ref>(</highlight></codeline>
<codeline lineno="978"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/><sp/><sp/><sp/><sp/>*var,</highlight></codeline>
<codeline lineno="979"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*coordsys_name);</highlight></codeline>
<codeline lineno="980"><highlight class="normal"></highlight></codeline>
<codeline lineno="981"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__VARTAGS_1gaccbaaad7e618f92ba1efe4cd24958662" kindref="member" tooltip="Set the control flags for a variable.">dsproc_set_var_flags</ref>(<ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>flags);</highlight></codeline>
<codeline lineno="982"><highlight class="normal"></highlight></codeline>
<codeline lineno="983"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__VARTAGS_1gafe6ef97bc3c0da8bd4d6b37e9b3e810a" kindref="member" tooltip="Set the output target for a variable.">dsproc_set_var_output_target</ref>(</highlight></codeline>
<codeline lineno="984"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/><sp/><sp/><sp/><sp/>*var,</highlight></codeline>
<codeline lineno="985"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ds_id,</highlight></codeline>
<codeline lineno="986"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*var_name);</highlight></codeline>
<codeline lineno="987"><highlight class="normal"></highlight></codeline>
<codeline lineno="988"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__VARTAGS_1ga0470448e6fa667784ad6bea1e903b5d1" kindref="member" tooltip="Unset the control flags for a variable.">dsproc_unset_var_flags</ref>(<ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>flags);</highlight></codeline>
<codeline lineno="989"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="990"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="991"><highlight class="normal"></highlight></codeline>
<codeline lineno="992"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="993"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="994"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_DQRS<sp/>Variable<sp/>DQRs</highlight></codeline>
<codeline lineno="995"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="996"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="997"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="998"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="999"><highlight class="comment"><sp/>*<sp/><sp/>Variable<sp/>DQR.</highlight></codeline>
<codeline lineno="1000"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="1001"><highlight class="comment"><sp/>*<sp/><sp/>At<sp/>the<sp/>time<sp/>of<sp/>this<sp/>writing<sp/>the<sp/>&apos;code<sp/>=&gt;<sp/>color<sp/>=&gt;<sp/>code_desc&apos;<sp/>values<sp/>were:</highlight></codeline>
<codeline lineno="1002"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="1003"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/>-<sp/>-1<sp/>=&gt;<sp/>None<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>=&gt;<sp/>Presumed<sp/>not<sp/>to<sp/>exist</highlight></codeline>
<codeline lineno="1004"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/>-<sp/><sp/>0<sp/>=&gt;<sp/>Black<sp/><sp/><sp/><sp/><sp/><sp/><sp/>=&gt;<sp/>Missing</highlight></codeline>
<codeline lineno="1005"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/>-<sp/><sp/>1<sp/>=&gt;<sp/>White<sp/><sp/><sp/><sp/><sp/><sp/><sp/>=&gt;<sp/>Not<sp/>inspected</highlight></codeline>
<codeline lineno="1006"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/>-<sp/><sp/>2<sp/>=&gt;<sp/>Green<sp/><sp/><sp/><sp/><sp/><sp/><sp/>=&gt;<sp/>Good</highlight></codeline>
<codeline lineno="1007"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/>-<sp/><sp/>3<sp/>=&gt;<sp/>Yellow<sp/><sp/><sp/><sp/><sp/><sp/>=&gt;<sp/>Suspect</highlight></codeline>
<codeline lineno="1008"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/>-<sp/><sp/>4<sp/>=&gt;<sp/>Red<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>=&gt;<sp/>Incorrect</highlight></codeline>
<codeline lineno="1009"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/>-<sp/><sp/>5<sp/>=&gt;<sp/>Transparent<sp/>=&gt;<sp/>Does<sp/>not<sp/>affect<sp/>quality</highlight></codeline>
<codeline lineno="1010"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1011" refid="structVarDQR" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="1012" refid="structVarDQR_1adfa84c0d08387333eb99da4b2fbd2777" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*<ref refid="structVarDQR_1adfa84c0d08387333eb99da4b2fbd2777" kindref="member" tooltip="DQR ID.">id</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>DQR<sp/>ID<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1013" refid="structVarDQR_1ab94f869f8ccf51f19ebed231c89dcbd4" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*<ref refid="structVarDQR_1ab94f869f8ccf51f19ebed231c89dcbd4" kindref="member" tooltip="description">desc</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>description<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1014" refid="structVarDQR_1a7261c5d9158a43ecd725d791a75af644" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*<ref refid="structVarDQR_1a7261c5d9158a43ecd725d791a75af644" kindref="member" tooltip="datastream name">ds_name</ref>;<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>datastream<sp/>name<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1015" refid="structVarDQR_1a9d29e175f21d009e49c59d2193f07825" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*<ref refid="structVarDQR_1a9d29e175f21d009e49c59d2193f07825" kindref="member" tooltip="variable name">var_name</ref>;<sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>variable<sp/>name<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1016" refid="structVarDQR_1a729cb3a205b03eb15b6264e0ba66b268" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structVarDQR_1a729cb3a205b03eb15b6264e0ba66b268" kindref="member" tooltip="code number">code</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>code<sp/>number<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1017" refid="structVarDQR_1a7835cf667f375bb67e1c5a0594379e15" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*<ref refid="structVarDQR_1a7835cf667f375bb67e1c5a0594379e15" kindref="member" tooltip="code color">color</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>code<sp/>color<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1018" refid="structVarDQR_1a236475636bec0839b35b3b3ceaab25ce" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*<ref refid="structVarDQR_1a236475636bec0839b35b3b3ceaab25ce" kindref="member" tooltip="code description">code_desc</ref>;<sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>code<sp/>description<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1019" refid="structVarDQR_1a0b6b8e97d2aab7e24e8a56809b2a0fc2" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structVarDQR_1a0b6b8e97d2aab7e24e8a56809b2a0fc2" kindref="member" tooltip="start time in seconds since 1970">start_time</ref>;<sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>start<sp/>time<sp/>in<sp/>seconds<sp/>since<sp/>1970<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1020" refid="structVarDQR_1ac39e0ab6f75229d844f3352f69811632" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structVarDQR_1ac39e0ab6f75229d844f3352f69811632" kindref="member" tooltip="end time in seconds since 1970">end_time</ref>;<sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>end<sp/>time<sp/>in<sp/>seconds<sp/>since<sp/>1970<sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1021" refid="structVarDQR_1a1c20d1288d87c03198cc38888944649b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structVarDQR_1a1c20d1288d87c03198cc38888944649b" kindref="member" tooltip="start time index in dataset">start_index</ref>;<sp/></highlight><highlight class="comment">/**&lt;<sp/>start<sp/>time<sp/>index<sp/>in<sp/>dataset<sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1022" refid="structVarDQR_1a709fc6f6052a1ecd5a7236e3e4faf189" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structVarDQR_1a709fc6f6052a1ecd5a7236e3e4faf189" kindref="member" tooltip="end time index in dataset">end_index</ref>;<sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>end<sp/>time<sp/>index<sp/>in<sp/>dataset<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1023"><highlight class="normal">}<sp/><ref refid="structVarDQR" kindref="compound" tooltip="Variable DQR.">VarDQR</ref>;</highlight></codeline>
<codeline lineno="1024"><highlight class="normal"></highlight></codeline>
<codeline lineno="1025"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__DQRS_1ga0d4a7b00b47ddf0b8504d85462b58843" kindref="member" tooltip="Get all available DQRs for the data stored in the specified variable.">dsproc_get_var_dqrs</ref>(<ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/>*var,<sp/><ref refid="structVarDQR" kindref="compound" tooltip="Variable DQR.">VarDQR</ref><sp/>***dqrs);</highlight></codeline>
<codeline lineno="1026"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1027"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1028"><highlight class="normal"></highlight></codeline>
<codeline lineno="1029"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1030"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="1031"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_Print<sp/>Print<sp/>Functions</highlight></codeline>
<codeline lineno="1032"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1033"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1034"><highlight class="normal"></highlight></codeline>
<codeline lineno="1035"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__Print_1ga8577e53758950e9f9d7ccf412eff5269" kindref="member" tooltip="Dump the contents of a dataset to a text file.">dsproc_dump_dataset</ref>(</highlight></codeline>
<codeline lineno="1036"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/>*dataset,</highlight></codeline>
<codeline lineno="1037"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*outdir,</highlight></codeline>
<codeline lineno="1038"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*prefix,</highlight></codeline>
<codeline lineno="1039"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/><sp/><sp/>file_time,</highlight></codeline>
<codeline lineno="1040"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*suffix,</highlight></codeline>
<codeline lineno="1041"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>flags);</highlight></codeline>
<codeline lineno="1042"><highlight class="normal"></highlight></codeline>
<codeline lineno="1043"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__Print_1ga68baa6217d6fc6ef62a8fe67700eb611" kindref="member" tooltip="Dump all output datasets to text files.">dsproc_dump_output_datasets</ref>(</highlight></codeline>
<codeline lineno="1044"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*outdir,</highlight></codeline>
<codeline lineno="1045"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*suffix,</highlight></codeline>
<codeline lineno="1046"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>flags);</highlight></codeline>
<codeline lineno="1047"><highlight class="normal"></highlight></codeline>
<codeline lineno="1048"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__Print_1ga61b73081fa571797cd44dc1d43954f93" kindref="member" tooltip="Dump all retrieved datasets to a text file.">dsproc_dump_retrieved_datasets</ref>(</highlight></codeline>
<codeline lineno="1049"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*outdir,</highlight></codeline>
<codeline lineno="1050"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*suffix,</highlight></codeline>
<codeline lineno="1051"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>flags);</highlight></codeline>
<codeline lineno="1052"><highlight class="normal"></highlight></codeline>
<codeline lineno="1053"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__DSPROC__Print_1gadb0147f8b8cb41767c34e08584022030" kindref="member" tooltip="Dump all transformed datasets to a text file.">dsproc_dump_transformed_datasets</ref>(</highlight></codeline>
<codeline lineno="1054"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*outdir,</highlight></codeline>
<codeline lineno="1055"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*suffix,</highlight></codeline>
<codeline lineno="1056"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>flags);</highlight></codeline>
<codeline lineno="1057"><highlight class="normal"></highlight></codeline>
<codeline lineno="1058"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline>
<codeline lineno="1059"><highlight class="comment">Need<sp/>functions:</highlight></codeline>
<codeline lineno="1060"><highlight class="comment"></highlight></codeline>
<codeline lineno="1061"><highlight class="comment">void<sp/><sp/><sp/><sp/><sp/><sp/>dsproc_print_dataset_object(</highlight></codeline>
<codeline lineno="1062"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>const<sp/>char<sp/>*file_name,</highlight></codeline>
<codeline lineno="1063"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>void<sp/><sp/><sp/><sp/><sp/><sp/><sp/>*object);</highlight></codeline>
<codeline lineno="1064"><highlight class="comment"></highlight></codeline>
<codeline lineno="1065"><highlight class="comment">*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1066"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1067"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1068"><highlight class="normal"></highlight></codeline>
<codeline lineno="1069"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1070"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="1071"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_STATUS<sp/>Process<sp/>Status<sp/>Definitions</highlight></codeline>
<codeline lineno="1072"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1073"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1074"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1075"><highlight class="comment">/**<sp/>Successful<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1076" refid="group__DSPROC__STATUS_1ga4fe2ad6638ff1c3ac6f5da266214e781" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_SUCCESS<sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;Successful&quot;</highlight></codeline>
<codeline lineno="1077"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1078"><highlight class="comment">/**<sp/>Memory<sp/>Allocation<sp/>Error<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1079" refid="group__DSPROC__STATUS_1ga0aaf38838020aa40722982fad048cbc9" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ENOMEM<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;Memory<sp/>Allocation<sp/>Error&quot;</highlight></codeline>
<codeline lineno="1080"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1081"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Create<sp/>Fork<sp/>For<sp/>New<sp/>Process<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1082" refid="group__DSPROC__STATUS_1gae08eac8d5017d20768b25fa25e2e10df" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EFORK<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Create<sp/>Fork<sp/>For<sp/>New<sp/>Process&quot;</highlight></codeline>
<codeline lineno="1083"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1084"><highlight class="comment">/**<sp/>No<sp/>Input<sp/>Data<sp/>Found<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1085" refid="group__DSPROC__STATUS_1gac42c79a320f8c015f9ccd37bcc90b8b5" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ENODATA<sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;No<sp/>Input<sp/>Data<sp/>Found&quot;</highlight></codeline>
<codeline lineno="1086"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1087"><highlight class="comment">/**<sp/>No<sp/>Output<sp/>Data<sp/>Found<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1088" refid="group__DSPROC__STATUS_1ga8d992934244bb80a4ecbe169da808375" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ENOOUTDATA<sp/><sp/><sp/><sp/>&quot;No<sp/>Output<sp/>Data<sp/>Created&quot;</highlight></codeline>
<codeline lineno="1089"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1090"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Initialize<sp/>Signal<sp/>Handlers<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1091" refid="group__DSPROC__STATUS_1ga805c05915da4cf811b15218466737edc" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EINITSIGS<sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Initialize<sp/>Signal<sp/>Handlers&quot;</highlight></codeline>
<codeline lineno="1092"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1093"><highlight class="comment">/**<sp/>Maximum<sp/>Run<sp/>Time<sp/>Limit<sp/>Exceeded<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1094" refid="group__DSPROC__STATUS_1gaa46eef76917d8f759852101a557a94f6" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ERUNTIME<sp/><sp/><sp/><sp/><sp/><sp/>&quot;Maximum<sp/>Run<sp/>Time<sp/>Limit<sp/>Exceeded&quot;</highlight></codeline>
<codeline lineno="1095"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1096"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Force<sp/>Process<sp/>To<sp/>Continue<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1097" refid="group__DSPROC__STATUS_1gae9c5b1df92d9a618962ded30c4097ce5" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EFORCE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Force<sp/>Process<sp/>To<sp/>Continue&quot;</highlight></codeline>
<codeline lineno="1098"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1099"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Determine<sp/>Path<sp/>To<sp/>Datastream<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1100" refid="group__DSPROC__STATUS_1ga8d334e08d3248cf882966101ae22f10b" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EDSPATH<sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Determine<sp/>Path<sp/>To<sp/>Datastream&quot;</highlight></codeline>
<codeline lineno="1101"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1102"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Determine<sp/>Path<sp/>To<sp/>Logs<sp/>Directory<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1103" refid="group__DSPROC__STATUS_1gafe33dc6e93600add3dcd34d85cbe8fca" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ELOGSPATH<sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Determine<sp/>Path<sp/>To<sp/>Logs<sp/>Directory&quot;</highlight></codeline>
<codeline lineno="1104"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1105"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Open<sp/>Log<sp/>File<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1106" refid="group__DSPROC__STATUS_1gacdfcd13cd0796f828712a5db76ef67da" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EACCESS<sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Access<sp/>File<sp/>or<sp/>Directory&quot;</highlight></codeline>
<codeline lineno="1107"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1108"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Open<sp/>Log<sp/>File<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1109" refid="group__DSPROC__STATUS_1gabb2bd96bdaaff60ff112a7b37eb1e721" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ELOGOPEN<sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Open<sp/>Log<sp/>File&quot;</highlight></codeline>
<codeline lineno="1110"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1111"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Open<sp/>Provenance<sp/>Log<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1112" refid="group__DSPROC__STATUS_1ga6e4a333e192dd9c0c1802d72232dad5b" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EPROVOPEN<sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Open<sp/>Provenance<sp/>Log&quot;</highlight></codeline>
<codeline lineno="1113"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1114"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Initialize<sp/>Mail<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1115" refid="group__DSPROC__STATUS_1ga0a03bfbfa54bfd752ef787b35bebf880" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EMAILINIT<sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Initialize<sp/>Mail&quot;</highlight></codeline>
<codeline lineno="1116"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1117"><highlight class="comment">/**<sp/>Database<sp/>Error<sp/>(see<sp/>log<sp/>file)<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1118" refid="group__DSPROC__STATUS_1ga994618de24d5dcb9d77222017f283afd" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EDBERROR<sp/><sp/><sp/><sp/><sp/><sp/>&quot;Database<sp/>Error<sp/>(see<sp/>log<sp/>file)&quot;</highlight></codeline>
<codeline lineno="1119"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1120"><highlight class="comment">/**<sp/>Database<sp/>Connection<sp/>Error<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1121" refid="group__DSPROC__STATUS_1ga02668edf9413b9356b67faaa753d1e4d" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EDBCONNECT<sp/><sp/><sp/><sp/>&quot;Database<sp/>Connection<sp/>Error&quot;</highlight></codeline>
<codeline lineno="1122"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1123"><highlight class="comment">/**<sp/>DQR<sp/>Database<sp/>Error<sp/>(see<sp/>log<sp/>file)<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1124" refid="group__DSPROC__STATUS_1ga56f0685fbf6a83fe55ed091f4153666b" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EDQRDBERROR<sp/><sp/><sp/>&quot;DQR<sp/>Database<sp/>Error<sp/>(see<sp/>log<sp/>file)&quot;</highlight></codeline>
<codeline lineno="1125"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1126"><highlight class="comment">/**<sp/>DQR<sp/>Database<sp/>Connection<sp/>Error<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1127" refid="group__DSPROC__STATUS_1gac022ecf2aac8fb41d867408012137bdf" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EDQRDBCONNECT<sp/>&quot;DQR<sp/>Database<sp/>Connection<sp/>Error&quot;</highlight></codeline>
<codeline lineno="1128"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1129"><highlight class="comment">/**<sp/>Directory<sp/>List<sp/>Error<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1130" refid="group__DSPROC__STATUS_1ga26dfe5e082ec0b148142bbf38a9c9a8b" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EDIRLIST<sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Get<sp/>Directory<sp/>Listing&quot;</highlight></codeline>
<codeline lineno="1131"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1132"><highlight class="comment">/**<sp/>Directory<sp/>List<sp/>Error<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1133" refid="group__DSPROC__STATUS_1ga74dc24d58cad1b8470e1000c3ca1752d" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EREGEX<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;Regular<sp/>Expression<sp/>Error&quot;</highlight></codeline>
<codeline lineno="1134"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1135"><highlight class="comment">/**<sp/>Invalid<sp/>Input<sp/>Datastream<sp/>Class<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1136" refid="group__DSPROC__STATUS_1ga7bf9c9b014653e09b11b3df266530a44" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EBADINDSC<sp/><sp/><sp/><sp/><sp/>&quot;Invalid<sp/>Input<sp/>Datastream<sp/>Class&quot;</highlight></codeline>
<codeline lineno="1137"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1138"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Find<sp/>Input<sp/>Datastream<sp/>Class<sp/>In<sp/>Database<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1139" refid="group__DSPROC__STATUS_1ga47a8ed4d3d62ab239dd5622ce97a3721" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ENOINDSC<sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Find<sp/>Input<sp/>Datastream<sp/>Class<sp/>In<sp/>Database&quot;</highlight></codeline>
<codeline lineno="1140"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1141"><highlight class="comment">/**<sp/>Too<sp/>Many<sp/>Input<sp/>Datastream<sp/>Classes<sp/>In<sp/>Database<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1142" refid="group__DSPROC__STATUS_1gacbc0ec5729ad0d667b41187750db7e2a" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ETOOMANYINDSC<sp/>&quot;Too<sp/>Many<sp/>Input<sp/>Datastreams<sp/>Defined<sp/>In<sp/>Database&quot;</highlight></codeline>
<codeline lineno="1143"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1144"><highlight class="comment">/**<sp/>Invalid<sp/>Output<sp/>Datastream<sp/>Class<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1145" refid="group__DSPROC__STATUS_1ga034392f0adcc1fce373ddbd91564a009" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EBADOUTDSC<sp/><sp/><sp/><sp/>&quot;Invalid<sp/>Output<sp/>Datastream<sp/>Class&quot;</highlight></codeline>
<codeline lineno="1146"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1147"><highlight class="comment">/**<sp/>Invalid<sp/>Datastream<sp/>ID<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1148" refid="group__DSPROC__STATUS_1gaad95f132cb748c28c183bda869c569e4" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EBADDSID<sp/><sp/><sp/><sp/><sp/><sp/>&quot;Invalid<sp/>Datastream<sp/>ID&quot;</highlight></codeline>
<codeline lineno="1149"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1150"><highlight class="comment">/**<sp/>Invalid<sp/>Output<sp/>Datastream<sp/>Format<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1151" refid="group__DSPROC__STATUS_1gafb71ce3fd3873663eaf2ae048daded95" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EBADOUTFORMAT<sp/>&quot;Invalid<sp/>Output<sp/>Datastream<sp/>Format&quot;</highlight></codeline>
<codeline lineno="1152"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1153"><highlight class="comment">/**<sp/>Found<sp/>Data<sp/>Time<sp/>Before<sp/>Minimum<sp/>Valid<sp/>Time<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1154" refid="group__DSPROC__STATUS_1ga413ded43bc9fb80dc62e08009b03c0b4" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EMINTIME<sp/><sp/><sp/><sp/><sp/><sp/>&quot;Found<sp/>Data<sp/>Time<sp/>Before<sp/>Minimum<sp/>Valid<sp/>Time&quot;</highlight></codeline>
<codeline lineno="1155"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1156"><highlight class="comment">/**<sp/>Found<sp/>Data<sp/>Time<sp/>In<sp/>The<sp/>Future<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1157" refid="group__DSPROC__STATUS_1ga013171d1702d38446fcc3284f79fd15d" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EFUTURETIME<sp/><sp/><sp/>&quot;Found<sp/>Data<sp/>Time<sp/>In<sp/>The<sp/>Future&quot;</highlight></codeline>
<codeline lineno="1158"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1159"><highlight class="comment">/**<sp/>Invalid<sp/>Time<sp/>Order<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1160" refid="group__DSPROC__STATUS_1ga8bf44d5b5a570500ac23f073b6bdbb7d" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ETIMEORDER<sp/><sp/><sp/><sp/>&quot;Invalid<sp/>Time<sp/>Order&quot;</highlight></codeline>
<codeline lineno="1161"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1162"><highlight class="comment">/**<sp/>Found<sp/>Overlapping<sp/>Data<sp/>Times<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1163" refid="group__DSPROC__STATUS_1ga5a7d3e3213b9c08f5b08a1c733bd51cd" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ETIMEOVERLAP<sp/><sp/>&quot;Found<sp/>Overlapping<sp/>Data<sp/>Times&quot;</highlight></codeline>
<codeline lineno="1164"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1165"><highlight class="comment">/**<sp/>Invalid<sp/>Base<sp/>Time<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1166" refid="group__DSPROC__STATUS_1ga1d6498ecbc8f8623a7b340ac76d2528b" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EBASETIME<sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Get<sp/>Base<sp/>Time<sp/>For<sp/>Time<sp/>Variable&quot;</highlight></codeline>
<codeline lineno="1167"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1168"><highlight class="comment">/**<sp/>Invalid<sp/>Global<sp/>Attribute<sp/>Value<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1169" refid="group__DSPROC__STATUS_1ga1a547d83928f5afa4b9c9c1b15e0f628" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EGLOBALATT<sp/><sp/><sp/><sp/><sp/>&quot;Invalid<sp/>Global<sp/>Attribute<sp/>Value&quot;</highlight></codeline>
<codeline lineno="1170"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1171"><highlight class="comment">/**<sp/>Invalid<sp/>Data<sp/>Type<sp/>For<sp/>Time<sp/>Variable<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1172" refid="group__DSPROC__STATUS_1ga8f02cfc176eaed490dd631ce9e821017" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ETIMEVARTYPE<sp/><sp/>&quot;Invalid<sp/>Data<sp/>Type<sp/>For<sp/>Time<sp/>Variable&quot;</highlight></codeline>
<codeline lineno="1173"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1174"><highlight class="comment">/**<sp/>Invalid<sp/>Data<sp/>Type<sp/>For<sp/>QC<sp/>Variable<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1175" refid="group__DSPROC__STATUS_1gad4e3b3e69f5580589f7ab50edcb78313" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EQCVARTYPE<sp/><sp/><sp/><sp/>&quot;Invalid<sp/>Data<sp/>Type<sp/>For<sp/>QC<sp/>Variable&quot;</highlight></codeline>
<codeline lineno="1176"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1177"><highlight class="comment">/**<sp/>Invalid<sp/>QC<sp/>Variable<sp/>Sample<sp/>Size<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1178" refid="group__DSPROC__STATUS_1ga3979fbc650c70592c8fabb649206eb70" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EQCSAMPLESIZE<sp/>&quot;Invalid<sp/>QC<sp/>Variable<sp/>Sample<sp/>Size&quot;</highlight></codeline>
<codeline lineno="1179"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1180"><highlight class="comment">/**<sp/>Invalid<sp/>QC<sp/>Variable<sp/>Dimensions<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1181" refid="group__DSPROC__STATUS_1ga3777e67dea05751f11f6807be569deb1" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EQCVARDIMS<sp/><sp/><sp/><sp/>&quot;Invalid<sp/>QC<sp/>Variable<sp/>Dimensions&quot;</highlight></codeline>
<codeline lineno="1182"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1183"><highlight class="comment">/**<sp/>Invalid<sp/>Data<sp/>Type<sp/>For<sp/>Variable<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1184" refid="group__DSPROC__STATUS_1ga227742bfd848def44cf3418f3ce5e86c" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EVARTYPE<sp/><sp/><sp/><sp/><sp/><sp/>&quot;Invalid<sp/>Data<sp/>Type<sp/>For<sp/>Variable&quot;</highlight></codeline>
<codeline lineno="1185"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1186"><highlight class="comment">/**<sp/>Invalid<sp/>Variable<sp/>Sample<sp/>Size<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1187" refid="group__DSPROC__STATUS_1gacc0c9d3eed0ff2bf47836ac5ed87569f" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ESAMPLESIZE<sp/><sp/><sp/>&quot;Invalid<sp/>Variable<sp/>Sample<sp/>Size&quot;</highlight></codeline>
<codeline lineno="1188"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1189"><highlight class="comment">/**<sp/>Data<sp/>Attribute<sp/>Has<sp/>Invalid<sp/>Data<sp/>Type<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1190" refid="group__DSPROC__STATUS_1ga322f57fcfb605e0814bb4532c6849b47" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EDATAATTTYPE<sp/><sp/>&quot;Data<sp/>Attribute<sp/>Has<sp/>Invalid<sp/>Data<sp/>Type&quot;</highlight></codeline>
<codeline lineno="1191"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1192"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Copy<sp/>File<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1193" refid="group__DSPROC__STATUS_1ga5cacbddd60358c8c91a29c8965b197cd" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EFILECOPY<sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Copy<sp/>File&quot;</highlight></codeline>
<codeline lineno="1194"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1195"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Move<sp/>File<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1196" refid="group__DSPROC__STATUS_1gafe0c2e2f6760128f25e1d84d52d2a960" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EFILEMOVE<sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Move<sp/>File&quot;</highlight></codeline>
<codeline lineno="1197"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1198"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Open<sp/>File<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1199" refid="group__DSPROC__STATUS_1ga550878b8ef3c5f9e84530c0533a97b59" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EFILEOPEN<sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Open<sp/>File&quot;</highlight></codeline>
<codeline lineno="1200"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1201"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Read<sp/>From<sp/>File<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1202" refid="group__DSPROC__STATUS_1ga34c8253e4c51d4f9a2de59f44d2807cd" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EFILEREAD<sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Read<sp/>From<sp/>File&quot;</highlight></codeline>
<codeline lineno="1203"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1204"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Write<sp/>To<sp/>File<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1205" refid="group__DSPROC__STATUS_1gab7c229a26ecf6891b5b6a14d2a402cea" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EFILEWRITE<sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Write<sp/>To<sp/>File&quot;</highlight></codeline>
<codeline lineno="1206"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1207"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Get<sp/>File<sp/>Stats<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1208" refid="group__DSPROC__STATUS_1gafb68b3ef2c023d1ebff166055e87ed96" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EFILESTATS<sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Get<sp/>File<sp/>Stats&quot;</highlight></codeline>
<codeline lineno="1209"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1210"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Delete<sp/>File<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1211" refid="group__DSPROC__STATUS_1ga71b906de7f9f14abeb5e02456475c5d0" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EUNLINK<sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Delete<sp/>File&quot;</highlight></codeline>
<codeline lineno="1212"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1213"><highlight class="comment">/**<sp/>Source<sp/>File<sp/>Does<sp/>Not<sp/>Exist<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1214" refid="group__DSPROC__STATUS_1ga2f98b7dfb3fe0aa6f1573b07d691e18e" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ENOSRCFILE<sp/><sp/><sp/><sp/>&quot;Source<sp/>File<sp/>Does<sp/>Not<sp/>Exist&quot;</highlight></codeline>
<codeline lineno="1215"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1216"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Determine<sp/>File<sp/>Time<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1217" refid="group__DSPROC__STATUS_1ga8f5cbf90ba7eb70c11542bf46411cb7b" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ENOFILETIME<sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Determine<sp/>File<sp/>Time&quot;</highlight></codeline>
<codeline lineno="1218"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1219"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Create<sp/>Destination<sp/>Directory<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1220" refid="group__DSPROC__STATUS_1gab168acfc06cf9c9a02c02abb0bb7a0e1" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EDESTDIRMAKE<sp/><sp/>&quot;Could<sp/>Not<sp/>Create<sp/>Destination<sp/>Directory&quot;</highlight></codeline>
<codeline lineno="1221"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1222"><highlight class="comment">/**<sp/>Time<sp/>Calculation<sp/>Error<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1223" refid="group__DSPROC__STATUS_1ga4ac4a74b3d47b8822c688d5d55f4ce32" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ETIMECALC<sp/><sp/><sp/><sp/><sp/>&quot;Time<sp/>Calculation<sp/>Error&quot;</highlight></codeline>
<codeline lineno="1224"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1225"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Get<sp/>File<sp/>MD5<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1226" refid="group__DSPROC__STATUS_1gae868720d81e842a0038e84ac113fe669" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EFILEMD5<sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Get<sp/>File<sp/>MD5&quot;</highlight></codeline>
<codeline lineno="1227"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1228"><highlight class="comment">/**<sp/>Source<sp/>And<sp/>Destination<sp/>File<sp/>MD5s<sp/>Do<sp/>Not<sp/>Match<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1229" refid="group__DSPROC__STATUS_1ga95741fca6f55deac43e4eeb554b1d0ee" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EMD5CHECK<sp/><sp/><sp/><sp/><sp/>&quot;Source<sp/>And<sp/>Destination<sp/>File<sp/>MD5s<sp/>Do<sp/>Not<sp/>Match&quot;</highlight></codeline>
<codeline lineno="1230"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1231"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Allocate<sp/>Memory<sp/>For<sp/>Dataset<sp/>Variable<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1232" refid="group__DSPROC__STATUS_1gabcfba52b455e8f313a8f058a22fa3495" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ECDSALLOCVAR<sp/><sp/>&quot;Could<sp/>Not<sp/>Allocate<sp/>Memory<sp/>For<sp/>Dataset<sp/>Variable&quot;</highlight></codeline>
<codeline lineno="1233"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1234"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Copy<sp/>Dataset<sp/>Variable<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1235" refid="group__DSPROC__STATUS_1ga0d8ef0c2e2039d752efe9a0d666f0348" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ECDSCOPYVAR<sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Copy<sp/>Dataset<sp/>Variable&quot;</highlight></codeline>
<codeline lineno="1236"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1237"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Copy<sp/>Dataset<sp/>Variable<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1238" refid="group__DSPROC__STATUS_1ga5cd5621a7a5050492bc4238d9222f91f" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ECLONEVAR<sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Clone<sp/>Dataset<sp/>Variable&quot;</highlight></codeline>
<codeline lineno="1239"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1240"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Define<sp/>Dataset<sp/>Variable<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1241" refid="group__DSPROC__STATUS_1ga86eaa60e98b0506b670ed8c3e3d7cb3b" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ECDSDEFVAR<sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Define<sp/>Dataset<sp/>Variable&quot;</highlight></codeline>
<codeline lineno="1242"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1243"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Delete<sp/>Dataset<sp/>Variable<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1244" refid="group__DSPROC__STATUS_1ga4bf06d9726b9219f5b70f77a08332f92" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ECDSDELVAR<sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Delete<sp/>Dataset<sp/>Variable&quot;</highlight></codeline>
<codeline lineno="1245"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1246"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Copy<sp/>Dataset<sp/>Metadata<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1247" refid="group__DSPROC__STATUS_1ga425360bb5b08adad6a0ec9860fb400af" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ECDSCOPY<sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Copy<sp/>Dataset<sp/>Metadata&quot;</highlight></codeline>
<codeline lineno="1248"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1249"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Change<sp/>Attribute<sp/>Value<sp/>In<sp/>Dataset<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1250" refid="group__DSPROC__STATUS_1ga2e6fa221027625ba3f83ff4c327d83a2" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ECDSCHANGEATT<sp/>&quot;Could<sp/>Not<sp/>Change<sp/>Attribute<sp/>Value<sp/>In<sp/>Dataset&quot;</highlight></codeline>
<codeline lineno="1251"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1252"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Set<sp/>Attribute<sp/>Value<sp/>In<sp/>Dataset<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1253" refid="group__DSPROC__STATUS_1ga8bc036b0bb04d86d17086fec96a569f3" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ECDSSETATT<sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Set<sp/>Attribute<sp/>Value<sp/>In<sp/>Dataset&quot;</highlight></codeline>
<codeline lineno="1254"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1255"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Set<sp/>Dimension<sp/>Length<sp/>In<sp/>Dataset<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1256" refid="group__DSPROC__STATUS_1ga2510060a562b39a89a116442ceec8c04" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ECDSSETDIM<sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Set<sp/>Dimension<sp/>Length<sp/>In<sp/>Dataset&quot;</highlight></codeline>
<codeline lineno="1257"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1258"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Set<sp/>Variable<sp/>Data<sp/>In<sp/>Dataset<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1259" refid="group__DSPROC__STATUS_1ga29c532543589f2e3de61ba6fd86a7b74" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ECDSSETDATA<sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Set<sp/>Variable<sp/>Data<sp/>In<sp/>Dataset&quot;</highlight></codeline>
<codeline lineno="1260"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1261"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Set<sp/>Time<sp/>Values<sp/>In<sp/>Dataset<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1262" refid="group__DSPROC__STATUS_1ga0a1e704f7d8e7c509b8d0b26b920a600" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ECDSSETTIME<sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Set<sp/>Time<sp/>Values<sp/>In<sp/>Dataset&quot;</highlight></codeline>
<codeline lineno="1263"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1264"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Get<sp/>Time<sp/>Values<sp/>From<sp/>Dataset<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1265" refid="group__DSPROC__STATUS_1gaf4d6e65511fa56034bdee8886a49659b" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ECDSGETTIME<sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Get<sp/>Time<sp/>Values<sp/>From<sp/>Dataset&quot;</highlight></codeline>
<codeline lineno="1266"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1267"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Merge<sp/>Datasets<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1268" refid="group__DSPROC__STATUS_1ga30c0e08464fb558ad53b2b3d99663c96" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EMERGE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Merge<sp/>Datasets&quot;</highlight></codeline>
<codeline lineno="1269"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1270"><highlight class="comment">/**<sp/>Invalid<sp/>Cell<sp/>Boundary<sp/>Variable<sp/>or<sp/>Definition<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1271" refid="group__DSPROC__STATUS_1ga23f0752494385b64b5491e874d0dca6d" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EBOUNDSVAR<sp/><sp/><sp/><sp/>&quot;Invalid<sp/>Cell<sp/>Boundary<sp/>Variable<sp/>or<sp/>Definition&quot;</highlight></codeline>
<codeline lineno="1272"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1273"><highlight class="comment">/**<sp/>DOD<sp/>Not<sp/>Defined<sp/>In<sp/>Database<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1274" refid="group__DSPROC__STATUS_1gad03ffcc3419e13cb6b620fa4f3bc793c" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ENODOD<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;DOD<sp/>Not<sp/>Defined<sp/>In<sp/>Database&quot;</highlight></codeline>
<codeline lineno="1275"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1276"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Find<sp/>Data<sp/>Retriever<sp/>Information<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1277" refid="group__DSPROC__STATUS_1gae71f6e4a5df787d1b3ab1ffaa626dfb5" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ENORETRIEVER<sp/><sp/>&quot;Could<sp/>Not<sp/>Find<sp/>Retriever<sp/>Definition<sp/>In<sp/>Database&quot;</highlight></codeline>
<codeline lineno="1278"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1279"><highlight class="comment">/**<sp/>Invalid<sp/>Retriever<sp/>Definition<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1280" refid="group__DSPROC__STATUS_1gaadc4344c45de7818cc611d5a3e24ec27" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EBADRETRIEVER<sp/>&quot;Invalid<sp/>Retriever<sp/>Definition&quot;</highlight></codeline>
<codeline lineno="1281"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1282"><highlight class="comment">/**<sp/>Required<sp/>Variable<sp/>Missing<sp/>From<sp/>Dataset<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1283" refid="group__DSPROC__STATUS_1gae03b888270c044f6f34e02adfd7ff937" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EREQVAR<sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;Required<sp/>Variable<sp/>Missing<sp/>From<sp/>Dataset&quot;</highlight></codeline>
<codeline lineno="1284"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1285"><highlight class="comment">/**<sp/>Required<sp/>Attribute<sp/>Variable<sp/>Missing<sp/>From<sp/>Variable<sp/>or<sp/>Dataset<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1286" refid="group__DSPROC__STATUS_1ga91f3f82f8f1dded470240491f55627c6" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EREQATT<sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;Required<sp/>Attribute<sp/>Variable<sp/>Missing<sp/>From<sp/>Variable<sp/>or<sp/>Dataset&quot;</highlight></codeline>
<codeline lineno="1287"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1288"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Retrieve<sp/>Input<sp/>Data<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1289" refid="group__DSPROC__STATUS_1ga3d5447db76cc4de3e4d6b1c72908a5b3" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ERETRIEVER<sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Retrieve<sp/>Input<sp/>Data&quot;</highlight></codeline>
<codeline lineno="1290"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1291"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Create<sp/>NetCDF<sp/>File<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1292" refid="group__DSPROC__STATUS_1gaa0c99dff8b9eff712f0a94e3272daef3" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ENCCREATE<sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Create<sp/>NetCDF<sp/>File&quot;</highlight></codeline>
<codeline lineno="1293"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1294"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Open<sp/>NetCDF<sp/>File<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1295" refid="group__DSPROC__STATUS_1ga28ca5f22c79652416c1e5051069daace" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ENCOPEN<sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Open<sp/>NetCDF<sp/>File&quot;</highlight></codeline>
<codeline lineno="1296"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1297"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Close<sp/>NetCDF<sp/>File<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1298" refid="group__DSPROC__STATUS_1ga9789a9a0d973984b052fa746d1c4224d" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ENCCLOSE<sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Close<sp/>NetCDF<sp/>File&quot;</highlight></codeline>
<codeline lineno="1299"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1300"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Close<sp/>NetCDF<sp/>File<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1301" refid="group__DSPROC__STATUS_1gadd9f72c5beed364fc1af57f8f7be1fb0" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ENCSYNC<sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Sync<sp/>NetCDF<sp/>File&quot;</highlight></codeline>
<codeline lineno="1302"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1303"><highlight class="comment">/**<sp/>NetCDF<sp/>File<sp/>Read<sp/>Error<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1304" refid="group__DSPROC__STATUS_1ga11b31db537abc1c8fcf2152316f6e3f8" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ENCREAD<sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Read<sp/>From<sp/>NetCDF<sp/>File&quot;</highlight></codeline>
<codeline lineno="1305"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1306"><highlight class="comment">/**<sp/>NetCDF<sp/>File<sp/>Write<sp/>Error<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1307" refid="group__DSPROC__STATUS_1ga1c71b6b9e7913d7abf4f8a0bede248c3" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ENCWRITE<sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Write<sp/>To<sp/>NetCDF<sp/>File&quot;</highlight></codeline>
<codeline lineno="1308"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1309"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Find<sp/>Data<sp/>Transform<sp/>Information<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1310" refid="group__DSPROC__STATUS_1gaa9d5d5dc92761f7075953da35a375a39" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ENOTRANSFORM<sp/><sp/>&quot;Could<sp/>Not<sp/>Find<sp/>Data<sp/>Transform<sp/>Information&quot;</highlight></codeline>
<codeline lineno="1311"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1312"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Find<sp/>Data<sp/>Transform<sp/>Information<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1313" refid="group__DSPROC__STATUS_1ga7eaba1179b32e82cbde804d9e9b076ae" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ETRANSFORM<sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Transform<sp/>Input<sp/>Data&quot;</highlight></codeline>
<codeline lineno="1314"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1315"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Create<sp/>Consolidated<sp/>Transformation<sp/>QC<sp/>Variable<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1316" refid="group__DSPROC__STATUS_1gac2d95f75958f353656e7603fc9e5bd49" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ETRANSQCVAR<sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Create<sp/>Consolidated<sp/>Transformation<sp/>QC<sp/>Variable&quot;</highlight></codeline>
<codeline lineno="1317"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1318"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Load<sp/>Transform<sp/>Parameters<sp/>File<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1319" refid="group__DSPROC__STATUS_1ga7fae90a86c49f78c27089cd466e49e2e" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ETRANSPARAMLOAD<sp/>&quot;Could<sp/>Not<sp/>Load<sp/>Transform<sp/>Parameters<sp/>File&quot;</highlight></codeline>
<codeline lineno="1320"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1321"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Map<sp/>Input<sp/>Variable<sp/>To<sp/>Output<sp/>Variable<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1322" refid="group__DSPROC__STATUS_1gaace4472f609ae1ed8f1c783a2a699697" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_EVARMAP<sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Map<sp/>Input<sp/>Variable<sp/>To<sp/>Output<sp/>Variable&quot;</highlight></codeline>
<codeline lineno="1323"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1324"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Parse<sp/>Input<sp/>CSV<sp/>File<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1325" refid="group__DSPROC__STATUS_1ga578f7f64ebf563e305ca5ee235431876" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ECSVPARSER<sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Parse<sp/>CSV<sp/>File&quot;</highlight></codeline>
<codeline lineno="1326"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1327"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Read<sp/>CSV<sp/>Ingest<sp/>Configuration<sp/>File<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1328" refid="group__DSPROC__STATUS_1ga0db2287a71acfedc1385cf58bb515549" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ECSVCONF<sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Read<sp/>CSV<sp/>Ingest<sp/>Configuration<sp/>File&quot;</highlight></codeline>
<codeline lineno="1329"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1330"><highlight class="comment">/**<sp/>Could<sp/>Not<sp/>Map<sp/>Input<sp/>CSV<sp/>Data<sp/>To<sp/>Output<sp/>Dataset<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1331" refid="group__DSPROC__STATUS_1gabf8a13e4ec821b660a6fe9adc438246e" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DSPROC_ECSV2CDS<sp/><sp/><sp/><sp/><sp/><sp/>&quot;Could<sp/>Not<sp/>Map<sp/>Input<sp/>CSV<sp/>Data<sp/>To<sp/>Output<sp/>Dataset&quot;</highlight></codeline>
<codeline lineno="1332"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1333"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1334"><highlight class="normal"></highlight></codeline>
<codeline lineno="1335"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1336"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="1337"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_FILE_UTILS<sp/>File<sp/>Utilities</highlight></codeline>
<codeline lineno="1338"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1339"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1340"><highlight class="normal"></highlight></codeline>
<codeline lineno="1341"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__FILE__UTILS_1gacbd4563e78e2004815401f48fb5211e1" kindref="member" tooltip="Copy a file.">dsproc_copy_file</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*src_file,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*dest_file);</highlight></codeline>
<codeline lineno="1342"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__FILE__UTILS_1ga14a2e8923f7eff01a4b11abdac5584fb" kindref="member" tooltip="Move a file.">dsproc_move_file</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*src_file,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*dest_file);</highlight></codeline>
<codeline lineno="1343"><highlight class="normal">FILE<sp/><sp/><sp/>*<ref refid="group__DSPROC__FILE__UTILS_1ga085c515b2aabe7c4461c389e228e3bb9" kindref="member" tooltip="Open a file for reading.">dsproc_open_file</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*file);</highlight></codeline>
<codeline lineno="1344"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1345"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1346"><highlight class="normal"></highlight></codeline>
<codeline lineno="1347"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1348"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="1349"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_INGEST_RENAME_RAW<sp/>Ingest:<sp/>Rename<sp/>Raw</highlight></codeline>
<codeline lineno="1350"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1351"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1352"><highlight class="normal"></highlight></codeline>
<codeline lineno="1353"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__INGEST__RENAME__RAW_1ga50176865b24039b2b94b7e1b632fae90" kindref="member" tooltip="Rename a data file.">dsproc_rename</ref>(</highlight></codeline>
<codeline lineno="1354"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ds_id,</highlight></codeline>
<codeline lineno="1355"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*file_path,</highlight></codeline>
<codeline lineno="1356"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*file_name,</highlight></codeline>
<codeline lineno="1357"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/><sp/><sp/>begin_time,</highlight></codeline>
<codeline lineno="1358"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/><sp/><sp/>end_time);</highlight></codeline>
<codeline lineno="1359"><highlight class="normal"></highlight></codeline>
<codeline lineno="1360"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__INGEST__RENAME__RAW_1ga4e427c3c9a41ba5f8b1de75f049c1167" kindref="member" tooltip="Rename a data file.">dsproc_rename_tv</ref>(</highlight></codeline>
<codeline lineno="1361"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ds_id,</highlight></codeline>
<codeline lineno="1362"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>*file_path,</highlight></codeline>
<codeline lineno="1363"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>*file_name,</highlight></codeline>
<codeline lineno="1364"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="group__ARMUTILS__TIME__UTILS_1gaeba0d8f51eb0a83c2b01ecf27e0b3260" kindref="member" external="libarmutils.tag">timeval_t</ref><sp/>*begin_time,</highlight></codeline>
<codeline lineno="1365"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="group__ARMUTILS__TIME__UTILS_1gaeba0d8f51eb0a83c2b01ecf27e0b3260" kindref="member" external="libarmutils.tag">timeval_t</ref><sp/>*end_time);</highlight></codeline>
<codeline lineno="1366"><highlight class="normal"></highlight></codeline>
<codeline lineno="1367"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__INGEST__RENAME__RAW_1ga53109c1fbd8cf18607ab2e0428f0a3a2" kindref="member" tooltip="Rename a bad data file.">dsproc_rename_bad</ref>(</highlight></codeline>
<codeline lineno="1368"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ds_id,</highlight></codeline>
<codeline lineno="1369"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*file_path,</highlight></codeline>
<codeline lineno="1370"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*file_name,</highlight></codeline>
<codeline lineno="1371"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/><sp/><sp/>file_time);</highlight></codeline>
<codeline lineno="1372"><highlight class="normal"></highlight></codeline>
<codeline lineno="1373"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__INGEST__RENAME__RAW_1ga725a5e14b747b4401949d357331c05a7" kindref="member" tooltip="Determine the portion of the original file name to preserve.">dsproc_set_preserve_dots_from_name</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ds_id,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*file_name);</highlight></codeline>
<codeline lineno="1374"><highlight class="normal"></highlight></codeline>
<codeline lineno="1375"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__INGEST__RENAME__RAW_1gac6cefb871da1d413aa09d06bef706357" kindref="member" tooltip="Set the portion of file names to preserve when they are renamed.">dsproc_set_rename_preserve_dots</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ds_id,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>preserve_dots);</highlight></codeline>
<codeline lineno="1376"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1377"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1378"><highlight class="normal"></highlight></codeline>
<codeline lineno="1379"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1380"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="1381"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_CSV_UTILITIES<sp/>Ingest:<sp/>CSV<sp/>Utility<sp/>Functions</highlight></codeline>
<codeline lineno="1382"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1383"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1384"><highlight class="normal"></highlight></codeline>
<codeline lineno="1385"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__UTILITIES_1gaeb15d1c5ca84e61fea37af3459ebddd9" kindref="member" tooltip="Count the number of delimiters in a string.">dsproc_count_csv_delims</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*strp,<sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>delim);</highlight></codeline>
<codeline lineno="1386"><highlight class="normal"></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<ref refid="group__DSPROC__CSV__UTILITIES_1gaaf69e4ace9b6f76769e3e7f86e5af6fa" kindref="member" tooltip="Find the next delimiter in a string.">dsproc_find_csv_delim</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*strp,<sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>delim);</highlight></codeline>
<codeline lineno="1387"><highlight class="normal"></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<ref refid="group__DSPROC__CSV__UTILITIES_1ga8ef3bf82a2b92fb4644c4032f82b26fb" kindref="member" tooltip="Skip white-space characters that do not match the delimiter.">dsproc_skip_csv_whitespace</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*strp,<sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>delim);</highlight></codeline>
<codeline lineno="1388"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__UTILITIES_1gaee23cbd2ea0c54ca3562572b661c80da" kindref="member" tooltip="Split a delimited string into list of strings.">dsproc_split_csv_string</ref>(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*strp,<sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>delim,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>length,<sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**list);</highlight></codeline>
<codeline lineno="1389"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1390"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1391"><highlight class="normal"></highlight></codeline>
<codeline lineno="1392"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1393"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="1394"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_CSV_FILE_PARSING<sp/>Ingest:<sp/>CSV<sp/>Parser</highlight></codeline>
<codeline lineno="1395"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1396"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1397"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1398"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="1399"><highlight class="comment"><sp/>*<sp/><sp/>CSV<sp/>Parsing<sp/>Structure.</highlight></codeline>
<codeline lineno="1400"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1401" refid="structCSVParser" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">struct</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1402"><highlight class="normal">{</highlight></codeline>
<codeline lineno="1403" refid="structCSVParser_1aacb5e401cc8b200bcf5a5a3e7e3b67c5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<ref refid="structCSVParser_1aacb5e401cc8b200bcf5a5a3e7e3b67c5" kindref="member" tooltip="path to the directory the file is in">file_path</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>path<sp/>to<sp/>the<sp/>directory<sp/>the<sp/>file<sp/>is<sp/>in<sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1404" refid="structCSVParser_1af01daaa997db9798eb0d766678fa7b74" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<ref refid="structCSVParser_1af01daaa997db9798eb0d766678fa7b74" kindref="member" tooltip="name of the file">file_name</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>name<sp/>of<sp/>the<sp/>file<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1405" refid="structCSVParser_1ace1aea1baf684a2fcab314089d26b39f" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal">stat<sp/><sp/>file_stats;<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>file<sp/>stats<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1406" refid="structCSVParser_1a1faa3bb7bdd7e546e1668648fac7ffb9" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<ref refid="structCSVParser_1a1faa3bb7bdd7e546e1668648fac7ffb9" kindref="member" tooltip="in memory copy of the parsed data file">file_data</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>in<sp/>memory<sp/>copy<sp/>of<sp/>the<sp/>parsed<sp/>data<sp/>file<sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1407" refid="structCSVParser_1a9f67753783d87dc39bfc206048df5bfb" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser_1a9f67753783d87dc39bfc206048df5bfb" kindref="member" tooltip="number of lines in the file">nlines</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>number<sp/>of<sp/>lines<sp/>in<sp/>the<sp/>file<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1408" refid="structCSVParser_1a48d0a21bb761d2b7ba46d7ae14a0ada6" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>**<ref refid="structCSVParser_1a48d0a21bb761d2b7ba46d7ae14a0ada6" kindref="member" tooltip="array of line pointers">lines</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>array<sp/>of<sp/>line<sp/>pointers<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1409" refid="structCSVParser_1a3396264df59972ad5b6d1c97dbc3e9af" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser_1a3396264df59972ad5b6d1c97dbc3e9af" kindref="member" tooltip="current line number">linenum</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>current<sp/>line<sp/>number<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1410" refid="structCSVParser_1a2d4b81ea918b1043b4b991c5979123d1" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<ref refid="structCSVParser_1a2d4b81ea918b1043b4b991c5979123d1" kindref="member" tooltip="pointer to the current line in memory">linep</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>pointer<sp/>to<sp/>the<sp/>current<sp/>line<sp/>in<sp/>memory<sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1411"><highlight class="normal"></highlight></codeline>
<codeline lineno="1412" refid="structCSVParser_1a2254416ecfc54321c8dc3f9b9a1cfdbc" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>**<ref refid="structCSVParser_1a2254416ecfc54321c8dc3f9b9a1cfdbc" kindref="member" tooltip="pointers to the header fields">headers</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>pointers<sp/>to<sp/>the<sp/>header<sp/>fields<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1413" refid="structCSVParser_1a8c0820a5397bc3739e111c83dbf9c1ec" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>***<ref refid="structCSVParser_1a8c0820a5397bc3739e111c83dbf9c1ec" kindref="member" tooltip="pointers to the field values">values</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>pointers<sp/>to<sp/>the<sp/>field<sp/>values<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1414" refid="structCSVParser_1aaf4e666a40dcc7574c32e0c0ce3f50ee" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser_1aaf4e666a40dcc7574c32e0c0ce3f50ee" kindref="member" tooltip="number of fields per record">nfields</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>number<sp/>of<sp/>fields<sp/>per<sp/>record<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1415" refid="structCSVParser_1a801f2d3bb3eb21f0a7bebf0c4ac5acc5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser_1a801f2d3bb3eb21f0a7bebf0c4ac5acc5" kindref="member" tooltip="number of records">nrecs</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>number<sp/>of<sp/>records<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1416"><highlight class="normal"></highlight></codeline>
<codeline lineno="1417" refid="structCSVParser_1af6e8132a1e60709ad4b370ea47a483ba" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<ref refid="structCSVParser_1af6e8132a1e60709ad4b370ea47a483ba" kindref="member" tooltip="parsed copy of header line">header_data</ref>;<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>parsed<sp/>copy<sp/>of<sp/>header<sp/>line<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1418" refid="structCSVParser_1afde3c8a549642c5b6dc4cd7bfcdf2fe4" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<ref refid="structCSVParser_1afde3c8a549642c5b6dc4cd7bfcdf2fe4" kindref="member" tooltip="only used when adding headers manually">free_header</ref>;<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>only<sp/>used<sp/>when<sp/>adding<sp/>headers<sp/>manually<sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1419" refid="structCSVParser_1ab181a4000901501ec81aba28494ba8be" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>**<ref refid="structCSVParser_1ab181a4000901501ec81aba28494ba8be" kindref="member" tooltip="buffer used to parse record lines">rec_buff</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>buffer<sp/>used<sp/>to<sp/>parse<sp/>record<sp/>lines<sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1420"><highlight class="normal"></highlight></codeline>
<codeline lineno="1421" refid="structCSVParser_1a52a66597ffea34f606fe391e62570172" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser_1a52a66597ffea34f606fe391e62570172" kindref="member" tooltip="allocated length of the file_data array">nbytes_alloced</ref>;<sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>allocated<sp/>length<sp/>of<sp/>the<sp/>file_data<sp/>array<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1422" refid="structCSVParser_1ace13435727d6b4e8be4ced2977e3f7e0" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser_1ace13435727d6b4e8be4ced2977e3f7e0" kindref="member" tooltip="allocated length of the lines array">nlines_alloced</ref>;<sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>allocated<sp/>length<sp/>of<sp/>the<sp/>lines<sp/>array<sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1423" refid="structCSVParser_1a24574de37adb1e6d6c79cad16097f8ee" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser_1a24574de37adb1e6d6c79cad16097f8ee" kindref="member" tooltip="number of fields allocated">nfields_alloced</ref>;<sp/></highlight><highlight class="comment">/**&lt;<sp/>number<sp/>of<sp/>fields<sp/>allocated<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1424" refid="structCSVParser_1a30c864b4b158b32cae9fef770a5aed65" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser_1a30c864b4b158b32cae9fef770a5aed65" kindref="member" tooltip="number of records allocated">nrecs_alloced</ref>;<sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>number<sp/>of<sp/>records<sp/>allocated<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1425"><highlight class="normal"></highlight></codeline>
<codeline lineno="1426" refid="structCSVParser_1acbbc6c629ff744f612c1c9301f565919" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser_1acbbc6c629ff744f612c1c9301f565919" kindref="member" tooltip="CSV column delimiter.">delim</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>CSV<sp/>column<sp/>delimiter<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1427" refid="structCSVParser_1a71473e0382127d4ab9a9bdc9133b93ac" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser_1a71473e0382127d4ab9a9bdc9133b93ac" kindref="member" tooltip="estimated number of lines in a file">nlines_guess</ref>;<sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>estimated<sp/>number<sp/>of<sp/>lines<sp/>in<sp/>a<sp/>file<sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1428" refid="structCSVParser_1a9770375ded34547298eb5288e8740471" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser_1a9770375ded34547298eb5288e8740471" kindref="member" tooltip="only used when adding headers manually">nfields_guess</ref>;<sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>only<sp/>used<sp/>when<sp/>adding<sp/>headers<sp/>manually<sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1429"><highlight class="normal"></highlight></codeline>
<codeline lineno="1430" refid="structCSVParser_1a5192919f8820f6dbc97a2b2817ddd61f" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structRETimeList" kindref="compound" external="libarmutils.tag">RETimeList</ref><sp/><sp/>*<ref refid="structCSVParser_1a5192919f8820f6dbc97a2b2817ddd61f" kindref="member" tooltip="compiled list of file time patterns">ft_patterns</ref>;<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>compiled<sp/>list<sp/>of<sp/>file<sp/>time<sp/>patterns<sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1431" refid="structCSVParser_1a281f8e36cf1c8f7153f49933485a0cee" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structRETimeRes" kindref="compound" external="libarmutils.tag">RETimeRes</ref><sp/><sp/><sp/>*<ref refid="structCSVParser_1a281f8e36cf1c8f7153f49933485a0cee" kindref="member" tooltip="file time used internally">ft_result</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>file<sp/>time<sp/>used<sp/>internally<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1432"><highlight class="normal"></highlight></codeline>
<codeline lineno="1433" refid="structCSVParser_1a1f29c3b2810d0656f1cacfd38c84b3ed" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser_1a1f29c3b2810d0656f1cacfd38c84b3ed" kindref="member" tooltip="number of time columns">ntc</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>number<sp/>of<sp/>time<sp/>columns<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1434" refid="structCSVParser_1ab8c90ce0b538e59ae8d288de05ae4415" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>**<ref refid="structCSVParser_1ab8c90ce0b538e59ae8d288de05ae4415" kindref="member" tooltip="list of time column names">tc_names</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>list<sp/>of<sp/>time<sp/>column<sp/>names<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1435" refid="structCSVParser_1ab047bfe68b08b3c3345e3eb99cb7f661" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structRETimeList" kindref="compound" external="libarmutils.tag">RETimeList</ref><sp/>**<ref refid="structCSVParser_1ab047bfe68b08b3c3345e3eb99cb7f661" kindref="member" tooltip="compiled list of time string patterns">tc_patterns</ref>;<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>compiled<sp/>list<sp/>of<sp/>time<sp/>string<sp/>patterns<sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1436" refid="structCSVParser_1a70f7ffe9ccc6d8f9a308a9e487ea5a10" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<ref refid="structCSVParser_1a70f7ffe9ccc6d8f9a308a9e487ea5a10" kindref="member" tooltip="indexes of time columns">tc_index</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>indexes<sp/>of<sp/>time<sp/>columns<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1437"><highlight class="normal"></highlight></codeline>
<codeline lineno="1438" refid="structCSVParser_1ad39fb8c1d2178726f50196f64ea0c01c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__ARMUTILS__TIME__UTILS_1gaeba0d8f51eb0a83c2b01ecf27e0b3260" kindref="member" external="libarmutils.tag">timeval_t</ref><sp/><sp/><sp/>*<ref refid="structCSVParser_1ad39fb8c1d2178726f50196f64ea0c01c" kindref="member" tooltip="array of record times">tvs</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>array<sp/>of<sp/>record<sp/>times<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1439"><highlight class="normal"></highlight></codeline>
<codeline lineno="1440" refid="structCSVParser_1a187ae1de6c978521c262ed95158fa5f5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser_1a187ae1de6c978521c262ed95158fa5f5" kindref="member" tooltip="offset to apply to record times">time_offset</ref>;<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>offset<sp/>to<sp/>apply<sp/>to<sp/>record<sp/>times<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1441" refid="structCSVParser_1af21aa178d603bc057a78aaea04be7b3d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal">tm<sp/><sp/><sp/><sp/>base_tm;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>base<sp/>time<sp/>to<sp/>use<sp/>for<sp/>record<sp/>times<sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1442"><highlight class="normal"></highlight></codeline>
<codeline lineno="1443" refid="structCSVParser_1a89cfe21dbc5894435b2ae7c5e5feaa10" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser_1a89cfe21dbc5894435b2ae7c5e5feaa10" kindref="member" tooltip="threshold used to detect time rollovers">tro_threshold</ref>;<sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>threshold<sp/>used<sp/>to<sp/>detect<sp/>time<sp/>rollovers<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1444" refid="structCSVParser_1a240df9b284affcdef7927b4c7377b46a" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser_1a240df9b284affcdef7927b4c7377b46a" kindref="member" tooltip="offset used to track time rollovers">tro_offset</ref>;<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>offset<sp/>used<sp/>to<sp/>track<sp/>time<sp/>rollovers<sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1445"><highlight class="normal"></highlight></codeline>
<codeline lineno="1446"><highlight class="normal">}<sp/><ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref>;</highlight></codeline>
<codeline lineno="1447"><highlight class="normal"></highlight></codeline>
<codeline lineno="1448"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__FILE__PARSING_1gad06939807c36f7507acc138840042237" kindref="member" tooltip="Free all memory used by a CSVParser structure.">dsproc_free_csv_parser</ref>(<ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/>*csv);</highlight></codeline>
<codeline lineno="1449"><highlight class="normal"></highlight></codeline>
<codeline lineno="1450"><highlight class="normal"></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>**<ref refid="group__DSPROC__CSV__FILE__PARSING_1ga4ed539f97f2df23b1334e4a00e80d96d" kindref="member" tooltip="Get the array of string pointers to the column headers in a CSV file.">dsproc_get_csv_column_headers</ref>(<ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/>*csv,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>*nfields);</highlight></codeline>
<codeline lineno="1451"><highlight class="normal"></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>**<ref refid="group__DSPROC__CSV__FILE__PARSING_1ga50a1f9a854f0a0c6cf79977bd2af3fee" kindref="member" tooltip="Get the array of string pointers for a field in a CSV file.">dsproc_get_csv_field_strvals</ref>(<ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/>*csv,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name);</highlight></codeline>
<codeline lineno="1452"><highlight class="normal"><ref refid="group__ARMUTILS__TIME__UTILS_1gaeba0d8f51eb0a83c2b01ecf27e0b3260" kindref="member" external="libarmutils.tag">timeval_t</ref><sp/><sp/>*<ref refid="group__DSPROC__CSV__FILE__PARSING_1gae44c9bf8b94fe6306f2e58dba47d09bf" kindref="member" tooltip="Get the array of record times after parsing a CSV file.">dsproc_get_csv_timevals</ref>(<ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/>*csv,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>*nrecs);</highlight></codeline>
<codeline lineno="1453"><highlight class="normal"></highlight></codeline>
<codeline lineno="1454"><highlight class="normal">time_t<sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__FILE__PARSING_1ga72afa9a27ecc6d3e38856102fee53681" kindref="member" tooltip="Get the time from a CSV file name.">dsproc_get_csv_file_name_time</ref>(</highlight></codeline>
<codeline lineno="1455"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/><sp/>*csv,</highlight></codeline>
<codeline lineno="1456"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name,</highlight></codeline>
<codeline lineno="1457"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structRETimeRes" kindref="compound" external="libarmutils.tag">RETimeRes</ref><sp/><sp/>*result);</highlight></codeline>
<codeline lineno="1458"><highlight class="normal"></highlight></codeline>
<codeline lineno="1459"><highlight class="normal"></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<ref refid="group__DSPROC__CSV__FILE__PARSING_1ga668bfe92b91c592ad31edb5c07938e4f" kindref="member" tooltip="Get the next line from the file loaded into the CSVParser structure.">dsproc_get_next_csv_line</ref>(<ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/>*csv);</highlight></codeline>
<codeline lineno="1460"><highlight class="normal"></highlight></codeline>
<codeline lineno="1461"><highlight class="normal"><ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/><sp/>*<ref refid="group__DSPROC__CSV__FILE__PARSING_1ga666d233190629839b32c81e3be2306a8" kindref="member" tooltip="Initialize a CSVParser structure.">dsproc_init_csv_parser</ref>(<ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/>*csv);</highlight></codeline>
<codeline lineno="1462"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__FILE__PARSING_1ga926ded3e1f1b5cb1bc4b994f3b006fa7" kindref="member" tooltip="Load a CSV data file into a CSVParser structure.">dsproc_load_csv_file</ref>(<ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/>*csv,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*path,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name);</highlight></codeline>
<codeline lineno="1463"><highlight class="normal"></highlight></codeline>
<codeline lineno="1464"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__FILE__PARSING_1gad3c44c74cf4f6566bced8b3a31e5ff33" kindref="member" tooltip="Parse a header line.">dsproc_parse_csv_header</ref>(<ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/>*csv,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*linep);</highlight></codeline>
<codeline lineno="1465"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__FILE__PARSING_1gad6803b3565f03005c23808e4b1f5200a" kindref="member" tooltip="Parse a record line.">dsproc_parse_csv_record</ref>(<ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/>*csv,<sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*linep,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>flags);</highlight></codeline>
<codeline lineno="1466"><highlight class="normal"></highlight></codeline>
<codeline lineno="1467"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__FILE__PARSING_1ga620350d25fcc7bfa39df18135f8864c3" kindref="member" tooltip="Print CSV header and records.">dsproc_print_csv</ref>(FILE<sp/>*fp,<sp/><ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/>*csv);</highlight></codeline>
<codeline lineno="1468"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__FILE__PARSING_1gae9cffb5e238d64b417fd6a765fd8282b" kindref="member" tooltip="Print CSV header data.">dsproc_print_csv_header</ref>(FILE<sp/>*fp,<sp/><ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/>*csv);</highlight></codeline>
<codeline lineno="1469"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__FILE__PARSING_1ga9f8a4c793ac85de8290654bf67328c7f" kindref="member" tooltip="Print CSV record data.">dsproc_print_csv_record</ref>(FILE<sp/>*fp,<sp/><ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/>*csv);</highlight></codeline>
<codeline lineno="1470"><highlight class="normal"></highlight></codeline>
<codeline lineno="1471"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__FILE__PARSING_1ga3329cb09fdadbcc1b98a6023dc5d28db" kindref="member" tooltip="Set or change a column name in the header.">dsproc_set_csv_column_name</ref>(</highlight></codeline>
<codeline lineno="1472"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/><sp/>*csv,</highlight></codeline>
<codeline lineno="1473"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>index,</highlight></codeline>
<codeline lineno="1474"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name);</highlight></codeline>
<codeline lineno="1475"><highlight class="normal"></highlight></codeline>
<codeline lineno="1476"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__FILE__PARSING_1gac97ef9a13db0c86088dbb1a801b3afe0" kindref="member" tooltip="Set the column delimiter.">dsproc_set_csv_delimiter</ref>(</highlight></codeline>
<codeline lineno="1477"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/>*csv,</highlight></codeline>
<codeline lineno="1478"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>delim);</highlight></codeline>
<codeline lineno="1479"><highlight class="normal"></highlight></codeline>
<codeline lineno="1480"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__FILE__PARSING_1ga379a78e98461f2af243544616e40e36e" kindref="member" tooltip="Set the base time to use for record times.">dsproc_set_csv_base_time</ref>(</highlight></codeline>
<codeline lineno="1481"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/><sp/><sp/>*csv,</highlight></codeline>
<codeline lineno="1482"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/><sp/><sp/><sp/>base_time);</highlight></codeline>
<codeline lineno="1483"><highlight class="normal"></highlight></codeline>
<codeline lineno="1484"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__FILE__PARSING_1ga5c7c01614957bb90a69d73c959d5d672" kindref="member" tooltip="Specify the pattern to use to parse the date/time from the file name.">dsproc_set_csv_file_time_patterns</ref>(</highlight></codeline>
<codeline lineno="1485"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/><sp/><sp/>*csv,</highlight></codeline>
<codeline lineno="1486"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>npatterns,</highlight></codeline>
<codeline lineno="1487"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**patterns);</highlight></codeline>
<codeline lineno="1488"><highlight class="normal"></highlight></codeline>
<codeline lineno="1489"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__FILE__PARSING_1ga7dfc5ea1948261d1ddf488eb58bf9a39" kindref="member" tooltip="Set the time offset to apply to record times.">dsproc_set_csv_time_offset</ref>(</highlight></codeline>
<codeline lineno="1490"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/>*csv,</highlight></codeline>
<codeline lineno="1491"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/><sp/><sp/>time_offset);</highlight></codeline>
<codeline lineno="1492"><highlight class="normal"></highlight></codeline>
<codeline lineno="1493"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__FILE__PARSING_1ga7f514306d4bf10f16bfe3a8c521cda21" kindref="member" tooltip="Specify the pattern to use to parse a date/time column.">dsproc_set_csv_time_patterns</ref>(</highlight></codeline>
<codeline lineno="1494"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/><sp/><sp/>*csv,</highlight></codeline>
<codeline lineno="1495"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*name,</highlight></codeline>
<codeline lineno="1496"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>npatterns,</highlight></codeline>
<codeline lineno="1497"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**patterns);</highlight></codeline>
<codeline lineno="1498"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1499"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1500"><highlight class="normal"></highlight></codeline>
<codeline lineno="1501"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1502"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="1503"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_CSV2CDS<sp/>Ingest:<sp/>CSV<sp/>to<sp/>CDS<sp/>Mapping<sp/>Functions</highlight></codeline>
<codeline lineno="1504"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1505"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1506"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1507"><highlight class="comment">/**<sp/>Mapping<sp/>flag<sp/>to<sp/>specify<sp/>that<sp/>existing<sp/>data<sp/>should<sp/>be<sp/>overwritten<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1508" refid="group__DSPROC__CSV2CDS_1ga3050cdd90bca8880d5f7ab53445c7970" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>CSV_OVERWRITE<sp/><sp/>0x1</highlight></codeline>
<codeline lineno="1509"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1510"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="1511"><highlight class="comment"><sp/>*<sp/><sp/>Structure<sp/>used<sp/>to<sp/>map<sp/>a<sp/>string<sp/>to<sp/>a<sp/>data<sp/>value.</highlight></codeline>
<codeline lineno="1512"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1513" refid="structCSVStrMap" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="1514"><highlight class="normal"></highlight></codeline>
<codeline lineno="1515" refid="structCSVStrMap_1a5bdd38bd3782d3643921c2e6bd422728" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="structCSVStrMap_1a5bdd38bd3782d3643921c2e6bd422728" kindref="member" tooltip="string value in CSV file">strval</ref>;<sp/></highlight><highlight class="comment">/**&lt;<sp/>string<sp/>value<sp/>in<sp/>CSV<sp/>file<sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1516" refid="structCSVStrMap_1a408fd4f88aa98cc31c44e6b1bc984b6e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVStrMap_1a408fd4f88aa98cc31c44e6b1bc984b6e" kindref="member" tooltip="value to use in output dataset">dblval</ref>;<sp/></highlight><highlight class="comment">/**&lt;<sp/>value<sp/>to<sp/>use<sp/>in<sp/>output<sp/>dataset<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1517"><highlight class="normal"></highlight></codeline>
<codeline lineno="1518"><highlight class="normal">}<sp/><ref refid="structCSVStrMap" kindref="compound" tooltip="Structure used to map a string to a data value.">CSVStrMap</ref>;</highlight></codeline>
<codeline lineno="1519"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1520"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="1521"><highlight class="comment"><sp/>*<sp/><sp/>Structure<sp/>used<sp/>to<sp/>map<sp/>CSVParser<sp/>data<sp/>to<sp/>a<sp/>CDSGroup.</highlight></codeline>
<codeline lineno="1522"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1523" refid="structCSV2CDSMap" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="1524"><highlight class="normal"></highlight></codeline>
<codeline lineno="1525" refid="structCSV2CDSMap_1a419f974f1f3714eef6cc6b50c60f9fdc" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="structCSV2CDSMap_1a419f974f1f3714eef6cc6b50c60f9fdc" kindref="member" tooltip="column name in the CSV file">csv_name</ref>;<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>column<sp/>name<sp/>in<sp/>the<sp/>CSV<sp/>file<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1526" refid="structCSV2CDSMap_1a594b717e8c5b187e70fcf400ec7dcd8a" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="structCSV2CDSMap_1a594b717e8c5b187e70fcf400ec7dcd8a" kindref="member" tooltip="units string">csv_units</ref>;<sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>units<sp/>string<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1527" refid="structCSV2CDSMap_1ad1e3819d6556d30c9c405e8a88916c02" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>**<ref refid="structCSV2CDSMap_1ad1e3819d6556d30c9c405e8a88916c02" kindref="member" tooltip="list if missing values in CSV data">csv_missings</ref>;<sp/></highlight><highlight class="comment">/**&lt;<sp/>list<sp/>if<sp/>missing<sp/>values<sp/>in<sp/>CSV<sp/>data<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1528" refid="structCSV2CDSMap_1ab5cc1f1f0113de06a93a1ad5a2296158" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="structCSV2CDSMap_1ab5cc1f1f0113de06a93a1ad5a2296158" kindref="member" tooltip="variable name in the CDS structure">cds_name</ref>;<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>variable<sp/>name<sp/>in<sp/>the<sp/>CDS<sp/>structure<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1529"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1530"><highlight class="comment"><sp/><sp/><sp/><sp/>/**<sp/>list<sp/>of<sp/>string<sp/>to<sp/>double<sp/>mapping<sp/>structures<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1531" refid="structCSV2CDSMap_1a380107fd0114851b5314d14333d6f9e7" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structCSVStrMap" kindref="compound" tooltip="Structure used to map a string to a data value.">CSVStrMap</ref><sp/><sp/><sp/><sp/>*<ref refid="structCSV2CDSMap_1a380107fd0114851b5314d14333d6f9e7" kindref="member" tooltip="list of string to double mapping structures">str_map</ref>;</highlight></codeline>
<codeline lineno="1532"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1533"><highlight class="comment"><sp/><sp/><sp/><sp/>/**<sp/>function<sp/>used<sp/>to<sp/>translate<sp/>a<sp/>string<sp/>to<sp/>a<sp/>double<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1534" refid="structCSV2CDSMap_1ad793c042459a4cf40e6e1fb93d386171" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>double<sp/><sp/><sp/><sp/><sp/><sp/>(*str_to_dbl)(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*strval,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>*status);</highlight></codeline>
<codeline lineno="1535"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1536"><highlight class="comment"><sp/><sp/><sp/><sp/>/**<sp/>advanced<sp/>function<sp/>for<sp/>mapping<sp/>CSV<sp/>data<sp/>to<sp/>CDS<sp/>variable<sp/>data<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1537" refid="structCSV2CDSMap_1aa02bfea2fbce6534df1f7b7233deee0b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>int<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(*set_data)(</highlight></codeline>
<codeline lineno="1538"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*csv_strval,</highlight></codeline>
<codeline lineno="1539"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**csv_missings,</highlight></codeline>
<codeline lineno="1540"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSVar" kindref="compound" external="libcds3.tag">CDSVar</ref><sp/><sp/><sp/><sp/><sp/><sp/>*cds_var,</highlight></codeline>
<codeline lineno="1541"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>cds_sample_size,</highlight></codeline>
<codeline lineno="1542"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="unionCDSData" kindref="compound" external="libcds3.tag">CDSData</ref><sp/><sp/><sp/><sp/><sp/><sp/>cds_missing,</highlight></codeline>
<codeline lineno="1543"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="unionCDSData" kindref="compound" external="libcds3.tag">CDSData</ref><sp/><sp/><sp/><sp/><sp/><sp/>cds_datap);</highlight></codeline>
<codeline lineno="1544"><highlight class="normal"></highlight></codeline>
<codeline lineno="1545"><highlight class="normal">}<sp/><ref refid="structCSV2CDSMap" kindref="compound" tooltip="Structure used to map CSVParser data to a CDSGroup.">CSV2CDSMap</ref>;</highlight></codeline>
<codeline lineno="1546"><highlight class="normal"></highlight></codeline>
<codeline lineno="1547"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV2CDS_1gad339874ef4e4de02bec149dd2b774e7d" kindref="member" tooltip="Map CSVParser data to variables in a CDSGroup.">dsproc_map_csv_to_cds</ref>(</highlight></codeline>
<codeline lineno="1548"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/><sp/>*csv,</highlight></codeline>
<codeline lineno="1549"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>csv_start,</highlight></codeline>
<codeline lineno="1550"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>csv_count,</highlight></codeline>
<codeline lineno="1551"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSV2CDSMap" kindref="compound" tooltip="Structure used to map CSVParser data to a CDSGroup.">CSV2CDSMap</ref><sp/>*map,</highlight></codeline>
<codeline lineno="1552"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/>*cds,</highlight></codeline>
<codeline lineno="1553"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>cds_start,</highlight></codeline>
<codeline lineno="1554"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>flags);</highlight></codeline>
<codeline lineno="1555"><highlight class="normal"></highlight></codeline>
<codeline lineno="1556"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV2CDS_1gaecc30e8030f329d767f8483fc18c08a7" kindref="member" tooltip="Map CSVParser data to variables in a CDSGroup using CSV record indexes.">dsproc_map_csv_to_cds_by_index</ref>(</highlight></codeline>
<codeline lineno="1557"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/><sp/>*csv,</highlight></codeline>
<codeline lineno="1558"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*csv_indexes,</highlight></codeline>
<codeline lineno="1559"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>csv_count,</highlight></codeline>
<codeline lineno="1560"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSV2CDSMap" kindref="compound" tooltip="Structure used to map CSVParser data to a CDSGroup.">CSV2CDSMap</ref><sp/>*map,</highlight></codeline>
<codeline lineno="1561"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/><sp/>*cds,</highlight></codeline>
<codeline lineno="1562"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>cds_start,</highlight></codeline>
<codeline lineno="1563"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>flags);</highlight></codeline>
<codeline lineno="1564"><highlight class="normal"></highlight></codeline>
<codeline lineno="1565"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV2CDS_1gac4b7954a1ea4a459aa31b483515f94f2" kindref="member" tooltip="Add a string to double conversion function to a CSV2CDS Mapping structure.">dsproc_add_csv_str_to_dbl_function</ref>(</highlight></codeline>
<codeline lineno="1566"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSV2CDSMap" kindref="compound" tooltip="Structure used to map CSVParser data to a CDSGroup.">CSV2CDSMap</ref><sp/>*map,</highlight></codeline>
<codeline lineno="1567"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*csv_name,</highlight></codeline>
<codeline lineno="1568"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><sp/><sp/><sp/>(*str_to_dbl)(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*strval,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>*status));</highlight></codeline>
<codeline lineno="1569"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1570"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1571"><highlight class="normal"></highlight></codeline>
<codeline lineno="1572"><highlight class="normal"></highlight><highlight class="comment">/******************************************************************************/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1573"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="1574"><highlight class="comment"><sp/>*<sp/><sp/>@defgroup<sp/>DSPROC_CSV_INGEST_CONFIG<sp/>Ingest:<sp/>CSV<sp/>Ingest<sp/>Config</highlight></codeline>
<codeline lineno="1575"><highlight class="comment"><sp/>*/</highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1576"><highlight class="comment">/*@{*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1577"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1578"><highlight class="comment">/**<sp/>Flag<sp/>used<sp/>by<sp/>csv_read_conf_file()<sp/>to<sp/>check<sp/>for<sp/>config<sp/>files<sp/>under</highlight></codeline>
<codeline lineno="1579"><highlight class="comment"><sp/>*<sp/><sp/>the<sp/>root<sp/>directory<sp/>defined<sp/>by<sp/>the<sp/>CONF_DATA<sp/>environment<sp/>variable.<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1580"><highlight class="normal"></highlight></codeline>
<codeline lineno="1581" refid="group__DSPROC__CSV__INGEST__CONFIG_1gac7c7a2973adb5cf8abea0688012192f6" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>CSV_CHECK_DATA_CONF<sp/><sp/>0x01</highlight></codeline>
<codeline lineno="1582"><highlight class="preprocessor"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1583"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="1584"><highlight class="comment"><sp/>*<sp/><sp/>CSV<sp/>Time<sp/>Column<sp/>Names<sp/>and<sp/>Patterns.</highlight></codeline>
<codeline lineno="1585"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1586" refid="structCSVTimeCol" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">struct</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1587"><highlight class="normal">{</highlight></codeline>
<codeline lineno="1588" refid="structCSVTimeCol_1a348e0bf69fcc479116a6dc9eb90b1a2f" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*<ref refid="structCSVTimeCol_1a348e0bf69fcc479116a6dc9eb90b1a2f" kindref="member" tooltip="name of the date/time column">name</ref>;<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>name<sp/>of<sp/>the<sp/>date/time<sp/>column<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1589" refid="structCSVTimeCol_1a2ff505b4e7e291d3137f55b6bdd09cf4" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVTimeCol_1a2ff505b4e7e291d3137f55b6bdd09cf4" kindref="member" tooltip="number of possible time string patterns">npatterns</ref>;<sp/></highlight><highlight class="comment">/**&lt;<sp/>number<sp/>of<sp/>possible<sp/>time<sp/>string<sp/>patterns<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1590" refid="structCSVTimeCol_1aab92b0127992495f15ddacf86845fcb3" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**<ref refid="structCSVTimeCol_1aab92b0127992495f15ddacf86845fcb3" kindref="member" tooltip="list of possile time string patterns">patterns</ref>;<sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>list<sp/>of<sp/>possile<sp/>time<sp/>string<sp/>patterns<sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1591"><highlight class="normal"></highlight></codeline>
<codeline lineno="1592"><highlight class="normal">}<sp/><ref refid="structCSVTimeCol" kindref="compound" tooltip="CSV Time Column Names and Patterns.">CSVTimeCol</ref>;</highlight></codeline>
<codeline lineno="1593"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1594"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="1595"><highlight class="comment"><sp/>*<sp/><sp/>CSV<sp/>Field<sp/>Map<sp/>Structure.</highlight></codeline>
<codeline lineno="1596"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1597" refid="structCSVFieldMap" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">struct</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1598"><highlight class="normal">{</highlight></codeline>
<codeline lineno="1599" refid="structCSVFieldMap_1a145e601d26b782ee79a3e29b2d255ff0" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*<ref refid="structCSVFieldMap_1a145e601d26b782ee79a3e29b2d255ff0" kindref="member" tooltip="name of the variable in the output dataset">out_name</ref>;<sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>name<sp/>of<sp/>the<sp/>variable<sp/>in<sp/>the<sp/>output<sp/>dataset<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1600" refid="structCSVFieldMap_1a4a87a49db92e669cea88efabd3bb7d9e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*<ref refid="structCSVFieldMap_1a4a87a49db92e669cea88efabd3bb7d9e" kindref="member" tooltip="name of the column in the input CSV file">col_name</ref>;<sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>name<sp/>of<sp/>the<sp/>column<sp/>in<sp/>the<sp/>input<sp/>CSV<sp/>file<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1601" refid="structCSVFieldMap_1a388273db7658c39ddf038ecb3c6a6d3b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*<ref refid="structCSVFieldMap_1a388273db7658c39ddf038ecb3c6a6d3b" kindref="member" tooltip="units used in the CSV file">units</ref>;<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>units<sp/>used<sp/>in<sp/>the<sp/>CSV<sp/>file<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1602" refid="structCSVFieldMap_1a16fab8a1910e8df56357ae4bd527a4a2" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVFieldMap_1a16fab8a1910e8df56357ae4bd527a4a2" kindref="member" tooltip="number of missing values used in the CSV file">nmissings</ref>;<sp/></highlight><highlight class="comment">/**&lt;<sp/>number<sp/>of<sp/>missing<sp/>values<sp/>used<sp/>in<sp/>the<sp/>CSV<sp/>file<sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1603" refid="structCSVFieldMap_1a03fd731152892832ad82e56f3f0bad2c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**<ref refid="structCSVFieldMap_1a03fd731152892832ad82e56f3f0bad2c" kindref="member" tooltip="list of missing values used in the CSV file">missings</ref>;<sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>list<sp/>of<sp/>missing<sp/>values<sp/>used<sp/>in<sp/>the<sp/>CSV<sp/>file<sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1604" refid="structCSVFieldMap_1a9c55c67e41830f903c2b518d2033288c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<ref refid="structCSVFieldMap_1a9c55c67e41830f903c2b518d2033288c" kindref="member" tooltip="buffer used to parse the string of missing values">missbuf</ref>;<sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>buffer<sp/>used<sp/>to<sp/>parse<sp/>the<sp/>string<sp/>of<sp/>missing<sp/>values<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1605"><highlight class="normal"></highlight></codeline>
<codeline lineno="1606"><highlight class="normal">}<sp/><ref refid="structCSVFieldMap" kindref="compound" tooltip="CSV Field Map Structure.">CSVFieldMap</ref>;</highlight></codeline>
<codeline lineno="1607"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1608"><highlight class="comment">/**</highlight></codeline>
<codeline lineno="1609"><highlight class="comment"><sp/>*<sp/><sp/>CSV<sp/>Configuration<sp/>Structure.</highlight></codeline>
<codeline lineno="1610"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1611" refid="structCSVConf" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">struct</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1612"><highlight class="normal">{</highlight></codeline>
<codeline lineno="1613"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Set<sp/>by<sp/>csv_init_conf<sp/>function<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1614"><highlight class="normal"></highlight></codeline>
<codeline lineno="1615" refid="structCSVConf_1a2883d6dd67cc1a0ac8ae6267e351dace" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="structCSVConf_1a2883d6dd67cc1a0ac8ae6267e351dace" kindref="member" tooltip="the process name">proc</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>the<sp/>process<sp/>name<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1616" refid="structCSVConf_1aa4b8f4af05db378c342565699d011cf7" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="structCSVConf_1aa4b8f4af05db378c342565699d011cf7" kindref="member" tooltip="the site name">site</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>the<sp/>site<sp/>name<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1617" refid="structCSVConf_1a54386bad87125dba3e362700d6c4e7eb" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="structCSVConf_1a54386bad87125dba3e362700d6c4e7eb" kindref="member" tooltip="the facility name">fac</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>the<sp/>facility<sp/>name<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1618" refid="structCSVConf_1aba56067a3d39de2e7b7bb66dcaf9c6cf" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="structCSVConf_1aba56067a3d39de2e7b7bb66dcaf9c6cf" kindref="member" tooltip="the conf file base name">name</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>the<sp/>conf<sp/>file<sp/>base<sp/>name<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1619" refid="structCSVConf_1ad47e51e6c9c0633522393f3139c77edf" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="structCSVConf_1ad47e51e6c9c0633522393f3139c77edf" kindref="member" tooltip="the conf file level">level</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>the<sp/>conf<sp/>file<sp/>level<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1620"><highlight class="normal"></highlight></codeline>
<codeline lineno="1621"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Set<sp/>by<sp/>csv_read_conf_file<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1622"><highlight class="normal"></highlight></codeline>
<codeline lineno="1623" refid="structCSVConf_1a1b54d77fdca8aa04559d9bd63fea085d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="structCSVConf_1a1b54d77fdca8aa04559d9bd63fea085d" kindref="member" tooltip="path to the configuration file">file_path</ref>;<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>path<sp/>to<sp/>the<sp/>configuration<sp/>file<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1624" refid="structCSVConf_1a16f0724fbd89dec2292df716432804bb" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="structCSVConf_1a16f0724fbd89dec2292df716432804bb" kindref="member" tooltip="name of the configuration file">file_name</ref>;<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>name<sp/>of<sp/>the<sp/>configuration<sp/>file<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1625"><highlight class="normal"></highlight></codeline>
<codeline lineno="1626"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Used<sp/>to<sp/>find<sp/>configuration<sp/>files<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1627"><highlight class="normal"></highlight></codeline>
<codeline lineno="1628" refid="structCSVConf_1ac668b473eb3c61d83363d98c4c12eb00" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVConf_1ac668b473eb3c61d83363d98c4c12eb00" kindref="member" tooltip="number of conf file search paths">search_npaths</ref>;<sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>number<sp/>of<sp/>conf<sp/>file<sp/>search<sp/>paths<sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1629" refid="structCSVConf_1a75a067f8800a4ede6b372c201280030d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>**<ref refid="structCSVConf_1a75a067f8800a4ede6b372c201280030d" kindref="member" tooltip="list of conf file search paths">search_paths</ref>;<sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>list<sp/>of<sp/>conf<sp/>file<sp/>search<sp/>paths<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1630" refid="structCSVConf_1ad61ee675408abaf4648d5dd83617a616" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structDirList" kindref="compound" external="libarmutils.tag">DirList</ref><sp/><sp/><sp/><sp/><sp/><sp/>*<ref refid="structCSVConf_1ad61ee675408abaf4648d5dd83617a616" kindref="member" tooltip="list of time varying conf files">dirlist</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>list<sp/>of<sp/>time<sp/>varying<sp/>conf<sp/>files<sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1631"><highlight class="normal"></highlight></codeline>
<codeline lineno="1632"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Read<sp/>from<sp/>conf<sp/>file<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1633"><highlight class="normal"></highlight></codeline>
<codeline lineno="1634" refid="structCSVConf_1ac86e2fb2658e327be2d67bf4c9c0c457" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVConf_1ac86e2fb2658e327be2d67bf4c9c0c457" kindref="member" tooltip="number of csv file name patterns">fn_npatterns</ref>;<sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>number<sp/>of<sp/>csv<sp/>file<sp/>name<sp/>patterns<sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1635" refid="structCSVConf_1a8beb01826dbd71e3c4685739d67fbef4" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>**<ref refid="structCSVConf_1a8beb01826dbd71e3c4685739d67fbef4" kindref="member" tooltip="list of csv file name patterns">fn_patterns</ref>;<sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>list<sp/>of<sp/>csv<sp/>file<sp/>name<sp/>patterns<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1636"><highlight class="normal"></highlight></codeline>
<codeline lineno="1637" refid="structCSVConf_1a449a565ed95f03bf843b6b69db7e228f" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVConf_1a449a565ed95f03bf843b6b69db7e228f" kindref="member" tooltip="number of csv file time patterns">ft_npatterns</ref>;<sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>number<sp/>of<sp/>csv<sp/>file<sp/>time<sp/>patterns<sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1638" refid="structCSVConf_1a82a7593fdb3f9b503418d92772661270" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>**<ref refid="structCSVConf_1a82a7593fdb3f9b503418d92772661270" kindref="member" tooltip="list of csv file time patterns">ft_patterns</ref>;<sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>list<sp/>of<sp/>csv<sp/>file<sp/>time<sp/>patterns<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1639"><highlight class="normal"></highlight></codeline>
<codeline lineno="1640" refid="structCSVConf_1a8d5463675c2a23f75bb458cd27967e68" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVConf_1a8d5463675c2a23f75bb458cd27967e68" kindref="member" tooltip="column delimiter">delim</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>column<sp/>delimiter<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1641"><highlight class="normal"></highlight></codeline>
<codeline lineno="1642" refid="structCSVConf_1ae8dcb9d33367d6f1edca77107c3d2f0b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="structCSVConf_1ae8dcb9d33367d6f1edca77107c3d2f0b" kindref="member" tooltip="string containing the header line">header_line</ref>;<sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>string<sp/>containing<sp/>the<sp/>header<sp/>line<sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1643" refid="structCSVConf_1ae6a72759fc8d44c5b2c1aaf2e6070c42" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="structCSVConf_1ae6a72759fc8d44c5b2c1aaf2e6070c42" kindref="member" tooltip="string identifier for the header line">header_tag</ref>;<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>string<sp/>identifier<sp/>for<sp/>the<sp/>header<sp/>line<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1644" refid="structCSVConf_1aebe41ca64c1afbef9c0702ad1ae1de8c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVConf_1aebe41ca64c1afbef9c0702ad1ae1de8c" kindref="member" tooltip="line number of the first header line">header_linenum</ref>;<sp/></highlight><highlight class="comment">/**&lt;<sp/>line<sp/>number<sp/>of<sp/>the<sp/>first<sp/>header<sp/>line<sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1645" refid="structCSVConf_1a4697ac395acacb2442021f27278676be" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVConf_1a4697ac395acacb2442021f27278676be" kindref="member" tooltip="number of header lines">header_nlines</ref>;<sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>number<sp/>of<sp/>header<sp/>lines<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1646"><highlight class="normal"></highlight></codeline>
<codeline lineno="1647" refid="structCSVConf_1a57c2d376cf39971f123bd9ef3c77eb14" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVConf_1a57c2d376cf39971f123bd9ef3c77eb14" kindref="member" tooltip="expected number of columns">exp_ncols</ref>;<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>expected<sp/>number<sp/>of<sp/>columns<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1648"><highlight class="normal"></highlight></codeline>
<codeline lineno="1649" refid="structCSVConf_1a3cc93361492661fcdc722c0fa106ceed" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVConf_1a3cc93361492661fcdc722c0fa106ceed" kindref="member" tooltip="number of time columns">time_ncols</ref>;<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>number<sp/>of<sp/>time<sp/>columns<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1650" refid="structCSVConf_1a44bd5949463eee335f772afdec7471da" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structCSVTimeCol" kindref="compound" tooltip="CSV Time Column Names and Patterns.">CSVTimeCol</ref><sp/><sp/><sp/>*<ref refid="structCSVConf_1a44bd5949463eee335f772afdec7471da" kindref="member" tooltip="list of time columns">time_cols</ref>;<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>list<sp/>of<sp/>time<sp/>columns<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1651"><highlight class="normal"></highlight></codeline>
<codeline lineno="1652" refid="structCSVConf_1a4200eabaa226493f24118a6bdd9c7ec5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVConf_1a4200eabaa226493f24118a6bdd9c7ec5" kindref="member" tooltip="number of entries in the field map">field_nmaps</ref>;<sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>number<sp/>of<sp/>entries<sp/>in<sp/>the<sp/>field<sp/>map<sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1653" refid="structCSVConf_1a4a308b3aee0baefe7f9528e95774f1f5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structCSVFieldMap" kindref="compound" tooltip="CSV Field Map Structure.">CSVFieldMap</ref><sp/><sp/>*<ref refid="structCSVConf_1a4a308b3aee0baefe7f9528e95774f1f5" kindref="member" tooltip="field map">field_maps</ref>;<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/**&lt;<sp/>field<sp/>map<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1654"><highlight class="normal"></highlight></codeline>
<codeline lineno="1655" refid="structCSVConf_1a7c4dffb7ec48ea7213ca1c220d48d48e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/>*<ref refid="structCSVConf_1a7c4dffb7ec48ea7213ca1c220d48d48e" kindref="member" tooltip="split interval for output files">split_interval</ref>;<sp/></highlight><highlight class="comment">/**&lt;<sp/>split<sp/>interval<sp/>for<sp/>output<sp/>files<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1656"><highlight class="normal"></highlight></codeline>
<codeline lineno="1657"><highlight class="normal">}<sp/><ref refid="structCSVConf" kindref="compound" tooltip="CSV Configuration Structure.">CSVConf</ref>;</highlight></codeline>
<codeline lineno="1658"><highlight class="normal"></highlight></codeline>
<codeline lineno="1659"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__INGEST__CONFIG_1gae230ae35131464c6bab52ecfbddaa561" kindref="member" tooltip="Add an entry to the field map.">dsproc_add_csv_field_map</ref>(</highlight></codeline>
<codeline lineno="1660"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVConf" kindref="compound" tooltip="CSV Configuration Structure.">CSVConf</ref><sp/><sp/><sp/><sp/><sp/>*conf,</highlight></codeline>
<codeline lineno="1661"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*out_name,</highlight></codeline>
<codeline lineno="1662"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*col_name,</highlight></codeline>
<codeline lineno="1663"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>nargs,</highlight></codeline>
<codeline lineno="1664"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**args);</highlight></codeline>
<codeline lineno="1665"><highlight class="normal"></highlight></codeline>
<codeline lineno="1666"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__INGEST__CONFIG_1ga296af2fd5fb54b2679bbffff1a5f6fbd" kindref="member" tooltip="Add file name patterns to a CSVConf structure.">dsproc_add_csv_file_name_patterns</ref>(</highlight></codeline>
<codeline lineno="1667"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVConf" kindref="compound" tooltip="CSV Configuration Structure.">CSVConf</ref><sp/><sp/><sp/><sp/><sp/>*conf,</highlight></codeline>
<codeline lineno="1668"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>npatterns,</highlight></codeline>
<codeline lineno="1669"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**patterns);</highlight></codeline>
<codeline lineno="1670"><highlight class="normal"></highlight></codeline>
<codeline lineno="1671"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__INGEST__CONFIG_1ga2188656d588ad2089a013d92c890d110" kindref="member" tooltip="Add file time patterns to a CSVConf structure.">dsproc_add_csv_file_time_patterns</ref>(</highlight></codeline>
<codeline lineno="1672"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVConf" kindref="compound" tooltip="CSV Configuration Structure.">CSVConf</ref><sp/><sp/><sp/><sp/><sp/>*conf,</highlight></codeline>
<codeline lineno="1673"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>npatterns,</highlight></codeline>
<codeline lineno="1674"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**patterns);</highlight></codeline>
<codeline lineno="1675"><highlight class="normal"></highlight></codeline>
<codeline lineno="1676"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__INGEST__CONFIG_1ga79d430ae0bdc9344489454d9e3c629eb" kindref="member" tooltip="Add time column patterns to a CSVConf structure.">dsproc_add_csv_time_column_patterns</ref>(</highlight></codeline>
<codeline lineno="1677"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVConf" kindref="compound" tooltip="CSV Configuration Structure.">CSVConf</ref><sp/><sp/><sp/><sp/><sp/>*conf,</highlight></codeline>
<codeline lineno="1678"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/>*name,</highlight></codeline>
<codeline lineno="1679"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>npatterns,</highlight></codeline>
<codeline lineno="1680"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**patterns);</highlight></codeline>
<codeline lineno="1681"><highlight class="normal"></highlight></codeline>
<codeline lineno="1682"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__INGEST__CONFIG_1ga74b69e1fb23974cd342dc9b700c9259d" kindref="member" tooltip="Append a string to the end of the header line.">dsproc_append_csv_header_line</ref>(</highlight></codeline>
<codeline lineno="1683"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVConf" kindref="compound" tooltip="CSV Configuration Structure.">CSVConf</ref><sp/><sp/><sp/><sp/>*conf,</highlight></codeline>
<codeline lineno="1684"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*</highlight><highlight class="keywordtype">string</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1685"><highlight class="normal"></highlight></codeline>
<codeline lineno="1686"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__INGEST__CONFIG_1gaa9c387b979ff6250b32be4970305ee8e" kindref="member" tooltip="Clear the time column patterns in a CSVConf structure.">dsproc_clear_csv_field_maps</ref>(<ref refid="structCSVConf" kindref="compound" tooltip="CSV Configuration Structure.">CSVConf</ref><sp/>*conf);</highlight></codeline>
<codeline lineno="1687"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__INGEST__CONFIG_1ga7e6781b080b83622c00cf48df2e68f87" kindref="member" tooltip="Clear the file name patterns in a CSVConf structure.">dsproc_clear_csv_file_name_patterns</ref>(<ref refid="structCSVConf" kindref="compound" tooltip="CSV Configuration Structure.">CSVConf</ref><sp/>*conf);</highlight></codeline>
<codeline lineno="1688"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__INGEST__CONFIG_1ga0f7b35c2367bb8cc0145a9a7b09b8968" kindref="member" tooltip="Clear the file name patterns in a CSVConf structure.">dsproc_clear_csv_file_time_patterns</ref>(<ref refid="structCSVConf" kindref="compound" tooltip="CSV Configuration Structure.">CSVConf</ref><sp/>*conf);</highlight></codeline>
<codeline lineno="1689"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__INGEST__CONFIG_1ga632258feaec005b99db9a686f8194d9d" kindref="member" tooltip="Clear the time column patterns in a CSVConf structure.">dsproc_clear_csv_time_column_patterns</ref>(<ref refid="structCSVConf" kindref="compound" tooltip="CSV Configuration Structure.">CSVConf</ref><sp/>*conf);</highlight></codeline>
<codeline lineno="1690"><highlight class="normal"></highlight></codeline>
<codeline lineno="1691"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__INGEST__CONFIG_1ga2a53f197f39074f4714603d07e28ba9d" kindref="member" tooltip="Free memory used by a CSVConf structure.">dsproc_configure_csv_parser</ref>(<ref refid="structCSVConf" kindref="compound" tooltip="CSV Configuration Structure.">CSVConf</ref><sp/>*conf,<sp/><ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/>*csv);</highlight></codeline>
<codeline lineno="1692"><highlight class="normal"></highlight></codeline>
<codeline lineno="1693"><highlight class="normal"><ref refid="structCSV2CDSMap" kindref="compound" tooltip="Structure used to map CSVParser data to a CDSGroup.">CSV2CDSMap</ref><sp/>*<ref refid="group__DSPROC__CSV__INGEST__CONFIG_1gae8658e7a5866f17f3369abafe2d8980e" kindref="member" tooltip="Create a CSV2CDS Map.">dsproc_create_csv_to_cds_map</ref>(</highlight></codeline>
<codeline lineno="1694"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVConf" kindref="compound" tooltip="CSV Configuration Structure.">CSVConf</ref><sp/><sp/><sp/>*conf,</highlight></codeline>
<codeline lineno="1695"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVParser" kindref="compound" tooltip="CSV Parsing Structure.">CSVParser</ref><sp/>*csv,</highlight></codeline>
<codeline lineno="1696"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCDSGroup" kindref="compound" external="libcds3.tag">CDSGroup</ref><sp/><sp/>*cds,</highlight></codeline>
<codeline lineno="1697"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>flags);</highlight></codeline>
<codeline lineno="1698"><highlight class="normal"></highlight></codeline>
<codeline lineno="1699"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__INGEST__CONFIG_1gacc30ddc3f55af6b78867b9b201b7e170" kindref="member" tooltip="Free memory used by a CSVConf structure.">dsproc_free_csv_conf</ref>(<ref refid="structCSVConf" kindref="compound" tooltip="CSV Configuration Structure.">CSVConf</ref><sp/>*conf);</highlight></codeline>
<codeline lineno="1700"><highlight class="normal"></highlight></codeline>
<codeline lineno="1701"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__INGEST__CONFIG_1ga62d49f268fa7e1c8d83abba5d16c68d6" kindref="member" tooltip="Free the memory used by a CSV2CDS Map.">dsproc_free_csv_to_cds_map</ref>(</highlight></codeline>
<codeline lineno="1702"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSV2CDSMap" kindref="compound" tooltip="Structure used to map CSVParser data to a CDSGroup.">CSV2CDSMap</ref><sp/>*map);</highlight></codeline>
<codeline lineno="1703"><highlight class="normal"></highlight></codeline>
<codeline lineno="1704"><highlight class="normal"><ref refid="structCSVConf" kindref="compound" tooltip="CSV Configuration Structure.">CSVConf</ref><sp/><sp/><sp/><sp/>*<ref refid="group__DSPROC__CSV__INGEST__CONFIG_1gad10972d2ae92e5f0a050c9a58bea63a0" kindref="member" tooltip="Initialize a new CSVConf structure.">dsproc_init_csv_conf</ref>(</highlight></codeline>
<codeline lineno="1705"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name,</highlight></codeline>
<codeline lineno="1706"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*level);</highlight></codeline>
<codeline lineno="1707"><highlight class="normal"></highlight></codeline>
<codeline lineno="1708"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__INGEST__CONFIG_1ga11aceb7fac3b7436ea9beccf828d1ea7" kindref="member" tooltip="Load the CSV Configuration file into a CVSConf structure.">dsproc_load_csv_conf</ref>(</highlight></codeline>
<codeline lineno="1709"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structCSVConf" kindref="compound" tooltip="CSV Configuration Structure.">CSVConf</ref><sp/>*conf,</highlight></codeline>
<codeline lineno="1710"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>time_t<sp/><sp/><sp/>data_time,</highlight></codeline>
<codeline lineno="1711"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>flags);</highlight></codeline>
<codeline lineno="1712"><highlight class="normal"></highlight></codeline>
<codeline lineno="1713"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__DSPROC__CSV__INGEST__CONFIG_1gac3d335667566b8ba999b42ad802beaa8" kindref="member" tooltip="Print the contents of a CSVConf structure.">dsproc_print_csv_conf</ref>(</highlight></codeline>
<codeline lineno="1714"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>FILE<sp/>*fp,<sp/><ref refid="structCSVConf" kindref="compound" tooltip="CSV Configuration Structure.">CSVConf</ref><sp/>*conf);</highlight></codeline>
<codeline lineno="1715"><highlight class="normal"></highlight><highlight class="comment"></highlight></codeline>
<codeline lineno="1716"><highlight class="comment">/*@}*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1717"><highlight class="normal"></highlight></codeline>
<codeline lineno="1718"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="dsproc3__internal_8h" kindref="compound" tooltip="Internal libdsproc3 functions and structures.">dsproc3_internal.h</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1719"><highlight class="normal"></highlight></codeline>
<codeline lineno="1720"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/></highlight><highlight class="comment">/*<sp/>_DSPROC3_H<sp/>*/</highlight><highlight class="preprocessor"></highlight></codeline>
    </programlisting>
    <location file="/home/ermold/dev/Linux-x86_64-el6/dslib/include/dsproc3.h"/>
  </compounddef>
</doxygen>
