@@ -37,8 +37,8 @@ namespace mozart { namespace boostenv {
37
37
// TCPConnection //
38
38
// /////////////////
39
39
40
- TCPConnection::TCPConnection (VM vm):
41
- BaseSocketConnection (vm), _resolver(env.io_service) {
40
+ TCPConnection::TCPConnection (BoostEnvironment& env, VMIdentifier vm):
41
+ BaseSocketConnection (env, vm), _resolver(env.io_service) {
42
42
}
43
43
44
44
void TCPConnection::startAsyncConnect (std::string host, std::string service,
@@ -80,15 +80,14 @@ void TCPConnection::startAsyncConnect(std::string host, std::string service,
80
80
// TCPAcceptor //
81
81
// ///////////////
82
82
83
- TCPAcceptor::TCPAcceptor (VM vm,
83
+ TCPAcceptor::TCPAcceptor (BoostEnvironment& env, VMIdentifier vm,
84
84
const tcp::endpoint& endpoint):
85
- env (BoostEnvironment::forVM(vm)),
86
- vm (BoostVM::forVM(vm).identifier),
87
- _acceptor (env.io_service, endpoint) {
85
+ env (env), vm(vm), _acceptor(env.io_service, endpoint) {
88
86
}
89
87
90
- void TCPAcceptor::startAsyncAccept (TCPConnection::pointer connection,
91
- const ProtectedNode& connectionNode) {
88
+ void TCPAcceptor::startAsyncAccept (const ProtectedNode& connectionNode) {
89
+ TCPConnection::pointer connection = TCPConnection::create (env, vm);
90
+
92
91
auto handler = [=] (const boost::system::error_code& error) {
93
92
if (!error) {
94
93
env.postVMEvent (vm, [=] (BoostVM& boostVM) {
@@ -101,7 +100,7 @@ void TCPAcceptor::startAsyncAccept(TCPConnection::pointer connection,
101
100
});
102
101
} else {
103
102
// Try again
104
- startAsyncAccept (connection, connectionNode);
103
+ startAsyncAccept (connectionNode);
105
104
}
106
105
};
107
106
0 commit comments