1 /* (c) Copyright 2003 Caleigo AB, All rights reserved. 2 * 3 * This library is free software; you can redistribute it and/or 4 * modify it under the terms of the GNU Lesser General Public 5 * License as published by the Free Software Foundation; either 6 * version 2.1 of the License, or (at your option) any later version. 7 * 8 * This library is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * Lesser General Public License for more details. 12 * 13 * You should have received a copy of the GNU Lesser General Public 14 * License along with this library; if not, write to the Free Software 15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16 * 17 */ 18 19 package org.caleigo.toolkit.tunnel; 20 21 import java.io.*; 22 23 /*** An ITunnelCodec is responsible for transforming messages to and from bytes 24 * that can be handled by streams. 25 * 26 * @author Dennis Zikovic 27 * @version 1.00 28 * 29 *//* 30 * 31 * WHEN WHO WHY & WHAT 32 * ----------------------------------------------------------------------------- 33 * 2002-02-12 Dennis Zikovic Creation 34 */ 35 public interface ITunnelCodec 36 { 37 // Constants --------------------------------------------------------------- 38 39 // Methods ----------------------------------------------------------------- 40 41 /*** 42 * Transforms a message into bytes and writes them to the OutputStream. 43 */ 44 public void encode(Object message, OutputStream out) throws IOException; 45 46 /*** 47 * Reads bytes from the InputStream and transforms them into a message that 48 * is returned. 49 */ 50 public Object decode(InputStream in) throws IOException; 51 52 // Nested classes ---------------------------------------------------------- 53 } 54