ITarget 類別

ITarget 類別是所有目標區塊的介面。 目標區塊會使用 ISource 區塊提供給它們的訊息。

語法

template<class T>
class ITarget;

參數

T
目標區塊所接受之訊息內的承載資料類型。

成員

公用 Typedefs

名稱 描述
filter_method 區塊使用之任何方法的簽章,這個方法會傳回 bool 值,以判斷是否應該接受提供的訊息。
type 的類型 T 別名。

公用建構函式

名稱 描述
~ITarget 解構函式 ITarget終結 物件。

公用方法

名稱 描述
傳播 在衍生類別中覆寫時,以非同步方式將訊息從來源區塊傳遞至此目標區塊。
傳送 在衍生類別中覆寫時,以同步方式將訊息傳遞至目標區塊。
supports_anonymous_source 在衍生類別中覆寫時,會根據訊息區塊是否會接受未與它連結的來源所提供的訊息傳回 true 或 false。 如果覆寫的方法傳 true 回 ,則目標無法延後提供的訊息,因為稍後延遲的訊息耗用量需要在其來源連結登錄中識別來源。

受保護的方法

名稱 描述
link_source 在衍生類別中覆寫時,會將指定的來源區塊連結至這個 ITarget 區塊。
unlink_source 在衍生類別中覆寫時,從這個 ITarget 區塊取消連結指定的來源區塊。
unlink_sources 在衍生類別中覆寫時,從這個 ITarget 區塊取消連結所有來源區塊。

備註

如需詳細資訊,請參閱 非同步消息塊

繼承階層架構

ITarget

需求

標頭: agents.h

命名空間: concurrency

~ITarget

ITarget終結 物件。

virtual ~ITarget();

在衍生類別中覆寫時,會將指定的來源區塊連結至這個 ITarget 區塊。

virtual void link_source(_Inout_ ISource<T>* _PSource) = 0;

參數

_PSource
連結 ISource 至此區塊的 ITarget 區塊。

備註

此函式不應直接在區塊上 ITarget 呼叫。 區塊應該使用 link_target 區塊上的 ISource 方法連接在一起,這會在對應的目標上叫 link_source 用 方法。

傳播

在衍生類別中覆寫時,以非同步方式將訊息從來源區塊傳遞至此目標區塊。

virtual message_status propagate(
    _Inout_opt_ message<T>* _PMessage,
    _Inout_opt_ ISource<T>* _PSource) = 0;

參數

_PMessage
message 物件的指標。

_PSource
提供訊息的來源區塊指標。

傳回值

message_status 指出目標決定對訊息執行的動作。

備註

如果 _PMessage 或 參數為 NULL ,則方法會 擲回invalid_argument _PSource 例外狀況。

傳送

在衍生類別中覆寫時,以同步方式將訊息傳遞至目標區塊。

virtual message_status send(
    _Inout_ message<T>* _PMessage,
    _Inout_ ISource<T>* _PSource) = 0;

參數

_PMessage
message 物件的指標。

_PSource
提供訊息的來源區塊指標。

傳回值

message_status 指出目標決定對訊息執行的動作。

備註

如果 _PMessage 或 參數為 NULL ,則方法會 擲回invalid_argument _PSource 例外狀況。

send在訊息起始之外使用 方法來傳播網路內的訊息很危險,而且可能會導致死結。

傳回時 send ,訊息已接受並傳輸至目標區塊,或已由目標拒絕。

supports_anonymous_source

在衍生類別中覆寫時,會根據訊息區塊是否會接受未與它連結的來源所提供的訊息傳回 true 或 false。 如果覆寫的方法傳 true 回 ,則目標無法延後提供的訊息,因為稍後延遲的訊息耗用量需要在其 sourse 連結登錄中識別來源。

virtual bool supports_anonymous_source();

傳回值

true 如果區塊可以接受來源的訊息,則為 ,否則為 false

在衍生類別中覆寫時,從這個 ITarget 區塊取消連結指定的來源區塊。

virtual void unlink_source(_Inout_ ISource<T>* _PSource) = 0;

參數

_PSource
ISource 從這個 ITarget 區塊取消連結的區塊。

備註

此函式不應直接在區塊上 ITarget 呼叫。 區塊應該使用 unlink_target 區塊上的 ISourceunlink_targets 方法中斷連線,這會在對應的目標上叫 unlink_source 用 方法。

在衍生類別中覆寫時,從這個 ITarget 區塊取消連結所有來源區塊。

virtual void unlink_sources() = 0;

另請參閱

concurrency 命名空間
ISource 類別