[Spice-devel] [PATCH spice-streaming-agent v2 4/9] Introduce a short class to have RAII on the syslog

Frediano Ziglio fziglio at redhat.com
Wed Jun 27 14:21:19 UTC 2018


> 
> Signed-off-by: Lukáš Hrázký <lhrazky at redhat.com>
> ---
>  src/spice-streaming-agent.cpp | 20 +++++++++++++++++---
>  1 file changed, 17 insertions(+), 3 deletions(-)
> 
> diff --git a/src/spice-streaming-agent.cpp b/src/spice-streaming-agent.cpp
> index be133e4..b434180 100644
> --- a/src/spice-streaming-agent.cpp
> +++ b/src/spice-streaming-agent.cpp
> @@ -386,6 +386,22 @@ do_capture(StreamPort &stream_port, FrameLog &frame_log)
>      }
>  }
>  
> +class SyslogRAII
> +{
> +public:
> +    SyslogRAII()
> +    {
> +        openlog("spice-streaming-agent",
> +                isatty(fileno(stderr)) ? (LOG_PERROR|LOG_PID) : LOG_PID,
> LOG_USER);
> +    }
> +
> +    ~SyslogRAII()
> +    {
> +        closelog();
> +    }
> +};
> +
> +
>  int main(int argc, char* argv[])
>  {
>      const char *stream_port_name =
>      "/dev/virtio-ports/org.spice-space.stream.0";
> @@ -409,8 +425,7 @@ int main(int argc, char* argv[])
>      };
>      std::vector<std::string> old_args(argv, argv+argc);
>  
> -    openlog("spice-streaming-agent",
> -            isatty(fileno(stderr)) ? (LOG_PERROR|LOG_PID) : LOG_PID,
> LOG_USER);
> +    SyslogRAII syslog_raii;
>  
>      setlogmask(LOG_UPTO(LOG_WARNING));
>  
> @@ -501,6 +516,5 @@ int main(int argc, char* argv[])
>          ret = EXIT_FAILURE;
>      }
>  
> -    closelog();
>      return ret;
>  }

Honestly I don't see this change as that great.
Perhaps would just be easier to remove closelog call as is not mandatory.
Is not greatly encapsulated, calling ::syslog is always possible, before or
after the object is created.
I don't like mush a class name containing RAII is like saying that RAII
is not much the default and we need to specify it.

Frediano


More information about the Spice-devel mailing list