<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE header PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
  "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
<!--
  Hamigaki.Archivers Library Document Source

  Copyright Takeshi Mouri 2006, 2007.
  Distributed under the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
  http://www.boost.org/LICENSE_1_0.txt)

  See http://hamigaki.sourceforge.jp/libs/archivers for library home page.
-->
<header name="hamigaki/archivers/lha/headers.hpp">
  <namespace name="hamigaki">
    <namespace name="archivers">
      <namespace name="lha">
        <struct name="header">
          <method-group name="queries">
            <method name="is_regular" cv="const">
              <type>bool</type>
              <returns><simpara>通常のファイルであれば<code>true</code>、それ以外なら<code>false</code></simpara></returns>
            </method>

            <method name="is_directory" cv="const">
              <type>bool</type>
              <returns><simpara>ディレクトリであれば<code>true</code>、それ以外なら<code>false</code></simpara></returns>
            </method>

            <method name="is_symlink" cv="const">
              <type>bool</type>
              <returns><simpara>シンボリックリンクであれば<code>true</code>、それ以外なら<code>false</code></simpara></returns>
            </method>
          </method-group>

          <method-group name="modifiers">
            <method name="type">
              <type>void</type>
              <parameter name="v">
                <paramtype><enumname>filesystem::file_type</enumname></paramtype>
              </parameter>
              <effects><simpara>ファイル種別を<code>v</code>に設定する</simpara></effects>
            </method>
          </method-group>

          <data-member name="level">
            <type>boost::uint8_t</type>
          </data-member>

          <data-member name="method">
            <type><classname>compress_method</classname></type>
          </data-member>

          <data-member name="compressed_size">
            <type>boost::int64_t</type>
          </data-member>

          <data-member name="file_size">
            <type>boost::int64_t</type>
          </data-member>

          <data-member name="update_time">
            <type>std::time_t</type>
          </data-member>

          <data-member name="attributes">
            <type>boost::uint16_t</type>
          </data-member>

          <data-member name="path">
            <type>boost::filesystem::path</type>
          </data-member>

          <data-member name="link_path">
            <type>boost::filesystem::path</type>
          </data-member>

          <data-member name="crc16_checksum">
            <type>boost::optional&lt;boost::uint16_t&gt;</type>
          </data-member>

          <data-member name="os">
            <type>boost::optional&lt;char&gt;</type>
          </data-member>

          <data-member name="timestamp">
            <type>boost::optional&lt;<classname>windows::timestamp</classname>&gt;</type>
          </data-member>

          <data-member name="code_page">
            <type>boost::optional&lt;boost::uint32_t&gt;</type>
          </data-member>

          <data-member name="permissions">
            <type>boost::optional&lt;boost::uint16_t&gt;</type>
          </data-member>

          <data-member name="owner">
            <type>boost::optional&lt;<classname>posix::gid_uid</classname>&gt;</type>
          </data-member>

          <data-member name="group_name">
            <type>std::string</type>
          </data-member>

          <data-member name="user_name">
            <type>std::string</type>
          </data-member>

          <data-member name="comment">
            <type>std::string</type>
          </data-member>

          <description>
            <para>
              <informaltable frame="all">
                <tgroup cols="3">
                  <thead>
                    <row>
                      <entry>メンバ変数</entry>
                      <entry>意味</entry>
                      <entry>規定値</entry>
                    </row>
                  </thead>
                  <tbody>
                    <row>
                      <entry>level</entry>
                      <entry>ヘッダのレベル (0～2)</entry>
                      <entry>2</entry>
                    </row>
                    <row>
                      <entry>method</entry>
                      <entry>圧縮メソッド</entry>
                      <entry></entry>
                    </row>
                    <row>
                      <entry>compressed_size</entry>
                      <entry>圧縮後のサイズ</entry>
                      <entry>-1</entry>
                    </row>
                    <row>
                      <entry>file_size</entry>
                      <entry>圧縮前のサイズ</entry>
                      <entry>-1</entry>
                    </row>
                    <row>
                      <entry>update_time</entry>
                      <entry>最終更新時間</entry>
                      <entry>-1</entry>
                    </row>
                    <row>
                      <entry>attributes</entry>
                      <entry>MS-DOS ファイル属性 (<classname>msdos::attributes</classname>構造体内の定数のいずれか、あるいはその組み合わせ)</entry>
                      <entry><code>msdos::attributes::archive</code></entry>
                    </row>
                    <row>
                      <entry>path</entry>
                      <entry>ファイルのパス名</entry>
                      <entry></entry>
                    </row>
                    <row>
                      <entry>link_path</entry>
                      <entry>リンク先のパス名</entry>
                      <entry></entry>
                    </row>
                    <row>
                      <entry>crc16_checksum</entry>
                      <entry>CRC-16 チェックサム</entry>
                      <entry></entry>
                    </row>
                    <row>
                      <entry>os</entry>
                      <entry>アーカイブ作成時のOS</entry>
                      <entry></entry>
                    </row>
                    <row>
                      <entry>timestamp</entry>
                      <entry>Windows タイムスタンプ</entry>
                      <entry></entry>
                    </row>
                    <row>
                      <entry>code_page</entry>
                      <entry>Windows コードページ</entry>
                      <entry></entry>
                    </row>
                    <row>
                      <entry>permissions</entry>
                      <entry>ファイル許可属性</entry>
                      <entry></entry>
                    </row>
                    <row>
                      <entry>owner</entry>
                      <entry>UNIX グループID / ユーザーID</entry>
                      <entry></entry>
                    </row>
                    <row>
                      <entry>group_name</entry>
                      <entry>UNIX グループ名</entry>
                      <entry></entry>
                    </row>
                    <row>
                      <entry>user_name</entry>
                      <entry>UNIX ユーザー名</entry>
                      <entry></entry>
                    </row>
                    <row>
                      <entry>comment</entry>
                      <entry>コメント文字列</entry>
                      <entry></entry>
                    </row>
                  </tbody>
                </tgroup>
              </informaltable>
            </para>
          </description>
        </struct>
      </namespace>
    </namespace>
  </namespace>
</header>
