/* * Jitsi, the OpenSource Java VoIP and Instant Messaging client. * * Copyright @ 2015 Atlassian Pty Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.java.sip.communicator.impl.protocol.irc; import java.io.*; import java.net.*; import com.ircclouds.irc.api.*; import com.ircclouds.irc.api.ctcp.*; import com.ircclouds.irc.api.domain.*; import com.ircclouds.irc.api.filters.*; import com.ircclouds.irc.api.listeners.*; import com.ircclouds.irc.api.state.*; /** * Synchronization wrapper for IRCApi. * * All calls are synchronized. In case of multiple operations one can manually * block-synchronize on the instance. * * @author Danny van Heumen */ public class SynchronizedIRCApi implements IRCApi { private final IRCApi irc; /** * Constructor for synchronization wrapper. * * @param irc IRCApi instance */ public SynchronizedIRCApi(final IRCApi irc) { if (irc == null) { throw new IllegalArgumentException("irc instance cannot be null"); } this.irc = irc; } @Override public synchronized void connect(final IServerParameters aServerParameters, final Callback aCallback) { this.irc.connect(aServerParameters, aCallback); } @Override public synchronized void connect(final IServerParameters aServerParameters, final Callback aCallback, final CapabilityNegotiator negotiator) { this.irc.connect(aServerParameters, aCallback, negotiator); } @Override public synchronized void disconnect() { this.irc.disconnect(); } @Override public synchronized void disconnect(final String aQuitMessage) { this.irc.disconnect(aQuitMessage); } @Override public synchronized void joinChannel(final String aChannelName) { this.irc.joinChannel(aChannelName); } @Override public synchronized void joinChannel(final String aChannelName, final Callback aCallback) { this.irc.joinChannel(aChannelName, aCallback); } @Override public synchronized void joinChannel(final String aChannelName, final String aKey) { this.irc.joinChannel(aChannelName, aKey); } @Override public synchronized void joinChannel(final String aChannelName, final String aKey, final Callback aCallback) { this.irc.joinChannel(aChannelName, aKey, aCallback); } @Override public synchronized void leaveChannel(final String aChannelName) { this.irc.leaveChannel(aChannelName); } @Override public synchronized void leaveChannel(final String aChannelName, final Callback aCallback) { this.irc.leaveChannel(aChannelName, aCallback); } @Override public synchronized void leaveChannel(final String aChannelName, final String aPartMessage) { this.irc.leaveChannel(aChannelName, aPartMessage); } @Override public synchronized void leaveChannel(final String aChannelName, final String aPartMessage, final Callback aCallback) { this.irc.leaveChannel(aChannelName, aPartMessage, aCallback); } @Override public synchronized void changeNick(final String aNewNick) { this.irc.changeNick(aNewNick); } @Override public synchronized void changeNick(final String aNewNick, final Callback aCallback) { this.irc.changeNick(aNewNick, aCallback); } @Override public synchronized void message(final String aTarget, final String aMessage) { this.irc.message(aTarget, aMessage); } @Override public synchronized void message(final String aTarget, final String aMessage, final Callback aCallback) { this.irc.message(aTarget, aMessage, aCallback); } @Override public synchronized void act(final String aTarget, final String aMessage) { this.irc.act(aTarget, aMessage); } @Override public synchronized void act(final String aTarget, final String aMessage, final Callback aCallback) { this.irc.act(aTarget, aMessage, aCallback); } @Override public synchronized void notice(final String aTarget, final String aMessage) { this.irc.notice(aTarget, aMessage); } @Override public synchronized void notice(final String aTarget, final String aMessage, final Callback aCallback) { this.irc.notice(aTarget, aMessage, aCallback); } @Override public synchronized void kick(final String aChannel, final String aNick) { this.irc.kick(aChannel, aNick); } @Override public synchronized void kick(final String aChannel, final String aNick, final String aKickMessage) { this.irc.kick(aChannel, aNick, aKickMessage); } @Override public synchronized void kick(final String aChannel, final String aNick, final Callback aCallback) { this.irc.kick(aChannel, aNick, aCallback); } @Override public synchronized void kick(final String aChannel, final String aNick, final String aKickMessage, final Callback aCallback) { this.irc.kick(aChannel, aNick, aKickMessage, aCallback); } @Override public synchronized void changeTopic(final String aChannel, final String aTopic) { this.irc.changeTopic(aChannel, aTopic); } @Override public synchronized void changeMode(final String aModeString) { this.irc.changeMode(aModeString); } @Override public synchronized void rawMessage(final String aMessage) { this.irc.rawMessage(aMessage); } @Override public synchronized void dccSend(final String aNick, final File aFile, final DCCSendCallback aCallback) { this.irc.dccSend(aNick, aFile, aCallback); } @Override public synchronized void dccSend(final String aNick, final File aFile, final Integer aTimeout, final DCCSendCallback aCallback) { this.irc.dccSend(aNick, aFile, aTimeout, aCallback); } @Override public synchronized void dccSend(final String aNick, final Integer aListeningPort, final File aFile, final DCCSendCallback aCallback) { this.irc.dccSend(aNick, aListeningPort, aFile, aCallback); } @Override public synchronized void dccSend(final String aNick, final File aFile, final Integer aListeningPort, final Integer aTimeout, final DCCSendCallback aCallback) { this.irc.dccSend(aNick, aFile, aListeningPort, aTimeout, aCallback); } @Override public synchronized void dccAccept(final String aNick, final File aFile, final Integer aPort, final Integer aResumePosition, final DCCSendCallback aCallback) { this.irc.dccAccept(aNick, aFile, aPort, aResumePosition, aCallback); } @Override public synchronized void dccAccept(final String aNick, final File aFile, final Integer aPort, final Integer aResumePosition, final Integer aTimeout, final DCCSendCallback aCallback) { this.irc.dccAccept(aNick, aFile, aPort, aResumePosition, aTimeout, aCallback); } @Override public synchronized void dccReceive(final File aFile, final Integer aSize, final SocketAddress aAddress, final DCCReceiveCallback aCallback) { this.irc.dccReceive(aFile, aSize, aAddress, aCallback); } @Override public synchronized void dccReceive(final File aFile, final Integer aSize, final SocketAddress aAddress, final DCCReceiveCallback aCallback, final Proxy aProxy) { this.irc.dccReceive(aFile, aSize, aAddress, aCallback, aProxy); } @Override public synchronized void dccResume(final File aFile, final Integer aResumePosition, final Integer aSize, final SocketAddress aAddress, final DCCReceiveCallback aCallback) { this.irc.dccResume(aFile, aResumePosition, aSize, aAddress, aCallback); } @Override public synchronized void dccResume(final File aFile, final Integer aResumePosition, final Integer aSize, final SocketAddress aAddress, final DCCReceiveCallback aCallback, final Proxy aProxy) { this.irc.dccResume(aFile, aResumePosition, aSize, aAddress, aCallback, aProxy); } @Override public synchronized DCCManager getDCCManager() { return this.irc.getDCCManager(); } @Override public synchronized void addListener(final IMessageListener aListener) { this.irc.addListener(aListener); } @Override public synchronized void deleteListener(final IMessageListener aListener) { this.irc.deleteListener(aListener); } @Override public synchronized void setMessageFilter(final IMessageFilter aFilter) { this.irc.setMessageFilter(aFilter); } }