コード例 #1
0
ファイル: Message.cs プロジェクト: SergeyTeplyakov/CrazyTalk
        public Message(long version, long id, Command command)
        {
            Contract.Requires(command != null);

            Version = version;
            Id = id;
            Command = command;
        }
コード例 #2
0
        private Message CreateMessage(Command command)
        {
            Contract.Requires(command != null);
            Contract.Ensures(Contract.Result<Message>() != null);

            var message = new Message(1, messageId, command);
            Interlocked.Increment(ref messageId);
            return message;
        }
コード例 #3
0
 private static void WriteCommand(dynamic dynamicElement, Command command)
 {
     switch(command.CommandType)
     {
         case CommandType.Login:
             LoginCommand loginCommand = (LoginCommand) command;
             dynamicElement.command.userInfo.name = loginCommand.UserInfo.Name;
             break;
         case CommandType.Ack:
             AckCommand ackCommand = (AckCommand) command;
             dynamicElement.command.messageId = ackCommand.MessageId;
             break;
         case CommandType.UserState:
             UserStateCommand userStateCommand = (UserStateCommand) command;
             dynamicElement.command.userInfo.name = userStateCommand.UserInfo.Name;
             dynamicElement.command.userState = userStateCommand.UserState;
             break;
         case CommandType.TextMessage:
             TextMessageCommand textMessageCommand = (TextMessageCommand) command;
             dynamicElement.command.from.userInfo.name = textMessageCommand.From.Name;
             dynamicElement.command.to.userInfo.name = textMessageCommand.To.Name;
             dynamicElement.command.textMessage = textMessageCommand.Message;
             break;
         default:
             throw new InvalidOperationException("Unsupported command type: " + command.CommandType);
     }
 }