001: /*
002: * Copyright (c) 1998-2008 Caucho Technology -- all rights reserved
003: *
004: * This file is part of Resin(R) Open Source
005: *
006: * Each copy or derived work must preserve the copyright notice and this
007: * notice unmodified.
008: *
009: * Resin Open Source is free software; you can redistribute it and/or modify
010: * it under the terms of the GNU General Public License as published by
011: * the Free Software Foundation; either version 2 of the License, or
012: * (at your option) any later version.
013: *
014: * Resin Open Source is distributed in the hope that it will be useful,
015: * but WITHOUT ANY WARRANTY; without even the implied warranty of
016: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
017: * of NON-INFRINGEMENT. See the GNU General Public License for more
018: * details.
019: *
020: * You should have received a copy of the GNU General Public License
021: * along with Resin Open Source; if not, write to the
022: *
023: * Free Software Foundation, Inc.
024: * 59 Temple Place, Suite 330
025: * Boston, MA 02111-1307 USA
026: *
027: * @author Scott Ferguson
028: */
029:
030: package com.caucho.server.cluster;
031:
032: import com.caucho.server.hmux.HmuxProtocol;
033: import com.caucho.server.port.Port;
034: import com.caucho.util.L10N;
035:
036: import javax.annotation.PostConstruct;
037:
038: /**
039: * Represents a protocol connection.
040: */
041: public class ClusterPort extends Port {
042: private static final L10N L = new L10N(ClusterPort.class);
043:
044: private ClusterServer _server;
045:
046: private int _clientWeight = 100;
047:
048: public ClusterPort(ClusterServer server) {
049: _server = server;
050:
051: try {
052: setAddress("127.0.0.1");
053: setPort(6800);
054:
055: setProtocol(new HmuxProtocol());
056: } catch (Exception e) {
057: throw new RuntimeException(e);
058: }
059: }
060:
061: /**
062: * Returns the cluster server.
063: */
064: public ClusterServer getClusterServer() {
065: return _server;
066: }
067:
068: /**
069: * Returns the session index for the srun.
070: */
071: public int getIndex() {
072: return _server.getIndex();
073: }
074:
075: /**
076: * Set the client weight.
077: */
078: public void setClientWeight(int weight) {
079: _clientWeight = weight;
080: }
081:
082: /**
083: * Return the client weight.
084: */
085: public int getClientWeight() {
086: return _clientWeight;
087: }
088:
089: @PostConstruct
090: public void init() {
091: }
092:
093: public String toString() {
094: if (getAddress() != null)
095: return "ClusterPort[address=" + getAddress() + ",port="
096: + getPort() + "]";
097: else
098: return "ClusterPort[address=*,port=" + getPort() + "]";
099: }
100: }
|