1 /** 2 * EasyBeans 3 * Copyright (C) 2006 Bull S.A.S. 4 * Contact: easybeans@objectweb.org 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 19 * USA 20 * 21 * -------------------------------------------------------------------------- 22 * $Id:$ 23 * -------------------------------------------------------------------------- 24 */ 25 26 package org.objectweb.easybeans.component.smartclient.api; 27 28 import java.nio.ByteBuffer; 29 30 /** 31 * All messages needs to implement this interface. 32 * @author Florent Benoit 33 */ 34 public interface Message { 35 36 /** 37 * Size to store an int in bytes. 38 */ 39 int INT_BYTE_SIZE = 4; 40 41 /** 42 * Header. 43 * <ul> 44 * <li> byte = version</li> 45 * <li> byte = opcode</li> 46 * <li> int = length</li> 47 * </ul> 48 */ 49 int HEADER_SIZE = 1 + 1 + INT_BYTE_SIZE; 50 51 52 /** 53 * Gets the OpCode of this message. 54 * @return the operation code. 55 */ 56 byte getOpCode(); 57 58 /** 59 * Gets a message to send. 60 * @return the bytebuffer to send 61 */ 62 ByteBuffer getMessage(); 63 } 64