/* * Title: CloudSim Toolkit * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds * Licence: GPL - http://www.gnu.org/copyleft/gpl.html * * Copyright (c) 2009-2012, The University of Melbourne, Australia */ package org.cloudbus.cloudsim; /** * This class contains additional tags for the DataCloud functionalities, such as file information * retrieval, file transfers, and storage info. * * @author Uros Cibej * @author Anthony Sulistio * @since CloudSim Toolkit 1.0 */ public final class DataCloudTags { // to prevent a conflict with the existing CloudSimTags values /** * Base value used for other general tags. */ private static final int BASE = 400; /** * Base value used for Replica Manager tags. */ private static final int RM_BASE = 500; /** * Base value for catalogue tags. */ private static final int CTLG_BASE = 600; // ////////// GENERAL TAGS /** Default Maximum Transmission Unit (MTU) of a link in bytes. */ public static final int DEFAULT_MTU = 1500; /** The default packet size (in byte) for sending events to other entity. */ public static final int PKT_SIZE = DEFAULT_MTU * 100; // in bytes /** The default storage size (10 GB in byte). */ public static final int DEFAULT_STORAGE_SIZE = 10000000; /** Registers a Replica Catalogue (RC) entity to a Data GIS. */ public static final int REGISTER_REPLICA_CTLG = BASE + 1; /** * Denotes a list of all Replica Catalogue (RC) entities that are listed in this regional Data * GIS entity. This tag should be called from a user to Data GIS. */ public static final int INQUIRY_LOCAL_RC_LIST = BASE + 2; /** * Denotes a list of Replica Catalogue (RC) entities that are listed in other regional Data GIS * entities. This tag should be called from a user to Data GIS. */ public static final int INQUIRY_GLOBAL_RC_LIST = BASE + 3; /** * Denotes a list of Replica Catalogue IDs. This tag should be called from a Regional Data GIS * to another */ public static final int INQUIRY_RC_LIST = BASE + 4; /** * Denotes a result regarding to a list of Replica Catalogue IDs. This tag should be called from * a Regional Data GIS to a sender Regional Data GIS. */ public static final int INQUIRY_RC_RESULT = BASE + 5; /** * Denotes the submission of a DataCloudlet. This tag is normally used between user and * DataCloudResource entity. */ public static final int DATAcloudlet_SUBMIT = BASE + 6; // ////////// REPLICA MANAGER TAGS // ***********************User <--> RM******************************// /** * Requests for a file that is stored on the local storage(s). * <br/>The format of this request is Object[2] = {String lfn, Integer senderID}.<br/> * The reply tag name is {@link #FILE_DELIVERY}. */ public static final int FILE_REQUEST = RM_BASE + 1; /** * Sends the file to the requester. The format of the reply is File or null if error happens */ public static final int FILE_DELIVERY = RM_BASE + 2; // ///////////////////////////////////////////////////////////////////// /** * Requests for a master file to be added to the local storage(s). * <br/>The format of this request is Object[2] = {File obj, Integer senderID}.<br/> * The reply tag name is {@link #FILE_ADD_MASTER_RESULT}. */ public static final int FILE_ADD_MASTER = RM_BASE + 10; /** * Sends the result of adding a master file back to sender. * <br/>The format of the reply is Object[3] = {String lfn, Integer uniqueID, Integer resultID}. * <br/>NOTE: The result id is in the form of FILE_ADD_XXXX where XXXX means the error/success * message. */ public static final int FILE_ADD_MASTER_RESULT = RM_BASE + 11; /** * Requests for a replica file to be added from the local storage(s). * <br/>The format of this request is Object[2] = {File obj, Integer senderID}. * <br/>The reply tag name is {@link #FILE_ADD_REPLICA_RESULT}. */ public static final int FILE_ADD_REPLICA = RM_BASE + 12; /** * Sends the result of adding a replica file back to sender. * <br/>The format of the reply is Object[2] = {String lfn, Integer resultID}. * <br/>NOTE: The result id is in the form of FILE_ADD_XXXX where XXXX means the error/success * message */ public static final int FILE_ADD_REPLICA_RESULT = RM_BASE + 13; /** Denotes that file addition is successful. */ public static final int FILE_ADD_SUCCESSFUL = RM_BASE + 20; /** Denotes that file addition is failed because the storage is full. */ public static final int FILE_ADD_ERROR_STORAGE_FULL = RM_BASE + 21; /** Denotes that file addition is failed because the given file is empty. */ public static final int FILE_ADD_ERROR_EMPTY = RM_BASE + 22; /** * Denotes that file addition is failed because the file already exists in the catalogue and it * is read-only file. */ public static final int FILE_ADD_ERROR_EXIST_READ_ONLY = RM_BASE + 23; /** Denotes that file addition is failed due to an unknown error. */ public static final int FILE_ADD_ERROR = RM_BASE + 24; /** * Denotes that file addition is failed because access/permission denied or not authorized. */ public static final int FILE_ADD_ERROR_ACCESS_DENIED = RM_BASE + 25; // ///////////////////////////////////////////////////////////////////// /** * Requests for a master file to be deleted from the local storage(s). * <br/>The format of this request is Object[2] = {String lfn, Integer senderID}. * <br/>The reply tag name is {@link #FILE_DELETE_MASTER_RESULT}. */ public static final int FILE_DELETE_MASTER = RM_BASE + 30; /** * Sends the result of deleting a master file back to sender. * <br/>The format of the reply is Object[2] = {String lfn, Integer resultID}. * <br/>NOTE: The result id is in the form of FILE_DELETE_XXXX where XXXX means the error/success * message */ public static final int FILE_DELETE_MASTER_RESULT = RM_BASE + 31; /** * Requests for a replica file to be deleted from the local storage(s). * <br/>The format of this request is Object[2] = {String lfn, Integer senderID}. * <br/>The reply tag name is {@link #FILE_DELETE_REPLICA_RESULT}. */ public static final int FILE_DELETE_REPLICA = RM_BASE + 32; /** * Sends the result of deleting a replica file back to sender. * <br/>The format of the reply is Object[2] = {String lfn, Integer resultID}. * <br/>NOTE: The result id is in the form of FILE_DELETE_XXXX where XXXX means the error/success * message */ public static final int FILE_DELETE_REPLICA_RESULT = RM_BASE + 33; /** Denotes that file deletion is successful. */ public static final int FILE_DELETE_SUCCESSFUL = RM_BASE + 40; /** Denotes that file deletion is failed due to an unknown error. */ public static final int FILE_DELETE_ERROR = RM_BASE + 41; /** Denotes that file deletion is failed because it is a read-only file. */ public static final int FILE_DELETE_ERROR_READ_ONLY = RM_BASE + 42; /** * Denotes that file deletion is failed because the file does not exist in the storage nor * catalogue. */ public static final int FILE_DELETE_ERROR_DOESNT_EXIST = RM_BASE + 43; /** * Denotes that file deletion is failed because it is currently used by others. */ public static final int FILE_DELETE_ERROR_IN_USE = RM_BASE + 44; /** * Denotes that file deletion is failed because access/permission denied or not authorized. */ public static final int FILE_DELETE_ERROR_ACCESS_DENIED = RM_BASE + 45; // ///////////////////////////////////////////////////////////////////// /** * Requests for a file to be modified from the local storage(s). * <br/>The format of this request is Object[2] = {File obj, Integer senderID}. * <br/>The reply tag name is {@link #FILE_MODIFY_RESULT}. */ public static final int FILE_MODIFY = RM_BASE + 50; /** * Sends the result of deleting a file back to sender. * <br/>The format of the reply is Object[2] = {String lfn, Integer resultID}. * <br/>NOTE: The result id is in the form of FILE_MODIFY_XXXX where XXXX means the error/success * message */ public static final int FILE_MODIFY_RESULT = RM_BASE + 51; /** Denotes that file modification is successful. */ public static final int FILE_MODIFY_SUCCESSFUL = RM_BASE + 60; /** Denotes that file modification is failed due to an unknown error. */ public static final int FILE_MODIFY_ERROR = RM_BASE + 61; /** * Denotes that file modification is failed because it is a read-only file. */ public static final int FILE_MODIFY_ERROR_READ_ONLY = RM_BASE + 62; /** * Denotes that file modification is failed because the file does not exist. */ public static final int FILE_MODIFY_ERROR_DOESNT_EXIST = RM_BASE + 63; /** * Denotes that file modification is failed because the file is currently used by others. */ public static final int FILE_MODIFY_ERROR_IN_USE = RM_BASE + 64; /** * Denotes that file modification is failed because access/permission denied or not authorized. */ public static final int FILE_MODIFY_ERROR_ACCESS_DENIED = RM_BASE + 65; // ////////// REPLICA CATALOGUE TAGS // ***********************User<-->RC******************************// /** * Denotes the request for a location of a replica file. * <br/>The format of this request is Object[2] = {String lfn, Integer senderID}. * <br/>The reply tag name is {@link #CTLG_REPLICA_DELIVERY}. * <br/>NOTE: This request only ask for one location only not all. */ public static final int CTLG_GET_REPLICA = CTLG_BASE + 1; /** * Sends the result for a location of a replica file back to sender. * <br/>The format of the reply is Object[2] = {String lfn, Integer resourceID}. * <br/>NOTE: The resourceID could be <tt>-1</tt> if not found. */ public static final int CTLG_REPLICA_DELIVERY = CTLG_BASE + 2; /** * Denotes the request for all locations of a replica file. * <br/>The format of this request is Object[2] = {String lfn, Integer senderID}. * <br/>The reply tag name is {@link #CTLG_REPLICA_LIST_DELIVERY}. */ public static final int CTLG_GET_REPLICA_LIST = CTLG_BASE + 3; /** * Sends the result for all locations of a replica file back to sender. * <br/>The format of the reply is Object[2] = {String lfn, List locationList}. * <br/>NOTE: The locationList could be <tt>null</tt> if not found. */ public static final int CTLG_REPLICA_LIST_DELIVERY = CTLG_BASE + 4; /** * Denotes the request to get the attribute of a file. * <br/>The format of this request is Object[2] = {String lfn, Integer senderID}. * <br/>The reply tag name is {@link #CTLG_FILE_ATTR_DELIVERY}. */ public static final int CTLG_GET_FILE_ATTR = CTLG_BASE + 5; /** * Sends the result for a file attribute back to sender. * <br/>The format of the reply is {FileAttribute fileAttr} * <br/>NOTE: The fileAttr could be <tt>null</tt> if not found. */ public static final int CTLG_FILE_ATTR_DELIVERY = CTLG_BASE + 6; /** * Denotes the request to get a list of file attributes based on the given filter. * <br/>The format of this request is Object[2] = {Filter filter, Integer senderID} * <br/>The reply tag name is {@link #CTLG_FILTER_DELIVERY}. */ public static final int CTLG_FILTER = CTLG_BASE + 7; /** * Sends the result for a list of file attributes back to sender. * <br/>The format of the reply is {List attrList}. * <br/>NOTE: The attrList could be <tt>null</tt> if not found. */ public static final int CTLG_FILTER_DELIVERY = CTLG_BASE + 8; // ***********************RM<-->RC******************************// /** * Denotes the request to register / add a master file to the Replica Catalogue. * <br/>The format of this request is Object[3] = {String filename, FileAttribute attr, Integer * resID}. * <br/>The reply tag name is {@link #CTLG_ADD_MASTER_RESULT}. */ public static final int CTLG_ADD_MASTER = CTLG_BASE + 10; /** * Sends the result of registering a master file back to sender. * <br/>The format of the reply is Object[3] = {String filename, Integer uniqueID, Integer resultID}. * <br/>NOTE: The result id is in the form of CTLG_ADD_MASTER_XXXX where XXXX means the error/success * message */ public static final int CTLG_ADD_MASTER_RESULT = CTLG_BASE + 11; /** Denotes that master file addition is successful. */ public static final int CTLG_ADD_MASTER_SUCCESSFUL = CTLG_BASE + 12; /** Denotes that master file addition is failed due to an unknown error. */ public static final int CTLG_ADD_MASTER_ERROR = CTLG_BASE + 13; /** * Denotes that master file addition is failed due to the catalogue is full. */ public static final int CTLG_ADD_MASTER_ERROR_FULL = CTLG_BASE + 14; // ///////////////////////////////////////////////////////////////////// /** * Denotes the request to de-register / delete a master file from the Replica Catalogue. * <br/>The format of this request is Object[2] = {String lfn, Integer resourceID}. * <br/>The reply tag name is {@link #CTLG_DELETE_MASTER_RESULT}. */ public static final int CTLG_DELETE_MASTER = CTLG_BASE + 20; /** * Sends the result of de-registering a master file back to sender. * <br/>The format of the reply is Object[2] = {String lfn, Integer resultID}. * <br/>NOTE: The result id is in the form of CTLG_DELETE_MASTER_XXXX where XXXX means the * error/success message */ public static final int CTLG_DELETE_MASTER_RESULT = CTLG_BASE + 21; /** Denotes that master file deletion is successful. */ public static final int CTLG_DELETE_MASTER_SUCCESSFUL = CTLG_BASE + 22; /** Denotes that master file deletion is failed due to an unknown error. */ public static final int CTLG_DELETE_MASTER_ERROR = CTLG_BASE + 23; /** * Denotes that master file deletion is failed because the file does not exist in the catalogue. */ public static final int CTLG_DELETE_MASTER_DOESNT_EXIST = CTLG_BASE + 24; /** * Denotes that master file deletion is failed because replica files are still in the catalogue. * All replicas need to be deleted first. */ public static final int CTLG_DELETE_MASTER_REPLICAS_EXIST = CTLG_BASE + 25; // ///////////////////////////////////////////////////////////////////// /** * Denotes the request to register / add a replica file to the Replica Catalogue. * <br/>The format of this request is Object[2] = {String lfn, Integer resourceID}. * <br/>The reply tag name is {@link #CTLG_ADD_REPLICA_RESULT}. */ public static final int CTLG_ADD_REPLICA = CTLG_BASE + 30; /** * Sends the result of registering a replica file back to sender. * <br/>The format of the reply is Object[2] = {String lfn, Integer resultID}. * <br/>NOTE: The result id is in the form of CTLG_ADD_REPLICA_XXXX where XXXX means the * error/success message */ public static final int CTLG_ADD_REPLICA_RESULT = CTLG_BASE + 31; /** Denotes that replica file addition is successful. */ public static final int CTLG_ADD_REPLICA_SUCCESSFUL = CTLG_BASE + 32; /** Denotes that replica file addition is failed due to an unknown error. */ public static final int CTLG_ADD_REPLICA_ERROR = CTLG_BASE + 33; /** * Denotes that replica file addition is failed because the given file name does not exist in * the catalogue. */ public static final int CTLG_ADD_REPLICA_ERROR_DOESNT_EXIST = CTLG_BASE + 34; /** * Denotes that replica file addition is failed due to the catalogue is full. */ public static final int CTLG_ADD_REPLICA_ERROR_FULL = CTLG_BASE + 35; // ///////////////////////////////////////////////////////////////////// /** * Denotes the request to de-register / delete a replica file from the Replica Catalogue.<br/> * The format of this request is Object[2] = {String lfn, Integer resourceID}.<br/> * The reply tag name is {@link #CTLG_DELETE_REPLICA_RESULT}. */ public static final int CTLG_DELETE_REPLICA = CTLG_BASE + 40; /** * Sends the result of de-registering a replica file back to sender. * <br/>The format of the reply is Object[2] = {String lfn, Integer resultID}. * <br/>NOTE: The result id is in the form of CTLG_DELETE_REPLICA_XXXX where XXXX means the * error/success message */ public static final int CTLG_DELETE_REPLICA_RESULT = CTLG_BASE + 41; /** Denotes that replica file deletion is successful. */ public static final int CTLG_DELETE_REPLICA_SUCCESSFUL = CTLG_BASE + 42; /** Denotes that replica file deletion is failed due to an unknown error. */ public static final int CTLG_DELETE_REPLICA_ERROR = CTLG_BASE + 43; /** * Denotes that replica file deletion is failed because the file does not exist in the catalogue. */ public static final int CTLG_DELETE_REPLICA_ERROR_DOESNT_EXIST = CTLG_BASE + 44; // ///////////////////////////////////////////////////////////////////// /** * Denotes the request to modify an existing master file information stored in the Replica * Catalogue. * <br/>The format of this request is Object[3] = {String filename, FileAttribute attr, Integer * resID}. * <br/>The reply tag name is {@link #CTLG_MODIFY_MASTER_RESULT}. */ public static final int CTLG_MODIFY_MASTER = CTLG_BASE + 50; /** * Sends the result of modifying a master file back to sender. * <br/>The format of the reply is Object[2] = {String lfn, Integer resultID}. * <br/>NOTE: The result id is in the form of CTLG_MODIFY_MASTER_XXXX where XXXX means the * error/success message */ public static final int CTLG_MODIFY_MASTER_RESULT = CTLG_BASE + 51; /** Denotes that master file deletion is successful. */ public static final int CTLG_MODIFY_MASTER_SUCCESSFUL = CTLG_BASE + 52; /** * Denotes that master file modification is failed due to an unknown error. */ public static final int CTLG_MODIFY_MASTER_ERROR = CTLG_BASE + 53; /** * Denotes that master file modification is failed because the file does not exist in the * catalogue. */ public static final int CTLG_MODIFY_MASTER_ERROR_DOESNT_EXIST = CTLG_BASE + 54; /** * Denotes that master file modification is failed because the file attribute is set to a * read-only. */ public static final int CTLG_MODIFY_MASTER_ERROR_READ_ONLY = CTLG_BASE + 55; // ///////////////////////////////////////////////////////////////////// /** Private Constructor. */ private DataCloudTags() { throw new UnsupportedOperationException("DataCloudTags cannot be instantiated"); } }