Vuoi gli attori di leggere/scrivere direttamente dalla/alla presa? Una vera astrazione IO basata su attori non è ancora implementata, ma è una funzionalità pianificata per la prossima versione di libcppa (rimanete sintonizzati). Se vuoi solo distribuire i tuoi attori tramite la rete, dai un'occhiata alla coppia di funzioni publish/remote_actor.
/edit:
Per il momento, è possibile utilizzare alcune delle utility di libcppa per ottenere una versione di blocco installato e funzionante:
using namespace cppa;
spawn<detached>([] {
auto ack = network::ipv4_acceptor::create(4242);
for (;;) {
auto spair = ack->accept_connection();
spawn<detached>([spair] {
// spair.first is the input stream
// spair.second is the output stream
// please see http://neverlord.github.io/libcppa/namespacecppa_1_1network.html
});
}
);
Ciò non scala bene, perché si creerà un thread per connessione, e non è molto elegante. Inoltre, è difficile eseguire il multiplex tra i messaggi ricevuti tramite socket e i messaggi ricevuti da altri attori. Una soluzione più elegante è in arrivo. ;)
Grazie @neverlord. In realtà voglio un attore per connessione, quindi funziona alla grande e quindi utilizzo il polling in modo che non blocchi. Mantenere il buon lavoro. Non vedo l'ora di provare gli attori basati su IO :) Qualche piano per aggiungere attori basati su zeromq? –
ZeroMQ non è nell'elenco delle cose da fare, ma libcppa è open source. Forse vuoi contribuire con un'implementazione. ;) – neverlord