cmn-clib(CommonLibraryForC)
C言語共通ライブラリ
 全て データ構造 ファイル 関数 変数 型定義 列挙型 列挙値 マクロ定義
CmnData.h ファイル

構造化データ操作 共通関数 I/Fヘッダファイル [詳解]

#include "cmnclib/Common.h"

[ソースコード]

データ構造

struct  tag_CmnDataListItem
 
struct  tag_CmnDataList
 
struct  _tag_CmnDataStackItem
 
struct  _tag_CmnDataStack
 
struct  _tag_CmnDataBuffer
 

型定義

typedef struct tag_CmnDataListItem CmnDataListItem
 
typedef struct tag_CmnDataList CmnDataList
 
typedef struct _tag_CmnDataStackItem CmnDataStackItem
 
typedef struct _tag_CmnDataStack CmnDataStack
 
typedef struct _tag_CmnDataBuffer CmnDataBuffer
 

関数

D_EXTERN CmnDataListCmnDataList_Create ()
 単方向リスト作成 [詳解]
 
D_EXTERN void CmnDataList_Free (CmnDataList *list, void *method)
 単方向リスト解放 [詳解]
 
D_EXTERN void CmnDataList_Add (CmnDataList *list, void *data)
 単方向リスト要素追加 [詳解]
 
D_EXTERN void * CmnDataList_Get (CmnDataList *list, int index)
 単方向リスト要素取得 [詳解]
 
D_EXTERN CmnDataStackCmnDataStack_Create ()
 スタック作成 [詳解]
 
D_EXTERN void CmnDataStack_Free (CmnDataStack *stack, void *method)
 スタック解放 [詳解]
 
D_EXTERN void CmnDataStack_Push (CmnDataStack *stack, void *data)
 スタックに要素追加 [詳解]
 
D_EXTERN void * CmnDataStack_Pop (CmnDataStack *stack)
 スタックから要素取得 [詳解]
 
D_EXTERN CmnDataBufferCmnDataBuffer_Create (size_t bufSize)
 自動領域拡張バッファ作成 [詳解]
 
D_EXTERN int CmnDataBuffer_Append (CmnDataBuffer *buf, const void *data, size_t len)
 自動領域拡張バッファへのデータ追加 [詳解]
 
D_EXTERN int CmnDataBuffer_Set (CmnDataBuffer *buf, const void *data, size_t len)
 自動領域拡張バッファへのデータ設定 [詳解]
 
D_EXTERN void CmnDataBuffer_Delete (CmnDataBuffer *buf, size_t len)
 自動領域拡張バッファのデータ削除 [詳解]
 
D_EXTERN void CmnDataBuffer_Free (CmnDataBuffer *buf)
 自動領域拡張バッファの解放 [詳解]
 

詳解

構造化データ操作 共通関数 I/Fヘッダファイル

構造化データ操作系共通関数を使用するためのI/Fヘッダファイル。
構造化データ操作系の共通関数を使用する場合は、このヘッダファイルを読み込むこと

著者
H.Kumagai
日付
2004-06-12
Revision
1.1

型定義詳解

自動領域拡張バッファ

typedef struct tag_CmnDataList CmnDataList

単方向リスト(線状リスト)

単方向リストの要素

スタック

スタックの要素

関数詳解

D_EXTERN int CmnDataBuffer_Append ( CmnDataBuffer buf,
const void *  data,
size_t  len 
)

自動領域拡張バッファへのデータ追加

自動領域拡張バッファの末尾にデータを追加する。

引数
buf自動拡張バッファ
data追加するデータ
lenバッファに書き込むデータの長さ
戻り値
正常:0, エラー:-1
D_EXTERN CmnDataBuffer* CmnDataBuffer_Create ( size_t  bufSize)

自動領域拡張バッファ作成

自動領域拡張バッファを新規に作成する。

引数
bufSize初期バッファサイズ。0を指定した場合はデフォルトのバッファサイズが適用される。
戻り値
作成したバッファへのポインタ。作成に失敗した場合はNULLを返す。
D_EXTERN void CmnDataBuffer_Delete ( CmnDataBuffer buf,
size_t  len 
)

自動領域拡張バッファのデータ削除

