blob: 74584e5af80848b78fe9522408df5b42b8aa63d0 [file] [log] [blame]
/*
* This file is part of the QuickServer library
* Copyright (C) QuickServer.org
*
* Use, modification, copying and distribution of this software is subject to
* the terms and conditions of the GNU Lesser General Public License.
* You should have received a copy of the GNU LGP License along with this
* library; if not, you can download a copy from <http://www.quickserver.org/>.
*
* For questions, suggestions, bug-reports, enhancement-requests etc.
* visit http://www.quickserver.org
*
*/
package org.quickserver.net.server;
import java.io.*;
import java.net.SocketTimeoutException;
/**
* This interface defines the methods
* that should be implemented by any class that
* wants to handle java Objects from a client.
*
* <p>
* Recommendations to be followed when implementing ClientObjectHandler
* <ul>
* <li>Should have a default constructor.
* <li>Should be thread safe.
* <li>It should not store any client data that may be needed in the
* implementation.
* <li>If any client data is need to be saved from the client session,
* it should be saved to a {@link ClientData} class, which can be retrieved
* using handler.getClientData() method.
* </ul>
* </p>
* <p>
* Ex:
* <code><BLOCKQUOTE><pre>
package dateserver;
import java.net.*;
import java.io.*;
import java.util.Date;
import org.quickserver.net.server.*;
public class ObjectHandler implements ClientObjectHandler {
public void handleObject(ClientHandler handler, Object command)
throws SocketTimeoutException, IOException {
handler.sendSystemMsg("Got Object : " + command.toString());
handler.setDataMode(DataMode.STRING);
}
}
</pre></BLOCKQUOTE></code></p>
* @author Akshathkumar Shetty
*/
public interface ClientObjectHandler {
/**
* Method called every time client sends an Object.
* Should be used to handle the Object sent.
* @exception java.net.SocketTimeoutException if socket times out
* @exception java.io.IOException if io error in socket
* @since v1.2
*/
public void handleObject(ClientHandler handler, Object command)
throws SocketTimeoutException, IOException;
}