前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3

25.5. コールバック関数用マクロ

25.5.1. コールバック関数宣言用マクロ

コールバック関数は XALLBACK_DECLARE_ で始まる名前のマクロで宣言します。

表 25.45. コールバック関数宣言用マクロ(ファイル)

マクロ 意味 使用するメソッド
XALLBACK_DECLARE_SFXFILE SFXFile クラスのコールバック関数宣言用マクロ SFXFile::ScheduleRead

表 25.46. コールバック関数宣言用マクロ( ネットワーク )

マクロ 意味 使用するメソッド
XALLBACK_DECLARE_SFXINETADDRESS SFXInetAddress クラスのコールバック関数宣言用マクロ SFXInetAddress::Resolve
XALLBACK_DECLARE_SFXSOCKETADDRESS SFXSocketAddress クラスのコールバック関数宣言用マクロ SFXInetAddress::Resolve(SFXInetAddress クラスからの継承)
XALLBACK_DECLARE_SFXHTTPCONNECTION SFXHTTPConnection クラスのコールバック関数宣言用マクロ SFXHTTPConnection::Connect
XALLBACK_DECLARE_SFXTCPSOCKET SFXTCPSocket クラスのコールバック関数宣言用マクロ SFXTCPSocket::ConnectSFXTCPSocket::ScheduleAcceptSFXTCPSocket::ScheduleBindSFXTCPSocket::ScheduleListenSFXTCPSocket::ScheduleReadSFXTCPSocket::ScheduleWrite
XALLBACK_DECLARE_SFXSSLSOCKET SFXSSLSocket クラスのコールバック関数宣言用マクロ SFXSSLSocket::ConnectSFXSSLSocket::NegotiateSFXSSLSocket::ScheduleBindSFXSSLSocket::ScheduleReadSFXSSLSocket::ScheduleWrite
XALLBACK_DECLARE_SFXUDPSOCKET SFXUDPSocket クラスのコールバック関数宣言用マクロ SFXUDPSocket::ScheduleBindSFXUDPSocket::ScheduleReceiveSFXUDPSocket::ScheduleSend
XALLBACK_DECLARE_SFXSMTPSENDER SFXSMTPSender クラスのコールバック関数宣言用マクロ SFXSMTPSender::SendMessageSFXSMTPSender::SendText
XALLBACK_DECLARE_SFXPOP3RECEIVER SFXPOP3Receiver クラスのコールバック関数宣言用マクロ SFXPOP3Receiver::DeleteSFXPOP3Receiver::Receive
XALLBACK_DECLARE_SFXSMTP SFXSMTP クラスのコールバック関数宣言用マクロ SFXSMTP::Connect
XALLBACK_DECLARE_SFXPOP3 SFXPOP3 クラスのコールバック関数宣言用マクロ SFXPOP3::Connect

表 25.47. コールバック関数宣言用マクロ( ストリーム )

マクロ 意味 使用するメソッド
XALLBACK_DECLARE_SFXSTREAMREADER SFXStreamReader クラスのコールバック関数宣言用マクロ SFXStreamReader::Fetch
XALLBACK_DECLARE_SFXSTREAMWRITER SFXStreamWriter クラスのコールバック関数宣言用マクロ SFXStreamWriter::Flush
XALLBACK_DECLARE_SFXANSISTRINGSTREAMREADER SFXAnsiStringStreamReader クラスのコールバック関数宣言用マクロ SFXStreamReader::Fetch( SFXStreamReader から継承 )
XALLBACK_DECLARE_SFXANSISTRINGSTREAMWRITER SFXAnsiStringStreamWriter クラスのコールバック関数宣言用マクロ SFXStreamWriter::Flush( SFXStreamWriter から継承 )
XALLBACK_DECLARE_SFXWIDESTRINGSTREAMREADER SFXWideStringStreamReader クラスのコールバック関数宣言用マクロ SFXStreamReader::Fetch( SFXStreamReader から継承 )
XALLBACK_DECLARE_SFXWIDESTRINGSTREAMWRITER SFXWideStringStreamWriter クラスのコールバック関数宣言用マクロ SFXStreamWriter::Flush( SFXStreamWriter から継承 )
XALLBACK_DECLARE_SFXBINARYSTREAMREADER SFXBinaryStreamReader クラスのコールバック関数宣言用マクロ SFXStreamReader::Fetch( SFXStreamReader から継承 )
XALLBACK_DECLARE_SFXBINARYSTREAMWRITER SFXBinaryStreamWriter クラスのコールバック関数宣言用マクロ SFXStreamWriter::Flush( SFXStreamWriter から継承 )
XALLBACK_DECLARE_SFXELASTICSTREAMREADER SFXElasticStreamReader クラスのコールバック関数宣言用マクロ SFXElasticStreamReader::Fetch
XALLBACK_DECLARE_SFXELASTICSTREAMWRITER SFXElasticStreamWriter クラスのコールバック関数宣言用マクロ SFXElasticStreamWriter::Flush

表 25.48. コールバック関数宣言用マクロ( ストレージ )

マクロ 意味 使用するメソッド
XALLBACK_DECLARE_SFXFILE SFXFile クラスのコールバック関数宣言用マクロ SFXFile::ScheduleRead
XALLBACK_DECLARE_SFXHTTPCONNECTION SFXHTTPConnection クラスのコールバック関数宣言用マクロ SFXHTTPConnection::Connect
XALLBACK_DECLARE_SFXTCPSOCKET SFXTCPSocket クラスのコールバック関数宣言用マクロ SFXTCPSocket::ConnectSFXTCPSocket::ScheduleAcceptSFXTCPSocket::ScheduleBindSFXTCPSocket::ScheduleListenSFXTCPSocket::ScheduleReadSFXTCPSocket::ScheduleWrite
XALLBACK_DECLARE_SFXSSLSOCKET SFXSSLSocket クラスのコールバック関数宣言用マクロ SFXSSLSocket::ConnectSFXSSLSocket::NegotiateSFXSSLSocket::ScheduleBindSFXSSLSocket::ScheduleReadSFXSSLSocket::ScheduleWrite
XALLBACK_DECLARE_SFXSOURCE SFXSource クラスのコールバック関数宣言用マクロ SFXSource::ScheduleRead
XALLBACK_DECLARE_SFXZIPDECODER SFXZIPDecoder クラスのコールバック関数宣言用マクロ SFXZIPDecoder::ScheduleRead

表 25.49. コールバック関数宣言用マクロ( その他 )

マクロ 意味 使用するメソッド
XALLBACK_DECLARE_SFXCALLBACK SFXCallback クラスのコールバック関数宣言用マクロ SFXCallback::Set
XALLBACK_DECLARE_SFXTASK SFXTask クラスのコールバック関数宣言用マクロ SFXTask::Set
XALLBACK_DECLARE_SFXTIMER SFXTimer クラスのコールバック関数宣言用マクロ SFXTimer::Set
XALLBACK_DECLARE_SFXEDITOR SFXEditor クラスのコールバック関数宣言用マクロ SFXEditor::Open
XALLBACK_DECLARE_SFCAPPLICATION SFCApplication クラスのコールバック関数宣言用マクロ SFCApplication::RegisterBypassSFCApplication::UnregisterBypass
XALLBACK_DECLARE_SFYAPPLICATION SFYApplication クラスのコールバック関数宣言用マクロ SFCApplication::RegisterBypassSFCApplication::UnregisterBypass
[Note]
引数はコールバック関数名です。

25.5.2. コールバック関数実装用マクロ

コールバック関数は XALLBACK_IMPLEMENT_ で始まる名前のマクロで実装します。

表 25.50. コールバック関数実装用マクロ(ファイル)

マクロ 第 3 引数 意味
XALLBACK_IMPLEMENT_SFXFILE error(エラー型) SFXFile クラスのコールバック関数実装用マクロ

表 25.51. コールバック関数実装用マクロ( ネットワーク )

マクロ 第 3 引数 意味
XALLBACK_IMPLEMENT_SFXINETADDRESS error(エラー型) SFXInetAddress クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXSOCKETADDRESS error(エラー型) SFXSocketAddress クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXHTTPCONNECTION error(エラー型) SFXHTTPConnection クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXTCPSOCKET error(エラー型) SFXTCPSocket クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXSSLSOCKET error(エラー型) SFXSSLSocket クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXUDPSOCKET error(エラー型) SFXUDPSocket クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXSMTPSENDER error(エラー型) SFXSMTPSender クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXPOP3RECEIVER error(エラー型) SFXPOP3Receiver クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXSMTP error(エラー型) SFXSMTP クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXPOP3 error(エラー型) SFXPOP3 クラスのコールバック関数実装用マクロ

表 25.52. コールバック関数実装用マクロ( ストリーム )

マクロ 第 3 引数 意味
XALLBACK_IMPLEMENT_SFXSTREAMREADER error(エラー型) SFXStreamReader クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXSTREAMWRITER error(エラー型) SFXStreamWriter クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXANSISTRINGSTREAMREADER error(エラー型) SFXAnsiStringStreamReader クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXANSISTRINGSTREAMWRITER error(エラー型) SFXAnsiStringStreamWriter クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXWIDESTRINGSTREAMREADER error(エラー型) SFXWideStringStreamReader クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXWIDESTRINGSTREAMWRITER error(エラー型) SFXWideStringStreamWriter クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXBINARYSTREAMREADER error(エラー型) SFXBinaryStreamReader クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXBINARYSTREAMWRITER error(エラー型) SFXBinaryStreamWriter クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXELASTICSTREAMREADER error(エラー型) SFXElasticStreamReader クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXELASTICSTREAMWRITER error(エラー型) SFXElasticStreamWriter クラスのコールバック関数実装用マクロ

表 25.53. コールバック関数実装用マクロ( ストレージ )

マクロ 第 3 引数 意味
XALLBACK_IMPLEMENT_SFXFILE error(エラー型) SFXFile クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXHTTPCONNECTION error(エラー型) SFXHTTPConnection クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXTCPSOCKET error(エラー型) SFXTCPSocket クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXSSLSOCKET error(エラー型) SFXSSLSocket クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXSOURCE error(エラー型) SFXSource クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXZIPDECODER error(エラー型) SFXZIPDecoder クラスのコールバック関数実装用マクロ

