Beispiel #1
0
        public RoomPrx GetRoom(string nick, string topic, ListenerPrx listener)
        {
            if (!this._rooms.ContainsKey(topic))
                return this.CreateNewRoomProxies(nick, topic, listener);

            var facets = this.Adapter.findAllFacets(this._rooms[topic].ice_getIdentity());

            foreach (Object room in facets.Values)
            {
                if (room is RoomAdmTie_)
                {
                    RoomAdmTie_ roomAdmTie = (RoomAdmTie_) room;
                    RoomI roomAdm = (RoomI) roomAdmTie.ice_delegate();
                    roomAdm.AddListener(nick, listener);
                }
                else if (room is RoomI)
                {
                    RoomI roomI = (RoomI) room;
                    roomI.AddListener(nick, listener);
                }
                else if (room is RoomV2)
                {
                    RoomV2I roomV2I = (RoomV2I) room;
                    roomV2I.AddListener(nick, listener);
                }
            }

            return this._rooms[topic];
        }
        public RoomPrx GetRoom(string nick, string topic, ListenerPrx listener)
        {
            if (!this._rooms.ContainsKey(topic))
            {
                return(this.CreateNewRoomProxies(nick, topic, listener));
            }

            var facets = this.Adapter.findAllFacets(this._rooms[topic].ice_getIdentity());

            foreach (Object room in facets.Values)
            {
                if (room is RoomAdmTie_)
                {
                    RoomAdmTie_ roomAdmTie = (RoomAdmTie_)room;
                    RoomI       roomAdm    = (RoomI)roomAdmTie.ice_delegate();
                    roomAdm.AddListener(nick, listener);
                }
                else if (room is RoomI)
                {
                    RoomI roomI = (RoomI)room;
                    roomI.AddListener(nick, listener);
                }
                else if (room is RoomV2)
                {
                    RoomV2I roomV2I = (RoomV2I)room;
                    roomV2I.AddListener(nick, listener);
                }
            }

            return(this._rooms[topic]);
        }
Beispiel #3
0
        public override RoomAccess Join(string nick, string topic, Ice.Identity listenerIdentity, Ice.Current current)
        {
            lock (this)
            {
                if (string.IsNullOrEmpty(nick))
                {
                    throw new IChatException("Nick cannot be null");
                }
                if (string.IsNullOrEmpty(topic))
                {
                    throw new IChatException("Topic cannot be null");
                }

                ListenerPrx listener = ListenerPrxHelper.uncheckedCast(current.con.createProxy(listenerIdentity));

                RoomPrx roomProxy = RoomFactory.Instance.GetRoom(nick, topic, listener);

                Console.WriteLine("Nick: {0}, topic: {1}, listenerIdentity: {2}, {3}", nick, topic, listenerIdentity.name, listenerIdentity.category);

                return(new RoomAccess(roomProxy, topic));
            }
        }
        private RoomPrx CreateNewRoomProxies(string nick, string topic, ListenerPrx listener)
        {
            RoomI room = new RoomI(topic);

            room.AddListener(nick, listener);
            RoomPrx roomPrx = RoomPrxHelper.uncheckedCast(this.Adapter.addWithUUID(room));

            RoomAdmI roomAdm = new RoomAdmI(topic);

            roomAdm.AddListener(nick, listener);
            RoomAdmTie_ roomAdmTie = new RoomAdmTie_(roomAdm);

            this.Adapter.addFacet(roomAdmTie, roomPrx.ice_getIdentity(), "V1");

            RoomV2I roomV2 = new RoomV2I(topic);

            roomV2.AddListener(nick, listener);
            this.Adapter.addFacet(roomV2, roomPrx.ice_getIdentity(), "V2");

            this._rooms.Add(topic, roomPrx);
            return(roomPrx);
        }
Beispiel #5
0
 internal void AddListener(string nick, ListenerPrx listener)
 {
     this.ListenerPrxs.Add(nick, listener);
 }
Beispiel #6
0
 internal void AddListener(string nick, ListenerPrx listener)
 {
     this._listenerPrxs.Add(nick, listener);
 }
Beispiel #7
0
        private RoomPrx CreateNewRoomProxies(string nick, string topic, ListenerPrx listener)
        {
            RoomI room = new RoomI(topic);
            room.AddListener(nick, listener);
            RoomPrx roomPrx = RoomPrxHelper.uncheckedCast(this.Adapter.addWithUUID(room));

            RoomAdmI roomAdm = new RoomAdmI(topic);
            roomAdm.AddListener(nick, listener);
            RoomAdmTie_ roomAdmTie = new RoomAdmTie_(roomAdm);
            this.Adapter.addFacet(roomAdmTie, roomPrx.ice_getIdentity(), "V1");

            RoomV2I roomV2 = new RoomV2I(topic);
            roomV2.AddListener(nick, listener);
            this.Adapter.addFacet(roomV2, roomPrx.ice_getIdentity(), "V2");

            this._rooms.Add(topic, roomPrx);
            return roomPrx;
        }
Beispiel #8
0
 public static void write__(IceInternal.BasicStream os__, ListenerPrx v__)
 {
     os__.writeProxy(v__);
 }