All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.asteriskjava.util.SocketConnectionFacade Maven / Gradle / Ivy

The newest version!
/*
 *  Copyright 2004-2006 Stefan Reuter
 *
 *  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 org.asteriskjava.util;

import java.io.IOException;
import java.net.InetAddress;

/**
 * The SocketConnectionFacade provides read and write operation for
 * communication over TCP/IP sockets.

* It hides the details of the underlying I/O system used for socket * communication. * * @author srt * @version $Id$ */ public interface SocketConnectionFacade { /** * Reads a line of text from the socket connection. The current thread is * blocked until either the next line is received or an IOException * encounters.

* Depending on the implementation different newline delimiters are used * ("\r\n" for the Manager API and "\n" for AGI). * * @return the line of text received excluding the newline delimiter. * @throws IOException if the connection has been closed. */ String readLine() throws IOException; /** * Sends a given String to the socket connection. * * @param s the String to send. * @throws IOException if the String cannot be sent, maybe because the * connection has already been closed. */ void write(String s) throws IOException; /** * Flushes the socket connection by sending any buffered but yet unsent * data. * * @throws IOException if the connection cannot be flushed. */ void flush() throws IOException; /** * Closes the socket connection including its input and output stream and * frees all associated ressources.

* When calling close() any Thread currently blocked by a call to readLine() * will be unblocked and receive an IOException. * * @throws IOException if the socket connection cannot be closed. */ void close() throws IOException; /** * Returns the connection state of the socket. * * @return true if the socket successfuly connected to a * server */ boolean isConnected(); /** * Returns the local address this socket connection. * * @return the local address this socket connection. * @since 0.2 */ InetAddress getLocalAddress(); /** * Returns the local port of this socket connection. * * @return the local port of this socket connection. * @since 0.2 */ int getLocalPort(); /** * Returns the remote address of this socket connection. * * @return the remote address of this socket connection. * @since 0.2 */ InetAddress getRemoteAddress(); /** * Returns the remote port of this socket connection. * * @return the remote port of this socket connection. * @since 0.2 */ int getRemotePort(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy