名稱空間
變體
操作

std::basic_syncbuf<CharT,Traits,Allocator>::emit

來自 cppreference.com
< cpp‎ | io‎ | basic syncbuf
 
 
 
 
bool emit();

原子地將所有待處理的輸出傳輸到被包裝的流。

所有將字元傳輸到同一被包裝流緩衝物件的 emit() 呼叫,表現為以一個總序執行,其中每個 emit() 呼叫與該總序中的後續 emit() 呼叫同步於(synchronizes-with),即使這些呼叫是透過 std::basic_syncbuf/std::basic_osyncstream 的不同例項進行的。實踐中,這意味著 emit() 獲取一個與被包裝流物件唯一關聯的鎖:例如,該鎖可以儲存在一個靜態雜湊表中,其中被包裝流的地址被用作鍵。

如果自上次呼叫 emit() 以來,曾呼叫過 sync,那麼還會透過在其上呼叫 pubsync() 來沖洗被包裝的流。

目錄

[編輯] 引數

(無)

[編輯] 返回值

若以下所有條件均為 true,則返回 true

  • 存在一個被包裝的流(被包裝的 streambuf 指標不為空)
  • 臨時儲存中的所有字元都成功傳送到被包裝的流中
  • pubsync() 的呼叫(如果請求)也成功完成。

否則返回 false

[編輯] 注意

通常由所屬的 std::basic_osyncstream 的解構函式或移動賦值運算子呼叫,或由 std::basic_osyncstream::emit 呼叫。

[編輯] 示例

[編輯] 參閱

銷燬 basic_osyncstream 併發出其內部緩衝區
(std::basic_osyncstream<CharT,Traits,Allocator> 的公開成員函式) [編輯]
在底層的 basic_syncbuf 上呼叫 emit(),將其內部資料傳輸到最終目的地
(std::basic_osyncstream<CharT,Traits,Allocator> 的公開成員函式) [編輯]
構造 basic_syncbuf 物件
(公開成員函式) [編輯]