Ros_CSharp.TcpTransport.disableRead C# (CSharp) Method

disableRead() public method

public disableRead ( ) : void
return void
        public void disableRead()
        {
            if (sock == null)
                return;
            if (!sock.Connected)
                close();
            lock (close_mutex)
            {
                if (closed) return;
            }
            if (expecting_read && poll_set != null)
            {
                //Console.WriteLine("DISABLE READ:  " + Topic + "(" + sock.FD + ")");
                poll_set.delEvents(sock, POLLIN);
                expecting_read = false;
            }
        }

Usage Example

Example #1
0
 private void readTransport()
 {
     //EDB.WriteLine("READ - "+transport.poll_set);
     if (dropped || reading)
     {
         return;
     }
     lock (read_mutex)
     {
         reading = true;
         ReadFinishedFunc callback;
         uint             size;
         while (!dropped && read_callback != null)
         {
             if (read_buffer == null || read_callback == null)
             {
                 throw new Exception("YOU SUCK!");
             }
             uint to_read = read_size - read_filled;
             if (to_read > 0)
             {
                 int bytes_read = transport.read(ref read_buffer, read_filled, to_read);
                 if (dropped)
                 {
                     return;
                 }
                 if (bytes_read < 0)
                 {
                     callback      = read_callback;
                     read_callback = null;
                     byte[] buffer = read_buffer;
                     read_buffer = null;
                     size        = read_size;
                     read_size   = 0;
                     read_filled = 0;
                     callback(this, ref buffer, size, false);
                     break;
                 }
                 read_filled += (uint)bytes_read;
             }
             else
             {
                 break;
             }
             if (read_filled == read_size && !dropped)
             {
                 callback = read_callback;
                 size     = read_size;
                 byte[] buffer = read_buffer;
                 read_buffer   = null;
                 read_callback = null;
                 read_size     = 0;
                 callback(this, ref buffer, size, true);
             }
             else
             {
                 break;
             }
         }
         if (read_callback == null)
         {
             transport.disableRead();
         }
         reading = false;
     }
 }
All Usage Examples Of Ros_CSharp.TcpTransport::disableRead