/* * Gokul Poduval & Chen-Khong Tham * Computer Communication Networks (CCN) Lab * Dept of Electrical & Computer Engineering * National University of Singapore * August 2004 * * Licence: GPL - http://www.gnu.org/copyleft/gpl.html * Copyright (c) 2004, The University of Melbourne, Australia and National * University of Singapore * Packet.java - Interface of a Network Packet. * */ package org.cloudbus.cloudsim; /** * Defines the structure for a network packet. * * @author Gokul Poduval * @author Chen-Khong Tham, National University of Singapore * @since CloudSim Toolkit 1.0 */ public interface Packet { /** * Returns a string describing this packet in detail. * * @return description of this packet * @pre $none * @post $none */ @Override String toString(); /** * Returns the size of this packet * * @return size of the packet * @pre $none * @post $none */ long getSize(); /** * Sets the size of this packet * * @param size size of the packet * @return <tt>true</tt> if it is successful, <tt>false</tt> otherwise * @pre size >= 0 * @post $none */ boolean setSize(long size); /** * Returns the destination id of this packet. * * @return destination id * @pre $none * @post $none */ int getDestId(); /** * Returns the ID of this packet * * @return packet ID * @pre $none * @post $none */ int getId(); /** * Returns the ID of the source of this packet. * * @return source id * @pre $none * @post $none */ int getSrcId(); /** * Gets the network service type of this packet * * @return the network service type * @pre $none * @post $none * * @todo Is it the Type of Service (ToS) of IPv4, like in * the {@link Cloudlet#netToS}? If yes, so the names would * be standardized. */ int getNetServiceType(); /** * Sets the network service type of this packet. * <p> * By default, the service type is 0 (zero). It is depends on the packet scheduler to determine * the priority of this service level. * * @param serviceType this packet's service type * @pre serviceType >= 0 * @post $none */ void setNetServiceType(int serviceType); /** * Gets an entity ID from the last hop that this packet has traversed. * * @return an entity ID * @pre $none * @post $none */ int getLast(); /** * Sets an entity ID from the last hop that this packet has traversed. * * @param last an entity ID from the last hop * @pre last > 0 * @post $none */ void setLast(int last); /** * Gets this packet tag * * @return this packet tag * @pre $none * @post $none */ int getTag(); }