1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 *
19 */
20 package org.apache.mina.transport.tcp;
21
22 import org.apache.mina.service.client.AbstractIoClient;
23 import org.apache.mina.service.executor.IoHandlerExecutor;
24
25 /**
26 * Base class for TCP based Clients
27 *
28 * @author <a href="http://mina.apache.org">Apache MINA Project</a>
29 */
30 public abstract class AbstractTcpClient extends AbstractIoClient {
31
32 /** the connection timeout in milliseconds, after that delay the connection to remote server should fail. */
33 private int connectTimeoutInMillis = 10000;
34
35 /**
36 * Create an new AbsractTcpClient instance
37 */
38 protected AbstractTcpClient(IoHandlerExecutor ioHandlerExecutor) {
39 super(ioHandlerExecutor);
40 config = new DefaultTcpSessionConfig();
41 }
42
43 /**
44 * {@inheritDoc}
45 */
46 @Override
47 public TcpSessionConfig getSessionConfig() {
48 return (TcpSessionConfig) config;
49 }
50
51 /**
52 * Set the default configuration for created TCP sessions
53 *
54 * @param config
55 */
56 public void setSessionConfig(final TcpSessionConfig config) {
57 this.config = config;
58 }
59
60 /**
61 * Returns the connect timeout in milliseconds. The default value is 10 seconds.
62 *
63 * @return the connect timeout in milliseconds
64 */
65 public int getConnectTimeoutMillis() {
66 return connectTimeoutInMillis;
67 }
68
69 /**
70 * Sets the connect timeout in milliseconds. The default value is 1 minute.
71 *
72 * @param connectTimeoutInMillis Connection timeout in ms
73 */
74 public void setConnectTimeoutMillis(int connectTimeoutInMillis) {
75 this.connectTimeoutInMillis = connectTimeoutInMillis;
76 }
77 }