4 package org.pcmm.rcd.impl;
6 import java.io.IOException;
7 import java.net.InetAddress;
8 import java.net.Socket;
9 import java.net.UnknownHostException;
11 import org.pcmm.nio.PCMMChannel;
12 // import org.junit.Assert;
13 import org.pcmm.objects.MMVersionInfo;
14 import org.pcmm.rcd.IPCMMClient;
15 import org.slf4j.Logger;
16 import org.slf4j.LoggerFactory;
17 import org.umu.cops.stack.COPSMsg;
21 * default implementation for {@link IPCMMClient}
25 public class AbstractPCMMClient implements IPCMMClient {
27 protected Logger logger = LoggerFactory.getLogger(AbstractPCMMClient.class);
29 * socket used to communicated with server.
31 private Socket socket;
33 private String clientHanlde;
35 private MMVersionInfo versionInfo;
37 private PCMMChannel channel;
39 public AbstractPCMMClient() {
45 * @see pcmm.rcd.IPCMMClient#sendRequest(pcmm.messages.IMessage)
47 public void sendRequest(COPSMsg requestMessage) {
49 channel.sendMsg(requestMessage);
50 } catch (Exception e) {
51 logger.error(e.getMessage(), getSocket());
58 * @see org.pcmm.rcd.IPCMMClient#readMessage()
60 public COPSMsg readMessage() {
62 COPSMsg recvdMsg = channel.receiveMessage();
63 // logger.debug("received message : " + recvdMsg.getHeader());
65 } catch (Exception e) {
66 logger.error(e.getMessage(), getSocket());
74 * @see pcmm.rcd.IPCMMClient#tryConnect(java.lang.String, int)
76 public boolean tryConnect(String address, int port) {
78 InetAddress addr = InetAddress.getByName(address);
79 tryConnect(addr, port);
80 } catch (UnknownHostException e) {
81 logger.error(e.getMessage());
90 * @see pcmm.rcd.IPCMMClient#tryConnect(java.net.InetAddress, int)
92 public boolean tryConnect(InetAddress address, int port) {
94 setSocket(new Socket(address, port));
95 } catch (IOException e) {
96 logger.error(e.getMessage());
105 * @see pcmm.rcd.IPCMMClient#disconnect()
107 public boolean disconnect() {
112 } catch (IOException e) {
113 logger.error(e.getMessage());
122 public Socket getSocket() {
126 public PCMMChannel getChannel() {
134 public void setSocket(Socket socket) {
135 this.socket = socket;
136 if (this.socket != null
137 && (this.channel == null || !this.channel.getSocket().equals(
139 channel = new PCMMChannel(this.socket);
145 * @see org.pcmm.rcd.IPCMMClient#isConnected()
147 public boolean isConnected() {
148 return socket != null && socket.isConnected();
152 * @return the versionInfo
154 public MMVersionInfo getVersionInfo() {
160 * the versionInfo to set
162 public void setVersionInfo(MMVersionInfo versionInfo) {
163 this.versionInfo = versionInfo;
167 public String getClientHandle() {
172 public void setClientHandle(String handle) {
173 this.clientHanlde = handle;