blob: 8c2c225ede9ea50f91cc790d4b81b0246752405c [file] [log] [blame]
<?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.9.8" xml:lang="en-US">
<compounddef id="classiceberg_1_1FileIO" kind="class" language="C++" prot="public">
<compoundname>iceberg::FileIO</compoundname>
<derivedcompoundref refid="classiceberg_1_1MockFileIO" prot="public" virt="non-virtual">iceberg::MockFileIO</derivedcompoundref>
<derivedcompoundref refid="classiceberg_1_1arrow_1_1ArrowFileSystemFileIO" prot="public" virt="non-virtual">iceberg::arrow::ArrowFileSystemFileIO</derivedcompoundref>
<derivedcompoundref refid="classiceberg_1_1test_1_1StdFileIO" prot="public" virt="non-virtual">iceberg::test::StdFileIO</derivedcompoundref>
<includes refid="file__io_8h" local="no">file_io.h</includes>
<sectiondef kind="public-func">
<memberdef kind="function" id="classiceberg_1_1FileIO_1a4c7135a7de2494ad9b4ad6aacd65bf45" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
<type></type>
<definition>iceberg::FileIO::FileIO</definition>
<argsstring>()=default</argsstring>
<name>FileIO</name>
<qualifiedname>iceberg::FileIO::FileIO</qualifiedname>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="iceberg/file_io.h" line="42" column="3"/>
</memberdef>
<memberdef kind="function" id="classiceberg_1_1FileIO_1af3d6e79fa37cfcd2c0a8face664a70ec" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
<type></type>
<definition>virtual iceberg::FileIO::~FileIO</definition>
<argsstring>()=default</argsstring>
<name>~FileIO</name>
<qualifiedname>iceberg::FileIO::~FileIO</qualifiedname>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="iceberg/file_io.h" line="43" column="11"/>
</memberdef>
<memberdef kind="function" id="classiceberg_1_1FileIO_1a714e3babeac9395ed6ef4b2f5c94a5cd" prot="public" static="no" const="no" explicit="no" inline="yes" virt="virtual">
<type>Result&lt; std::string &gt;</type>
<definition>virtual Result&lt; std::string &gt; iceberg::FileIO::ReadFile</definition>
<argsstring>(const std::string &amp;file_location, std::optional&lt; size_t &gt; length)</argsstring>
<name>ReadFile</name>
<qualifiedname>iceberg::FileIO::ReadFile</qualifiedname>
<reimplementedby refid="classiceberg_1_1arrow_1_1ArrowFileSystemFileIO_1aa023cae7f400db161e6d847c2bf6f2f3">ReadFile</reimplementedby>
<reimplementedby refid="classiceberg_1_1test_1_1StdFileIO_1acd86d18e3fb3a5dc6b86584953ec34f1">ReadFile</reimplementedby>
<param>
<type>const std::string &amp;</type>
<declname>file_location</declname>
</param>
<param>
<type>std::optional&lt; size_t &gt;</type>
<declname>length</declname>
</param>
<briefdescription>
<para>Read the content of the file at the given location. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>file_location</parametername>
</parameternamelist>
<parameterdescription>
<para>The location of the file to read. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>length</parametername>
</parameternamelist>
<parameterdescription>
<para>The number of bytes to read. Some object storage need to specify the length to read, e.g. S3 <computeroutput>GetObject</computeroutput> has a Range parameter. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The content of the file if the read succeeded, an error code if the read failed. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="iceberg/file_io.h" line="52" column="18" bodyfile="iceberg/file_io.h" bodystart="52" bodyend="56"/>
</memberdef>
<memberdef kind="function" id="classiceberg_1_1FileIO_1a527a78aca1045034250f50a51d8dc0f9" prot="public" static="no" const="no" explicit="no" inline="yes" virt="virtual">
<type>Status</type>
<definition>virtual Status iceberg::FileIO::WriteFile</definition>
<argsstring>(const std::string &amp;file_location, std::string_view content)</argsstring>
<name>WriteFile</name>
<qualifiedname>iceberg::FileIO::WriteFile</qualifiedname>
<reimplementedby refid="classiceberg_1_1arrow_1_1ArrowFileSystemFileIO_1a989c72cecf8dc2463cc90f947d36ba50">WriteFile</reimplementedby>
<reimplementedby refid="classiceberg_1_1test_1_1StdFileIO_1a42ed781e4a4eedf4538d8e1c8da28680">WriteFile</reimplementedby>
<param>
<type>const std::string &amp;</type>
<declname>file_location</declname>
</param>
<param>
<type>std::string_view</type>
<declname>content</declname>
</param>
<briefdescription>
<para>Write the given content to the file at the given location. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>file_location</parametername>
</parameternamelist>
<parameterdescription>
<para>The location of the file to write. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>content</parametername>
</parameternamelist>
<parameterdescription>
<para>The content to write to the file. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>overwrite</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, overwrite the file if it exists. If false, fail if the file exists. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>void if the write succeeded, an error code if the write failed. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="iceberg/file_io.h" line="65" column="18" bodyfile="iceberg/file_io.h" bodystart="65" bodyend="67"/>
</memberdef>
<memberdef kind="function" id="classiceberg_1_1FileIO_1ace7c9ec329017d5a99082739e8578937" prot="public" static="no" const="no" explicit="no" inline="yes" virt="virtual">
<type>Status</type>
<definition>virtual Status iceberg::FileIO::DeleteFile</definition>
<argsstring>(const std::string &amp;file_location)</argsstring>
<name>DeleteFile</name>
<qualifiedname>iceberg::FileIO::DeleteFile</qualifiedname>
<reimplementedby refid="classiceberg_1_1arrow_1_1ArrowFileSystemFileIO_1a054c596530ea55f4e66155c46308ab74">DeleteFile</reimplementedby>
<reimplementedby refid="classiceberg_1_1test_1_1StdFileIO_1a1050c568739393ef643f8601086a354e">DeleteFile</reimplementedby>
<param>
<type>const std::string &amp;</type>
<declname>file_location</declname>
</param>
<briefdescription>
<para>Delete a file at the given location. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>file_location</parametername>
</parameternamelist>
<parameterdescription>
<para>The location of the file to delete. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>void if the delete succeeded, an error code if the delete failed. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="iceberg/file_io.h" line="73" column="18" bodyfile="iceberg/file_io.h" bodystart="73" bodyend="75"/>
</memberdef>
</sectiondef>
<briefdescription>
<para>Pluggable module for reading, writing, and deleting files. </para>
</briefdescription>
<detaileddescription>
<para>This module only handle metadata files, not data files. The metadata files are typically small and are used to store schema, partition information, and other metadata about the table.</para>
<para>Note that these functions are not atomic. For example, if a write fails, the file may be partially written. Implementations should be careful to avoid corrupting metadata files. </para>
</detaileddescription>
<inheritancegraph>
<node id="1">
<label>iceberg::FileIO</label>
<link refid="classiceberg_1_1FileIO"/>
</node>
<node id="2">
<label>iceberg::MockFileIO</label>
<link refid="classiceberg_1_1MockFileIO"/>
<childnode refid="1" relation="public-inheritance">
</childnode>
</node>
<node id="3">
<label>iceberg::arrow::ArrowFileSystemFileIO</label>
<link refid="classiceberg_1_1arrow_1_1ArrowFileSystemFileIO"/>
<childnode refid="1" relation="public-inheritance">
</childnode>
</node>
<node id="4">
<label>iceberg::test::StdFileIO</label>
<link refid="classiceberg_1_1test_1_1StdFileIO"/>
<childnode refid="1" relation="public-inheritance">
</childnode>
</node>
</inheritancegraph>
<location file="iceberg/file_io.h" line="40" column="1" bodyfile="iceberg/file_io.h" bodystart="40" bodyend="76"/>
<listofallmembers>
<member refid="classiceberg_1_1FileIO_1ace7c9ec329017d5a99082739e8578937" prot="public" virt="virtual"><scope>iceberg::FileIO</scope><name>DeleteFile</name></member>
<member refid="classiceberg_1_1FileIO_1a4c7135a7de2494ad9b4ad6aacd65bf45" prot="public" virt="non-virtual"><scope>iceberg::FileIO</scope><name>FileIO</name></member>
<member refid="classiceberg_1_1FileIO_1a714e3babeac9395ed6ef4b2f5c94a5cd" prot="public" virt="virtual"><scope>iceberg::FileIO</scope><name>ReadFile</name></member>
<member refid="classiceberg_1_1FileIO_1a527a78aca1045034250f50a51d8dc0f9" prot="public" virt="virtual"><scope>iceberg::FileIO</scope><name>WriteFile</name></member>
<member refid="classiceberg_1_1FileIO_1af3d6e79fa37cfcd2c0a8face664a70ec" prot="public" virt="virtual"><scope>iceberg::FileIO</scope><name>~FileIO</name></member>
</listofallmembers>
</compounddef>
</doxygen>