Public メソッド | Protected 変数

クラス SGFdData

#include <SGFdData.h>

SGFdDataに対する継承グラフ
SGFdDataのコラボレーション図

すべてのメンバ一覧

Public メソッド

 SGFdData (SGFdDataList *list)
 コンストラクタ
 SGFdData (int type, int fd, int id, SGFdDataList *list)
 コンストラクタ
virtual ~SGFdData ()
 デストラクタ
virtual void ReadyToRead ()
 受信可能(データ到着)通知
virtual void ReadyToWrite ()
 送信可能通知
virtual int OnReceive ()
 データ受信時コールバック関数
virtual int OnNotice (int code, int eno=0)
 状態通知時コールバック関数
SGFdDataListGetFdDataList ()
 登録先リストの取得 登録先リストを返します。
int AddEvent ()
 ファイルディスクリプタの登録
void RemoveEvent ()
 ファイルディスクリプタの登録解除
int GetStatus ()
 ステータスの取得
int GetFDStatus ()
 ステータスの設定
int SetFDStatus (int status)
 ステータスの取得
int GetFD ()
 ファイルディスクリプタ(FD)の取得
int SetFD (int fd)
 ファイルディスクリプタ(FD)の登録
int GetId ()
 IDの取得.
void SetId (int id)
 IDの登録.
int GetType ()
 ファイルディスクリプタの種類取得
void SetType (int type)
 ファイルディスクリプタの種類登録
int IsSelect ()
 read可能かどうか調べる
void SetSelect (int flag)
 データ到着確認フラグのセット/リセット
int GetAutoDelete ()
 自動開放を行う/行わないの設定状態の取得
void SetAutoDelete (int enable=1)
 自動開放を行う/行わないの設定
int CreateBuffer (int buffersize)
int SetDataToBuffer (char *data, int len)
 データのバッファリング
int GetDataLength ()
 データ長の取得
int GetData (void *data, int len)
 データの取得
int CheckBuffer (int notice=1)
 バッファの空きの有無
void ClearData ()
 データの消去

Protected 変数

SGFdDataListmList
 ファイルディスクリプタリスト
SGSemaphore mSemData
 バッファ操作セマフォ
char * mDataBuffer
 バッファ
volatile int mBufferSize
 バッファサイズ
volatile int mBufferPos
 データ追記位置

コンストラクタとデストラクタ

SGFdData ( SGFdDataList list  ) 

コンストラクタ

引数:
list 登録先リスト
SGFdData ( int  type,
int  fd,
int  id,
SGFdDataList list 
)

コンストラクタ

引数:
type 種別
fd ファイルディスクリプタ番号
id リストの登録ID
list 登録先リスト
~SGFdData (  )  [virtual]

デストラクタ


関数

void ReadyToRead (  )  [virtual]

受信可能(データ到着)通知

このクラスで管理しているFD(ファイルディスクリプタ)にデータが到着した時に呼ばれます。
この関数の中で受信処理を行って下さい。

SGSocketで再定義されています。

void ReadyToWrite (  )  [virtual]

送信可能通知

このクラスで管理しているFD(ファイルディスクリプタ)がデータ送信可能になった時に呼ばれます。

int OnReceive (  )  [virtual]

データ受信時コールバック関数

データ受信後に呼ばれます。 常に 0 を返します。

int OnNotice ( int  code,
int  eno = 0 
) [virtual]

状態通知時コールバック関数

状態通知が発生した時に呼ばれます。

引数:
code 
  • NBUFFEROVERFLOW 受信バッファが一杯です
  • NCREARBUFFER 受信バッファをクリアしました
  • NREADERROR 受信エラーが発生しました
eno エラー番号。strerror(eno)等で内容を確認できます。
戻り値:
常に 0 を返します。
SGFdDataList * GetFdDataList (  ) 

登録先リストの取得 登録先リストを返します。

int AddEvent (  ) 

ファイルディスクリプタの登録

登録先リストへ自身が保持するファイルディスクリプタを登録します。

