SLLIB + SFITSIO ダイジェスト版 HTML マニュアル

使用頻度の高い API について,主要な内容を記述した, ビギナー向けのリファレンスマニュアルです.

SLLIB クラス: ストリーム / 文字列 / 文字列配列 / 文字列連想配列 / 多次元配列
SLLIB クラス用関数: 多次元配列用の統計用関数 / 多次元配列用の数学関数 / 多次元配列用の複素関数
SLLIB クラス以外: 定数・型の定義 / C99互換の複素数・複素関数
SFITSIO クラス: fitscc / fits_hdu / fits_image / fits_table / fits_table_col / fits_header / fits_header_record
SFITSIO クラス以外: 関数 / 定数・型の定義 / FITSファイルの部分読み出し機能 / FITSテンプレート / 規約外FITS拡張

SFITSIO: fits_header_recordクラス

fits_header_recordクラスは,1つのヘッダレコードを表現します. fitsccクラス または fits_headerクラス のメンバ関数でファイルから読み込まれた場合, CONTINUE キーワードが使われた長い文字列は1つに結合され, 1つのfits_header_recordオブジェクト内に格納されます.

クラスヘッダファイルコードnamespace
fits_header_record #include <sli/fits_header_record.h> cc sli

SFITSIO に搭載されているヘッダのコメント辞書については, fits_header_record.cc の最初の部分をご覧ください.


メンバ関数一覧

オブジェクト全体の操作に関するメンバ関数:

メンバ関数機能
init() オブジェクトの初期化・コピー
reformat() 80文字レコードの再フォーマットを行なう
formatted_string() フォーマット済み文字列(80×n文字)を取得
formatted_length() フォーマット済み文字列(80×n文字)の長さを取得

ヘッダレコードへのアクセスのためのメンバ関数:

