⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serverdesc.java

📁 一个类似于openJMS分布在ObjectWeb之下的JMS消息中间件。
💻 JAVA
字号:
/* * Copyright (C) 2001 - 2004 ScalAgent Distributed Technologies * Copyright (C) 2004 - France Telecom R&D * Copyright (C) 1996 - 2000 BULL * Copyright (C) 1996 - 2000 INRIA * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or any later version. *  * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. *  * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 * USA. * * Initial developer(s): Dyade * Contributor(s): ScalAgent Distributed Technologies */package fr.dyade.aaa.agent;import java.io.*;import java.net.InetAddress;import java.util.Vector;import java.util.Enumeration;import fr.dyade.aaa.util.Strings;import fr.dyade.aaa.util.SocketAddress;/** * Description of an agent server. It is used by <code>Channel</code> and * <code>Network</code> objects. Be careful, this structure is initialized * in AgentServer, but it can be viewed outside of the agent package, so * it's very important to make all modifiers package. */public final class ServerDesc implements Serializable {  /**  Server unique identifier. */  short sid;  /** Server name. */  String name;  /**   * The IP address of the server.   * It contains hostname and port ({@link fr.dyade.aaa.util.SocketAddress   * <code>SocketAddress</code>}) of remote server. The communication port   * is set only if the server is directly accessible from this node; in   * this case it corresponds to the communication port of the server in the   * adjoining domain.   * The descriptor of an HA server contains one <code>SocketAddress</code>   * for each of its constituent.   */  private Vector sockAddrs = null;  /**   * Description of services running on this server.   */  transient ServiceDesc[] services = null;  /**   * Server Id. of a gateway server for this server if it is not in an   * adjoining domain.   */  short gateway = -1;  /**   * Domain description of this server.   */  transient MessageConsumer domain = null;  /** True if there is no waiting messages for this server. */  transient volatile boolean active = true;  /** Date of the last unsuccessful connection to this server. */  transient volatile long last = 0L;  /** Number of unsuccessful connection to this server. */  transient volatile int retry = 0;      /**   * Constructs a new node for a persistent agent server.   * @param	sid		the server unique id   * @param	name		the server name   * @param	hostname	the server hostname   * @param	port		the server port   */  public ServerDesc(short sid,		    String name,		    String hostname,                    int port) {    this.sid = sid;    this.name = name;    sockAddrs = new Vector();    sockAddrs.addElement(new SocketAddress(hostname,port));  }  /**   * Gets server id. for this server.   *   * @return the server id.   */  public short getServerId() {    return sid;  }  /**   * Gets server name for this server.   *   * @return the server name.   */  public String getServerName() {    return name;  }  /**   * Gets hostname for this server.   *   * @return the hostname.   */  public String getHostname() {    return  ((SocketAddress) sockAddrs.firstElement()).getHostname();  }  /**   * Gets port for this server.   *   * @return the port.   */  public int getPort() {    return ((SocketAddress) sockAddrs.firstElement()).getPort();  }  /**   * Returns an IP address for its server.   *    * @return	an IP address for this server.   */  public InetAddress getAddr() {    return ((SocketAddress) sockAddrs.firstElement()).getAddress();  }  /**   * Resolves an IP address for its server, don't use an eventually caching   * address.   *    * @return	an IP address for this server.   */  public InetAddress resetAddr() {    ((SocketAddress) sockAddrs.firstElement()).resetAddr();    return getAddr();  }  void addSockAddr(String hostname, int port) {    sockAddrs.addElement(new SocketAddress(hostname, port));  }  void updateSockAddr(String hostname, int port) {    sockAddrs.remove(0);    sockAddrs.insertElementAt(new SocketAddress(hostname,port), 0);  }  /**   * In case of an HA server, selects the IP address as this of the master   * component of the HA configuration.   */  void moveToFirst(SocketAddress addr) {    if (sockAddrs.indexOf(addr) > 0) {      if (sockAddrs.remove(addr))        sockAddrs.insertElementAt(addr,0);    }  }  /**   * In case of an HA server, gets the IP address of all the components   * of the HA configuration.   */  Enumeration getSockAddrs() {    return sockAddrs.elements();  }    /**   * Gets the description of services running on this server.   *   * @return the description of services.   */  public ServiceDesc[] getServices() {    return services;  }  public short getGateway() {    return gateway;  }  public String getDomainName() {    return domain.getDomainName();  }  public Class getDomainType() {    return domain.getClass();  }  /**   * Provides a string image for this object.   *   * @return	printable image of this object   */  public String toString() {    StringBuffer strBuf = new StringBuffer();    strBuf.append("(").append(super.toString());    strBuf.append(",sid=").append(sid);    strBuf.append(",name=").append(name);    strBuf.append(",services=");    Strings.toString(strBuf, services);    strBuf.append(",active=").append(active);    strBuf.append(",last=").append(last);    strBuf.append(",gateway=").append(gateway);    strBuf.append(",sockAddrs=").append(sockAddrs);    strBuf.append(",domain=").append(domain);    strBuf.append(")");    return strBuf.toString();  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -