[Spice-devel] [PATCH v2 24/24] Rename 'Stream' to 'IOChannel'

Frediano Ziglio fziglio at redhat.com
Thu Feb 22 08:29:46 UTC 2018


> 
> From: Christophe de Dinechin <dinechin at redhat.com>
> 
> Signed-off-by: Christophe de Dinechin <dinechin at redhat.com>
> ---
>  src/concrete-agent.hpp        |  4 +--
>  src/spice-streaming-agent.cpp | 64
>  +++++++++++++++++++++----------------------
>  2 files changed, 34 insertions(+), 34 deletions(-)
> 
> diff --git a/src/concrete-agent.hpp b/src/concrete-agent.hpp
> index 346ba6c..418ccd9 100644
> --- a/src/concrete-agent.hpp
> +++ b/src/concrete-agent.hpp
> @@ -14,7 +14,7 @@
>  namespace spice {
>  namespace streaming_agent {
>  
> -class Stream;
> +class IOChannel;
>  class FrameLog;
>  
>  struct ConcreteConfigureOption: ConfigureOption
> @@ -36,7 +36,7 @@ public:
>      void Register(Plugin& plugin) override;
>      const ConfigureOption* Options() const override;
>      void LoadPlugins(const std::string &directory);
> -    void CaptureLoop(Stream &stream, FrameLog &frame_log);
> +    void CaptureLoop(IOChannel &channel, FrameLog &frame_log);
>      // pointer must remain valid
>      void AddOption(const char *name, const char *value);
>      FrameCapture *GetBestFrameCapture(const std::set<SpiceVideoCodecType>&
>      codecs);
> diff --git a/src/spice-streaming-agent.cpp b/src/spice-streaming-agent.cpp
> index b889acc..f6a0bf6 100644
> --- a/src/spice-streaming-agent.cpp
> +++ b/src/spice-streaming-agent.cpp
> @@ -66,7 +66,7 @@ public:
>      virtual std::string message() { return what(); }
>  };
>  
> -class Stream
> +class IOChannel
>  {
>      typedef std::set<SpiceVideoCodecType> codecs_t;
>  
> @@ -86,7 +86,7 @@ public:
>      };
>  
>  public:
> -    Stream(const char *name)
> +    IOChannel(const char *name)
>          : codecs()
>      {
>          streamfd = open(name, O_RDWR);
> @@ -94,7 +94,7 @@ public:
>              throw std::runtime_error("failed to open streaming device");
>          }
>      }
> -    ~Stream()
> +    ~IOChannel()
>      {
>          close(streamfd);
>      }
> @@ -159,9 +159,9 @@ struct FormatMessage : Message<StreamMsgFormat,
> FormatMessage>
>      {
>          return StreamMsgFormat{ .width = w, .height = h, .codec = c,
>          .padding1 = {} };
>      }
> -    void write(Stream &stream, unsigned w, unsigned h, uint8_t c)
> +    void write(IOChannel &channel, unsigned w, unsigned h, uint8_t c)
>      {
> -        stream.write_all("FormatMessage", this, sizeof(message_t));
> +        channel.write_all("FormatMessage", this, sizeof(message_t));
>      }
>  };
>  
> @@ -178,10 +178,10 @@ struct FrameMessage : Message<StreamMsgData,
> FrameMessage>
>      {
>          return StreamMsgData();
>      }
> -    void write(Stream &stream, const void *frame, size_t length)
> +    void write(IOChannel &channel, const void *frame, size_t length)
>      {
> -        stream.write_all("FrameMessage header", this, sizeof(message_t));
> -        stream.write_all("FrameMessage frame", frame, length);
> +        channel.write_all("FrameMessage header", this, sizeof(message_t));
> +        channel.write_all("FrameMessage frame", frame, length);
>      }
>  };
>  
> @@ -216,11 +216,11 @@ struct X11CursorMessage : Message<StreamMsgCursorSet,
> X11CursorMessage>
>              .data = { }
>          };
>      }
> -    void write(Stream &stream, XFixesCursorImage *cursor)
> +    void write(IOChannel &channel, XFixesCursorImage *cursor)
>      {
>          unsigned pixel_size = pixel_count(cursor) * sizeof(uint32_t);
> -        stream.write_all("X11CursorMessage header", this,
> sizeof(message_t));
> -        stream.write_all("X11CursorMessage pixels", pixels.get(),
> pixel_size);
> +        channel.write_all("X11CursorMessage header", this,
> sizeof(message_t));
> +        channel.write_all("X11CursorMessage pixels", pixels.get(),
> pixel_size);
>      }
>      void fill_pixels(XFixesCursorImage *cursor)
>      {
> @@ -279,21 +279,21 @@ void FrameLog::dump(const void *buffer, size_t length)
>  class X11CursorThread
>  {
>  public:
> -    X11CursorThread(Stream &stream);
> +    X11CursorThread(IOChannel &channel);
>      ~X11CursorThread();
>  
>      static void record_cursor_changes(X11CursorThread *self) {
>      self->cursor_changes(); }
>      void cursor_changes();
>  
>  private:
> -    Stream &stream;
> +    IOChannel &channel;
>      Display *display;
>      std::thread thread;
>  };
>  
>  
> -X11CursorThread::X11CursorThread(Stream &stream)
> -    : stream(stream),
> +X11CursorThread::X11CursorThread(IOChannel &channel)
> +    : channel(channel),
>        display(XOpenDisplay(NULL)),
>        thread(record_cursor_changes, this)
>  {
> @@ -337,14 +337,14 @@ void X11CursorThread::cursor_changes()
>          }
>  
>          last_serial = cursor->cursor_serial;
> -        stream.send<X11CursorMessage>(cursor);
> +        channel.send<X11CursorMessage>(cursor);
>      }
>  }
>  
>  }} // namespace spice::streaming_agent
>  
>  
> -int Stream::have_something_to_read(int timeout)
> +int IOChannel::have_something_to_read(int timeout)
>  {
>      struct pollfd pollfd = {streamfd, POLLIN, 0};
>  
> @@ -360,7 +360,7 @@ int Stream::have_something_to_read(int timeout)
>      return 0;
>  }
>  
> -void Stream::handle_stream_start_stop(uint32_t len)
> +void IOChannel::handle_stream_start_stop(uint32_t len)
>  {
>      uint8_t msg[256];
>  
> @@ -382,7 +382,7 @@ void Stream::handle_stream_start_stop(uint32_t len)
>      }
>  }
>  
> -void Stream::handle_stream_capabilities(uint32_t len)
> +void IOChannel::handle_stream_capabilities(uint32_t len)
>  {
>      uint8_t caps[STREAM_MSG_CAPABILITIES_MAX_BYTES];
>  
> @@ -407,13 +407,13 @@ void Stream::handle_stream_capabilities(uint32_t len)
>      }
>  }
>  
> -void Stream::handle_stream_error(uint32_t len)
> +void IOChannel::handle_stream_error(uint32_t len)
>  {
>      // TODO read message and use it
>      throw std::runtime_error("got an error message from server");
>  }
>  
> -void Stream::read_command_from_device()
> +void IOChannel::read_command_from_device()
>  {
>      StreamDevHeader hdr;
>      int n;
> @@ -440,7 +440,7 @@ void Stream::read_command_from_device()
>      throw std::runtime_error("UNKNOWN msg of type " +
>      std::to_string(hdr.type));
>  }
>  
> -int Stream::read_command(bool blocking)
> +int IOChannel::read_command(bool blocking)
>  {
>      int timeout = blocking?-1:0;
>      while (!quit_requested) {
> @@ -458,7 +458,7 @@ int Stream::read_command(bool blocking)
>      return 1;
>  }
>  
> -size_t Stream::write_all(const char *what, const void *buf, const size_t
> len)
> +size_t IOChannel::write_all(const char *what, const void *buf, const size_t
> len)
>  {
>      size_t written = 0;
>      while (written < len) {
> @@ -509,12 +509,12 @@ static void usage(const char *progname)
>  }
>  
>  
> -void ConcreteAgent::CaptureLoop(Stream &stream, FrameLog &frame_log)
> +void ConcreteAgent::CaptureLoop(IOChannel &channel, FrameLog &frame_log)
>  {
>      unsigned int frame_count = 0;
>      while (!quit_requested) {
> -        while (!quit_requested && !stream.streaming_requested()) {
> -            if (stream.read_command(true) < 0) {
> +        while (!quit_requested && !channel.streaming_requested()) {
> +            if (channel.read_command(true) < 0) {
>                  syslog(LOG_ERR, "FAILED to read command\n");
>                  return;
>              }
> @@ -527,12 +527,12 @@ void ConcreteAgent::CaptureLoop(Stream &stream,
> FrameLog &frame_log)
>          syslog(LOG_INFO, "streaming starts now\n");
>          uint64_t time_last = 0;
>  
> -        std::unique_ptr<FrameCapture>
> capture(GetBestFrameCapture(stream.client_codecs()));
> +        std::unique_ptr<FrameCapture>
> capture(GetBestFrameCapture(channel.client_codecs()));
>          if (!capture) {
>              throw std::runtime_error("cannot find a suitable capture
>              system");
>          }
>  
> -        while (!quit_requested && stream.streaming_requested()) {
> +        while (!quit_requested && channel.streaming_requested()) {
>              if (++frame_count % 100 == 0) {
>                  syslog(LOG_DEBUG, "SENT %d frames\n", frame_count);
>              }
> @@ -559,15 +559,15 @@ void ConcreteAgent::CaptureLoop(Stream &stream,
> FrameLog &frame_log)
>  
>                  syslog(LOG_DEBUG, "wXh %uX%u  codec=%u\n", width, height,
>                  codec);
>  
> -                stream.send<FormatMessage>(width, height, codec);
> +                channel.send<FormatMessage>(width, height, codec);
>              }
>              if (frame_log) {
>                  frame_log.dump(frame.buffer, frame.buffer_size);
>              }
> -            stream.send<FrameMessage>(frame.buffer, frame.buffer_size);
> +            channel.send<FrameMessage>(frame.buffer, frame.buffer_size);
>  
>              //usleep(1);
> -            if (stream.read_command(false) < 0) {
> +            if (channel.read_command(false) < 0) {
>                  syslog(LOG_ERR, "FAILED to read command\n");
>                  return;
>              }
> @@ -638,7 +638,7 @@ int main(int argc, char* argv[])
>          // register built-in plugins
>          MjpegPlugin::Register(&agent);
>          agent.LoadPlugins(PLUGINSDIR);
> -        Stream stream(streamport);
> +        IOChannel stream(streamport);
>          X11CursorThread cursor_thread(stream);
>          FrameLog frame_log(log_filename, log_binary);
>          agent.CaptureLoop(stream, frame_log);

Beside both "Stream" and "IOChannel" are too generic for what this
class is doing the class was inserted in this series, you should
squash this patch into the patch that introduced this class.

Frediano


More information about the Spice-devel mailing list