表 25.54. コールバック関数実装用マクロ( その他 )

マクロ 第 3 引数 意味
XALLBACK_IMPLEMENT_SFXCALLBACK なし SFXCallback クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXTASK なし SFXTask クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXTIMER なし SFXTimer クラスのコールバック関数実装用マクロ
XALLBACK_IMPLEMENT_SFXEDITOR error(エラー型) SFXEditor クラスのコールバック関数実装用マクロ。ネイティブテキスト入力完了時に呼び出されます。
XALLBACK_IMPLEMENT_SFCAPPLICATION event(SFXEventConstRef 型) SFCApplication クラスのコールバック関数実装用マクロ。優先的イベントバイパス登録時に、イベント受信によって呼び出されます。
XALLBACK_IMPLEMENT_SFYAPPLICATION SFXEventConstRef SFYApplication クラスのコールバック関数実装用マクロ。XALLBACK_IMPLEMENT_SFCAPPLICATION を継承したもので、XALLBACK_IMPLEMENT_SFCAPPLICATION と同じ内容です。
[Note] コールバック関数の引数

第1引数は所属クラス名、第2引数にはコールバック関数名です。第3引数はコールバック関数によって異なります。

[Note] 第3引数のエラー型の戻り値

BREW SDK の "AEEError.h" で定義されている、ネットワーク接続時やデータ送受信時のエラー値を返します。

25.5.3. コールバック関数登録用マクロ

コールバック関数は、以下のマクロ(ほとんどの場合、XALLBACK_INTERNAL マクロ)を利用して登録します。

表 25.55. コールバック関数登録用マクロ

マクロ 説明
XALLBACK_INTERNAL コールバック関数へのポインタと内部インスタンスへの参照を渡すコールバック関数を登録するときに利用します。
XALLBACK_EXTERNAL コールバック関数へのポインタと外部インスタンスへの参照を渡すコールバック関数を登録するときに利用します。
XALLBACK_NULL 何も処理されないヌルコールバック関数を登録するときに利用します。

25.5.3.1. XALLBACK_FUNCTION マクロ

XALLBACK_FUNCTION マクロは、下記のように定義されるコールバック関数のエントリ名を取得するためのマクロです。

#define    XALLBACK_FUNCTION(FUNCTION)    FUNCTION##SCP

表 25.56. マクロ引数

番号 内容 解説
1 関数名 コールバック関数のエントリ名取得に用いるクラス関数名を表します。

25.5.3.2. XALLBACK_INTERNAL マクロ

XALLBACK_INTERNAL マクロは、下記のように定義されるコールバック関数へのポインタと内部インスタンスへの参照を取得するためのマクロです。

コールバック関数へのポインタと内部インスタンスへの参照を渡してコールバック関数を登録するときに使います。

#define    XALLBACK_INTERNAL(FUNCTION)    (XALLBACK_FUNCTION(FUNCTION)), (this)

表 25.57. マクロ引数

番号 内容 解説
1 関数名 コールバック関数のエントリ名取得に用いるクラス関数名を表します。

25.5.3.3. XALLBACK_EXTERNAL マクロ

XALLBACK_EXTERNAL マクロは、下記のように定義されるコールバック関数へのポインタと外部インスタンスへの参照を取得するためのマクロです。

コールバック関数へのポインタと外部インスタンスへの参照を渡してコールバック関数を登録するときに使います。

#define    XALLBACK_EXTERNAL(FUNCTION, REFERENCE)    (XALLBACK_FUNCTION(FUNCTION)), ((REFERENCE))

表 25.58. マクロ引数

番号 内容 解説
1 関数名 コールバック関数のエントリ名取得に用いるクラス関数名を表します。
2 インスタンス変数名 外部のインスタンスを保持する変数名を表します。
[Note] XALLBACK_INTERNAL マクロと XALLBACK_EXTERNAL マクロ

コールバック関数が同じクラスのインスタンスを参照する場合は、XALLBACK_INTERNALマクロを使用してコールバック関数を取得します。 このとき、コールバック関数は自動的に this 変数を含む構文に展開されます。

コールバック関数が外部のクラスのインスタンスを参照する場合は、XALLBACK_EXTERNALマクロを使用してコールバック関数を取得します。 このとき、コールバック関数は自動的に引数で指定した外部クラスのインスタンスを含む構文に展開されます。

同じクラスのインスタンスを参照するコールバック関数が大半なので大抵の場合は XALLBACK_INTERNALマクロを利用します。

static 関数の中など this が使えない場所や、 this が使える場合でも渡したいインスタンスが自分自身ではなく外部クラスのインスタンスの場合、 XALLBACK_EXTERNAL マクロを利用することになります。

25.5.3.4. XALLBACK_NULL マクロ

XALLBACK_NULL マクロは、下記のように定義されるヌルコールバック関数を取得するためのマクロです。

実際のコールバック関数は呼び出されませんが、コールバック関数は処理されたこととみなします。

#define    XALLBACK_NULL    (null), (null)