131 lines
2.5 KiB
Java
131 lines
2.5 KiB
Java
/*
|
|
* 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;
|
|
|
|
/**
|
|
* This class contains 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
|
|
*/
|
|
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();
|
|
|
|
}
|