自動領域拡張バッファのデータを一部もしくは全部削除する。

引数
buf自動拡張バッファ
len削除する長さ
D_EXTERN void CmnDataBuffer_Free ( CmnDataBuffer buf)

自動領域拡張バッファの解放

自動領域拡張バッファが不要になった場合、メモリ解放のために必ず本関数を呼び出すこと。

引数
buf自動拡張バッファ
D_EXTERN int CmnDataBuffer_Set ( CmnDataBuffer buf,
const void *  data,
size_t  len 
)

自動領域拡張バッファへのデータ設定

自動領域拡張バッファにデータを設定する。もとのデータは上書かれる。

引数
buf自動拡張バッファ
data設定するデータ
lenバッファに書き込むデータの長さ
戻り値
正常:0, エラー:-1
D_EXTERN void CmnDataList_Add ( CmnDataList list,
void *  data 
)

単方向リスト要素追加

単方向リストの末尾に要素を追加する。 引数が不正な場合は何もしない。

引数
list(I/O) 要素を追加するリストへのポインタ
data(I) 追加する要素(データ)
著者
H.Kumagai
D_EXTERN CmnDataList* CmnDataList_Create ( )

単方向リスト作成

単方向リストを新規に作成する。

戻り値
作成した単方向リストへのポインタ。作成に失敗した場合はNULLを返す。
著者
H.Kumagai
D_EXTERN void CmnDataList_Free ( CmnDataList list,
void *  method 
)

単方向リスト解放

単方向リストを破棄し、メモリ領域を解放する

引数
list(I/O) 解放する単方向リストへのポインタ
method(I) リスト内で保持しているデータを解放する関数へのポインタ。
(単にmalloc関数を使用して確保したメモリなら、freeを指定すれば良い)
指定する関数のI/Fは、以下の条件を満たしていること。
  • 戻り値はなし(void)
  • 引数は、ポインタ変数が1つのみ (ポインタ変数であれば、型は問わない)
NULLが指定された場合は、データの解放処理は行わず、リストの解放のみを行う。
(グローバルメモリや関数ポインタをリストとして格納する場合などにNULLを指定する)
著者
H.Kumagai
D_EXTERN void* CmnDataList_Get ( CmnDataList list,
int  index 
)

単方向リスト要素取得

単方向リストから要素(データ)を取得する

引数
list(I) 要素を取得するリストへのポインタ
index(I) 取得する要素のインデックス(最初の要素を0とする)
戻り値
取得したデータへのポインタ(listやindexが不正な場合はNULLを返す)
著者
H.Kumagai
D_EXTERN CmnDataStack* CmnDataStack_Create ( )

スタック作成

スタックを新規に作成する。

戻り値
作成したスタックへのポインタ。作成に失敗した場合はNULLを返す。
著者
H.Kumagai
D_EXTERN void CmnDataStack_Free ( CmnDataStack stack,
void *  method 
)

スタック解放

スタックを破棄し、メモリ領域を解放する

引数
list(I/O) 解放するスタックへのポインタ
method(I) スタック内で保持しているデータを解放する関数へのポインタ。
(単にmalloc関数を使用して確保したメモリなら、freeを指定すれば良い)
指定する関数のI/Fは、以下の条件を満たしていること。
  • 戻り値はなし(void)
  • 引数は、ポインタ変数が1つのみ (ポインタ変数であれば、型は問わない)
NULLが指定された場合は、データの解放処理は行わず、スタックの解放のみを行う。
(グローバルメモリや関数ポインタをスタックに格納する場合などにNULLを指定する)
著者
H.Kumagai
D_EXTERN void* CmnDataStack_Pop ( CmnDataStack stack)

スタックから要素取得

スタックから要素(データ)を取り出す。

引数
stack(I) 要素を取得するスタックへのポインタ
戻り値
スタックから取り出したデータ(stackが空の場合はNULLを返す)
著者
H.Kumagai
D_EXTERN void CmnDataStack_Push ( CmnDataStack stack,
void *  data 
)

スタックに要素追加

スタックに要素を追加する。 引数が不正な場合は何もしない。

引数
list(I/O) 要素を追加するスタックへのポインタ
data(I) 追加する要素(データ)
著者
H.Kumagai