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

📄 distributedstate.java

📁 piweurrrrq i o fhsadhfka fd dskajc zxkjcnkjsahc
💻 JAVA
字号:
/* * Copyright (c) 2000 Lyrisoft Solutions, Inc. * Used by permission */package com.lyrisoft.chat.server.remote;import java.util.Collection;import java.util.Iterator;import java.io.PrintStream;/** * Encapulates the state of the whole distributed system. * Each server will have its own distributed state object */public class DistributedState {    private RoomTable _roomTable;    private ServerTable _serverTable;    private ChatServer _server;    public DistributedState(ChatServer server) {        _server = server;        _serverTable = new ServerTable(server);        _roomTable = new RoomTable(server);    }        public synchronized Collection getUsersOnServer(String server) {        return _serverTable.getUsers(server);    }    public synchronized Collection getAllUsers() {        return _serverTable.getAllUsers();    }    public synchronized Collection getAllRooms() {        return _roomTable.getRoomNames();    }    public synchronized Collection getUsersInRoom(String roomname) {        return _roomTable.getUsers(roomname);    }    public synchronized Collection getAllServers() {        return _serverTable.getServerNames();    }    public synchronized void signon(String server, String user) {        _serverTable.signon(server, user);    }    /**     * @return a Collection of rooms that have been destroyed as a result of the signoff     */    public synchronized Collection signoff(String server, String user) {        _serverTable.signoff(server, user);        return _roomTable.signoff(user);    }    public synchronized boolean userExists(String username) {        return _serverTable.userExists(username);    }    public synchronized boolean userExistsInRoom(String username, String roomname) {        return _roomTable.userExistsInRoom(username, roomname);    }    public synchronized boolean serverExists(String servername) {        return _serverTable.serverExists(servername);    }    public synchronized boolean roomExists(String roomname) {        return _roomTable.roomExists(roomname);    }    public synchronized void checkServerPings(long timeout) {        _serverTable.checkServerPings(timeout);    }    /**     * @return true if this room is newly created     */    public synchronized boolean join(String server, String room, String user) {        return _roomTable.join(room, user);    }    /**     * @return true if the room is destroyed     */    public synchronized boolean part(String server, String room, String user) {        return _roomTable.part(room, user);    }    public synchronized void addServer(String server) {        _serverTable.add(server);    }    public synchronized void deleteServer(String server) {        // first get rid of any dead users (and possibly dead rooms)        Collection deadUsers = _serverTable.getUsers(server);        for (Iterator i = deadUsers.iterator(); i.hasNext(); ) {            String user = (String)i.next();            _server.remoteSignOff(server, user);        }        _serverTable.delete(server);    }    public synchronized int countUsersOnServer(String server) {        return _serverTable.countUsers(server);    }    public synchronized int countUsersInRoom(String room) {        return _roomTable.countUsers(room);    }    public synchronized void setLastBroadcastPing(String server, long time) {        _serverTable.setLastBroadcastPing(server, time);    }    public void dumpServerTable(PrintStream out) {        _serverTable.dump(out);    }    public void dumpRoomTable(PrintStream out) {        _roomTable.dump(out);    }}

⌨️ 快捷键说明

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