コード例 #1
0
        public void Dispose()
        {
            if (this.disposed)
            {
                return;
            }

            this.disposed     = true;
            this.CurrentState = RosbridgeMessageDispatcherStates.Stopped;

            Task.Run(async() =>
            {
                if (this.socket != null)
                {
                    await this.socket.DisconnectAsync();
                    this.socket.Dispose();
                    this.socket = null;
                }

                if (this.receivingTask != null)
                {
                    await this.receivingTask;
                    this.receivingTask = null;
                }

                this.rosbridgeMessageSerializer = null;
            });

            GC.SuppressFinalize(this);
        }
コード例 #2
0
        public RosbridgeMessageDispatcher(ISocket socket, IRosbridgeMessageSerializer rosbridgeMessageSerializer)
        {
            if (socket == null)
            {
                throw new ArgumentNullException(nameof(socket));
            }

            if (rosbridgeMessageSerializer == null)
            {
                throw new ArgumentNullException(nameof(rosbridgeMessageSerializer));
            }

            this.socket = socket;
            this.rosbridgeMessageSerializer = rosbridgeMessageSerializer;
            this.CurrentState = RosbridgeMessageDispatcherStates.Stopped;
        }