戻り値:
登録先リストが設定されている場合は SGFdDataList::Add の戻り値を返します。 未設定の場合は 0 を返します。
void RemoveEvent (  ) 

ファイルディスクリプタの登録解除

登録先リストから自身が保持するファイルディスクリプタの登録を解除します。

int GetStatus (  ) 

ステータスの取得

戻り値:
0 接続待ち
1 接続完了
-1 未接続
int GetFDStatus (  ) 

ステータスの設定

戻り値:
ステータス
int SetFDStatus ( int  status  ) 

ステータスの取得

引数:
status ステータス

  • SG_FDSTATUS_CREATE 0
  • SG_FDSTATUS_OPEN 1
  • SG_FDSTATUS_CONNECT 2
  • SG_FDSTATUS_CLOSE 3
  • SG_FDSTATUS_DELETE 4
戻り値:
セットする前のステータス
int GetFD (  ) 

ファイルディスクリプタ(FD)の取得

戻り値:
ファイルディスクリプタ
int SetFD ( int  fd  ) 

ファイルディスクリプタ(FD)の登録

引数:
fd ファイルディスクリプタ
戻り値:
セットする前のFD
int GetId (  ) 

IDの取得.

戻り値:
ID
void SetId ( int  id  ) 

IDの登録.

引数:
id ID
int GetType (  ) 

ファイルディスクリプタの種類取得

戻り値:
ファイルディスクリプタの種類
void SetType ( int  type  ) 

ファイルディスクリプタの種類登録

引数:
type ファイルディスクリプタの種類

  • SG_FDTYPE_UNSET(0) 未初期化
  • SG_FDTYPE_FILE(1) ファイル(コールバックあり)
  • SG_FDTYPE_SOCKET(2) ソケット(コールバックあり)
  • SG_FDTYPE_SOCKET_CONNECT(3) コネクションソケット(コールバックあり)
  • SG_FDTYPE_SERIAL(4) シリアル(コールバックあり)
int IsSelect (  ) 

read可能かどうか調べる

戻り値:
0 データが到着していない
1 データが到着している(read可能)
void SetSelect ( int  flag  ) 

データ到着確認フラグのセット/リセット

int GetAutoDelete (  ) 

自動開放を行う/行わないの設定状態の取得

戻り値:
0 自動開放を行わない
1 自動開放を行う
void SetAutoDelete ( int  enable = 1  ) 

自動開放を行う/行わないの設定

enableをTRUEにすると、リストからの削除時、登録ポインタが示すメモリの開放を行います。

引数:
enable 
  • 0 自動開放しない
  • 1 自動開放する
int CreateBuffer ( int  buffersize  ) 
int SetDataToBuffer ( char *  data,
int  len 
)

データのバッファリング

データを内部バッファにコピーします。

引数:
data データ
len データの長さ
戻り値:
データ分割の有無を返します。
戻り値:
0 データ分割あり
1 データ分割なし
int GetDataLength (  ) 

データ長の取得

バッファリングされているデータの長さを取得します。

戻り値:
データの長さを返します。
int GetData ( void *  data,
int  len 
)

データの取得

内部バッファからデータを移動します。

引数:
data 移動先
len 長さ
戻り値:
移動した長さを返します。
int CheckBuffer ( int  notice = 1  ) 

バッファの空きの有無

バッファに空き領域があるかを確認します。

引数:
notice オーバーフロー通知有無
戻り値:
0 空きなし
1 空きあり
void ClearData (  ) 

データの消去

内部バッファのデータを全て消去します。


変数

SGFdDataList* mList [protected]

ファイルディスクリプタリスト

SGSemaphore mSemData [protected]

バッファ操作セマフォ

char* mDataBuffer [protected]

バッファ

volatile int mBufferSize [protected]

バッファサイズ

volatile int mBufferPos [protected]

データ追記位置


このクラスの説明は次のファイルから生成されました:

PlusG SMART Solution リファレンスマニュアル Ver 1.0.0