1 package net.sf.josceleton.connection.impl;
2
3 import net.sf.josceleton.connection.api.Connection;
4 import net.sf.josceleton.connection.api.Connector;
5 import net.sf.josceleton.connection.impl.osc.OscPort;
6 import net.sf.josceleton.connection.impl.osc.OscPortOpener;
7
8 import org.apache.commons.logging.Log;
9 import org.apache.commons.logging.LogFactory;
10
11 import com.google.inject.Inject;
12
13 public class ConnectorImpl implements Connector {
14
15 private static final Log LOG = LogFactory.getLog(ConnectorImpl.class);
16
17 private static final int DEFAULT_OSCELETON_PORT = 7110;
18
19 private final OscPortOpener portOpener;
20
21
22 private final ConnectionFactory connectionFactory;
23
24
25 @Inject
26 public ConnectorImpl(
27 final OscPortOpener portOpener,
28 final ConnectionFactory connectionFactory
29 ) {
30 this.portOpener = portOpener;
31 this.connectionFactory = connectionFactory;
32 }
33
34
35 @Override public final Connection openConnection() {
36 LOG.debug("openConnection()");
37 return this.openConnectionOnPort(DEFAULT_OSCELETON_PORT);
38 }
39
40
41 @Override public final Connection openConnectionOnPort(final int port) {
42 LOG.debug("openConnectionOnPort(port=" + port + ")");
43
44 final OscPort oscPort = this.portOpener.connect(port);
45
46 final ConnectionInternal connection = this.connectionFactory.create(oscPort);
47 connection.establish();
48 return connection;
49 }
50
51 }