コード例 #1
0
        public void Say(string message)
        {
            if (string.IsNullOrEmpty(message))
            {
                throw new ArgumentException(Resources.Client_Join_Cannot_be_empty_or_null, "message");
            }

            IMessageCallback messageCallback = new MessageCallback(this._messageStatus);

            switch (this._roomVersion)
            {
            case RoomVersion.Base:
                RoomPrx room = RoomPrxHelper.checkedCast(this._roomAccess.RoomProxy.ice_context(this._context));
                room.begin_Say(message).whenCompleted(messageCallback.SayCallback, messageCallback.FailureCallback);
                break;

            case RoomVersion.V1:
                RoomAdmPrx roomAdm = RoomAdmPrxHelper.checkedCast(this._roomAccess.RoomProxy.ice_context(this._context), "V1");
                roomAdm.begin_Say(message).whenCompleted(messageCallback.SayCallback, messageCallback.FailureCallback);
                break;

            case RoomVersion.V2:
                RoomV2Prx roomV2 = RoomV2PrxHelper.checkedCast(this._roomAccess.RoomProxy.ice_context(this._context), "V2");
                roomV2.begin_Say(message, DateTime.Now.Ticks).whenCompleted(messageCallback.SayCallback, messageCallback.FailureCallback);
                break;
            }
        }
コード例 #2
0
        public void Leave()
        {
            try
            {
                switch (this._roomVersion)
                {
                case RoomVersion.Base:
                    RoomPrx room = RoomPrxHelper.checkedCast(this._roomAccess.RoomProxy.ice_context(this._context));
                    room.LeaveRoom();
                    break;

                case RoomVersion.V1:
                    RoomAdmPrx roomAdm = RoomAdmPrxHelper.checkedCast(this._roomAccess.RoomProxy.ice_context(this._context), "V1");
                    roomAdm.LeaveRoom();
                    break;

                case RoomVersion.V2:
                    RoomV2Prx roomV2 = RoomV2PrxHelper.checkedCast(this._roomAccess.RoomProxy.ice_context(this._context), "V2");
                    roomV2.LeaveRoom();
                    break;
                }
            }
            finally
            {
                this._jobQueue.Destroy();
                this._jobQueue.Join();
                this._jobQueue = null;
            }
        }
コード例 #3
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);
        }
コード例 #4
0
ファイル: LobbyI.cs プロジェクト: hwz121212/Chat_Ice_ZeroC
        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));
            }
        }
コード例 #5
0
ファイル: Chat.cs プロジェクト: spolnik/Chat_Ice_ZeroC
 public static void write__(IceInternal.BasicStream os__, RoomPrx v__)
 {
     os__.writeProxy(v__);
 }