メンバ関数機能
status() ヘッダレコードの形式を取得
type() ヘッダレコードの値のデータ型を取得
dvalue() 値を double 型で取得
lvalue(), llvalue() 値を long 型 または long long 型で取得
bvalue() 値を bool 型で取得
svalue() 値を文字列で取得 (両端の「'」と空白は除去)
get_svalue() プログラマのバッファに値を文字列で取得 (両端の「'」と空白は除去)
svalue_length() 文字列値の長さ取得 (両端の「'」と空白は除去)
assign(), assignf() 文字列,整数値,実数値,真理値で値を設定
assign_system_time() 現在の UTC 時刻を「yyyy-mm-ddThh:mm:ss」の形式で値に設定
keyword() キーワード文字列を取得
get_keyword() プログラマのバッファにキーワード文字列を取得
keyword_length() キーワード文字列の長さを取得
comment() コメント文字列を取得
get_comment() プログラマのバッファにコメント文字列を取得
comment_length() コメント文字列の長さを取得
assign_comment(), assignf_comment() コメント文字列を設定
assign_default_comment() コメント辞書に存在するコメント文字列を自身のレコードに設定
value() 値文字列を取得 (低レベル)
get_value() プログラマのバッファに値文字列を取得 (低レベル)
value_length() 値文字列の長さを取得 (低レベル)
assign() オブジェクトの内容の更新 (低レベル)
assign_value(), assignf_value() 値を設定 (低レベル)
raw_record() ヘッダレコードを保持している内部構造体の参照を返す (低レベル・読取専用)

オブジェクト全体の操作に関するメンバ関数

init()

fits_header_record &init();
fits_header_record &init( const fits_header_record &obj );

オブジェクトの初期化,またはコピーを行ないます.

返り値
自身の参照

reformat()

fits_header_record &reformat();

オブジェクト内で現在保持している 80文字(×n)のフォーマット済み文字列を,現在のキーワード,値, コメントの内容から作りなおします.

返り値
自身の参照

formatted_string()

const char *formatted_string() const;

オブジェクト内で生成された, フォーマット済み文字列(80×n文字)を返します. 改行文字は含まれず,文字列は '\0' で終端しています.


formatted_length()

size_t formatted_length() const;

オブジェクト内で生成された, フォーマット済み文字列(80×n文字)の長さを返します. この長さには,文字列の終端文字 '\0' は含みません.


ヘッダレコードへのアクセスのためのメンバ関数

status()

int status() const;

ヘッダレコードの形式(状態)を返します.

通常の形式(A = B の形式)か, 記述形式(COMMENTHISTORYなどの記述)か, NULL形式(キーワードも値も無い状態)かどうかを調べ, それぞれFITS::NORMAL_RECORDFITS::DESCRIPTION_RECORDFITS::NULL_RECORD を返します.


type()

int type() const;

ヘッダレコードが持つ文字列値の データ型 (どのデータ型に解釈できるかを) を調べます.

実数ならFITS::DOUBLE_Tが, 整数ならFITS::LONGLONG_Tが, 複素数ならFITS::DOUBLECOMPLEX_T 論理値ならFITS::BOOL_Tが, それ以外ならFITS::STRING_Tが返ります.


dvalue()

double dvalue() const;

ヘッダレコードの文字列値を 実数値に変換して返します.


lvalue(), llvalue()

long lvalue() const;
long long llvalue() const;

ヘッダレコードの文字列値を 整数値に変換して返します.


bvalue()

bool bvalue() const;

ヘッダレコードの文字列値を論理値に変換して返します.


svalue()

const char *svalue() const;

ヘッダレコードの文字列値を,文字列をかこむシングルクォーテーション (')や余分な空白文字を取り除いてから返します.

返される値はオブジェクト内部バッファのアドレスですから, オブジェクトが破棄されたり, このメンバ関数が次に呼ばれた場合は無効になります.


get_svalue()

ssize_t get_svalue( char *dest_buf, size_t buf_size ) const;

指定されたヘッダレコードの 文字列の値を,文字列をかこむシングルクォーテーション (')や余分な空白文字を取り除いてから, dest_buf へコピーします.dest_buf のバッファサイズは buf_sizeで指定します.

このメンバ関数は,バッファのサイズが十分ではない場合でも, 必ず '\0' で終端します.

返り値
非負の値: バッファ長が十分な場合にコピーできる文字数('\0'は含まない)
負の値(エラー): 引数が不正でコピーされなかった場合

svalue_length()

size_t svalue_length() const;

文字列値の長さを返します.

ヘッダレコードの値が文字列値である場合, 両端のシングルクォートと空白は除去した長さを返します.


assign(), assignf()

fits_header_record &assign( const char *str );                ... 1
fits_header_record &assignf( const char *str_format, ... );   ... 2
fits_header_record &assign( bool tf );                        ... 3
fits_header_record &assign( int val );                        ... 4
fits_header_record &assign( long val );                       ... 5
fits_header_record &assign( long long val );                  ... 6
fits_header_record &assign( double val, int prec = 15 );      ... 7
fits_header_record &assign( float val, int prec = 6 );        ... 8

ヘッダの値に,引数で与えられた 文字列値(メンバ関数1,2), 論理値(メンバ関数3), 整数値(メンバ関数4〜6), 実数値(メンバ関数7,8) をセットします. これらは高レベルメンバ関数なので,メンバ関数1,2では文字列値には フォーマット時に付加される文字列両端のシングルクォートを含めないでください.

メンバ関数2の str_format 以降の引数は,libcの printf() のそれと同様に指定します.

値に文字列長の制限はありません (複数レコードにまたがる長いヘッダ値を参照). ヘッダレコードが80文字以内に収まらない場合でも, それぞれ適切な方法でファイルに保存されます.

返り値
自身の参照

assign_system_time()

fits_header_record &assign_system_time();

現在の日付時刻(UTC)を 「yyyy-mm-ddThh:mm:ss」 の形式で値にセットします.

返り値
自身の参照

keyword()

const char *keyword() const;

ヘッダレコードのキーワード名を返します.

返される値はオブジェクト内部バッファのアドレスですから, オブジェクトが破棄されたり, ヘッダレコードが変更された場合は無効になります.


get_keyword()

ssize_t get_keyword( char *dest_buf, size_t buf_size ) const;

ヘッダレコードのキーワード名を dest_buf によって示されたバッファへコピーします. dest_buf のバッファサイズは buf_size で指定します.

このメンバ関数は, バッファのサイズが十分ではない場合でも,必ず '\0' で終端します.

返り値
非負の値: バッファ長が十分な場合にコピーできる文字数('\0'は含まない)
負の値(エラー): 引数が不正でコピーされなかった場合

keyword_length()

size_t keyword_length() const;

キーワード文字列の長さを返します.


comment()

const char *comment() const;

コメント文字列を返します.

返される値はオブジェクト内部バッファのアドレスですから, オブジェクトが破棄されたり, ヘッダレコードが変更された場合は無効になります.


get_comment()

ssize_t get_comment( char *dest_buf, size_t buf_size ) const;

コメント文を dest_buf で示されたバッファへコピーします. dest_buf のバッファサイズは buf_size で指定します.

このメンバ関数は, バッファのサイズが十分ではない場合でも,必ず '\0' で終端します.


comment_length()

size_t comment_length() const;

コメント文字列の長さを返します.


assign_comment(), assignf_comment()

fits_header_record &assign_comment( const char *str );
fits_header_record &assignf_comment( const char *str_format, ... );

ヘッダレコードのコメントに, 引数で与えられた文字列をセットします.

str_format以降の引数は,libcの printf()のそれと同様に指定します.

返り値
自身の参照

assign_default_comment()

fits_header_record &assign_default_comment( int hdutype = FITS::ANY_HDU );

自身のキーワードがコメント辞書に存在する場合, コメント辞書にあるコメント文字列を自身のレコードに書き込みます.

SFITSIO に搭載されているヘッダのコメント辞書については, fits_header_record.cc の最初の部分をご覧ください.

返り値
自身の参照

value()

const char *value() const;

ヘッダレコードの生の値を返します.

文字列をかこむシングルクォーテーション (')や余分な空白文字を取り除いた値が必要な場合は, svalue()メンバ関数を使います.

返される値はオブジェクト内部バッファのアドレスですから, オブジェクトが破棄されたり, ヘッダレコードが変更された場合は無効になります.


get_value()

ssize_t get_value( char *dest_buf, size_t buf_size ) const;

ヘッダレコードの生の値を dest_buf で示されたバッファへコピーします. dest_buf のバッファサイズは buf_size で指定します.

文字列をかこむシングルクォーテーション (')や余分な空白文字を取り除いた値が必要な場合は, get_svalue() を使います.

このメンバ関数は, バッファのサイズが十分ではない場合でも,必ず '\0' で終端します.

返り値
非負の値: バッファ長が十分な場合にコピーできる文字数('\0'は含まない)
負の値(エラー): 引数不正でコピーされなかった場合

value_length()

size_t value_length() const;

生の値文字列の長さを返します. 文字列値の場合,両端のシングルクォートを含んだ長さです.


assign()

fits_header_record &assign( const fits::header_def &def );
fits_header_record &assign( const fits_header_record &obj );
fits_header_record &assign( const char *keyword, const char *value,
                            const char *comment );
fits_header_record &assign( const char *keyword, const char *description );

オブジェクトの内容の更新するための低レベルメンバ関数です.

fits::header_defの定義については, ヘッダレコードを定義するための型(構造体) または fits.h をご覧ください.

返り値
自身の参照

assign_value(), assignf_value()

fits_header_record &assign_value( const char *str );
fits_header_record &assignf_value( const char *str_format, ... );

値を設定するための低レベルメンバ関数です.

文字列値の場合, フォーマット時に付加される両端のシングルクォートを含んだ文字列を設定します.

返り値
自身の参照

raw_record()

const fits::header_def &raw_record() const;

ヘッダレコードを保持している内部構造体の参照(読み取り専用)を返します.

fits::header_defの定義については, ヘッダレコードを定義するための型(構造体) または fits.h をご覧ください.