boost::asio - acceptor wiederverwenden
-
Hallo
Das ist mehr eine philosophische Frage über die Benutzerfreundlichkeit von
boost::asio
.Wenn man einen
acceptor
stoppen und wiederverwenden möchte, muss man ihn ja wieder öffnen. (steht so in der Doku). Was dort aber nicht steht ist, wie man ihn wieder zu dem Zustand bringt, wie man ihn hatte, wenn man den Konstruktor nimmt mit demio_service
einemendpoint
. Nun habe ich natürlich einfach mal dort in die Implementierung geschaut und gesehen, dass exakt dieselben Schritt notwendig sind, wie in dem Konstruktor, also die Aufrufe an folgende Funktionen:- basic_socket_acceptor::open ()
- basic_socket_acceptor::set_option ()
- basic_socket_acceptor::bind ()
- basic_socket_acceptor::listen ()
Nun Frage ich mich, warum zur Welt haben sie nicht eine Funktion, die genau das macht? Oder zumindest die Schritte in der Doku aufgeführt? Warum muss ich also, um einen acceptor zum wieder laufen kriegen in den Source von
boost::asio
gehen und schauen, was die dort machen um das selbe hinzu kriegen?
Ich finde das ehrlich gesagt sehr schwach. Von der Implementierung und der Dokumentation.Ebenfalls, dass basic_socket_acceptor::bind offensichtlich nicht auf dem aktuellen stand ist, denn das Beispiel hier:
http://www.boost.org/doc/libs/1_41_0/doc/html/boost_asio/reference/basic_socket_acceptor/bind/overload1.html
geht nicht, da keine Umwandlung gefudnen werden konnte.