私は毎日ddsについてもっと学んでいるので、私の質問は私の奇妙な音です。それが理にかなってほしい。OpenSplice DDS:タイムアウトまでいくつかのタイムアウトまで
私が書いているいくつかのddsラッパーの要件の1つは、書き込みに失敗した場合、タイムアウト期間が過ぎるとタイムアウトすることです。 私の質問:どうすればいいですか?
Prism Tech's website's tutorialには、WaitSet
を使用して読み取り操作をブロックする方法についての説明がありますが、書き込みはどうですか?
はここで質問を含むいくつかのコードです:私はそこに気づい
dds::domain::DomainParticipant dp(0);
dds::topic::Topic<MyType> topic(dp, "MyTopic");
dds::pub::Publisher pub(dp);
dds::pub::DataWriter<MyType> dw(pub, topic);
MyType t;
dw.write(t); //how can I make this block for 5 seconds (tops), and then throw an error on failure?
はAPI DataWriter::wait_for_acknowledgements(int timeout)
内の関数が存在するが、これはない執筆の特定のコールに、DataWriter
オブジェクトにバインドしているようです。上記の呼び出しでバインドできますか?
ありがとうございます!私はすぐにこの解決策を試し、報告します。私はこの期間が過ぎるとエラーを投げかけ、捕まえることができると思います。 –
DDS_RETCODE_TIMEOUT、RETCODE_TIMEOUT、dds :: core :: TimeoutError、TimeoutExceptionなどの実装や言語に依存します。通常、これは通信の問題ではなくリソースの制約です、この参加者のためにメモリが使い果たされた、など)。 –