[Spice-devel] [PATCH spice-streaming-agent v2 5/9] Unify the structure of write_all() and read_all()

Lukáš Hrázký lhrazky at redhat.com
Wed May 16 16:26:03 UTC 2018


Both versions are fine, unify for consistency. Use the optically less
verbose version.

Signed-off-by: Lukáš Hrázký <lhrazky at redhat.com>
---
 src/stream-port.cpp | 20 +++++++++++---------
 src/stream-port.hpp |  4 ++--
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/src/stream-port.cpp b/src/stream-port.cpp
index 526c564..cee63ac 100644
--- a/src/stream-port.cpp
+++ b/src/stream-port.cpp
@@ -17,10 +17,10 @@
 namespace spice {
 namespace streaming_agent {
 
-void read_all(int fd, void *msg, size_t len)
+void read_all(int fd, void *buf, size_t len)
 {
     while (len > 0) {
-        ssize_t n = read(fd, msg, len);
+        ssize_t n = read(fd, buf, len);
 
         if (n < 0) {
             if (errno == EINTR) {
@@ -30,22 +30,24 @@ void read_all(int fd, void *msg, size_t len)
         }
 
         len -= n;
-        msg = (uint8_t *) msg + n;
+        buf = (uint8_t *) buf + n;
     }
 }
 
-void write_all(int fd, const void *buf, const size_t len)
+void write_all(int fd, const void *buf, size_t len)
 {
-    size_t written = 0;
-    while (written < len) {
-        int l = write(fd, (const char *) buf + written, len - written);
-        if (l < 0) {
+    while (len > 0) {
+        ssize_t n = write(fd, buf, len);
+
+        if (n < 0) {
             if (errno == EINTR) {
                 continue;
             }
             throw WriteError("Writing message to device failed", errno);
         }
-        written += l;
+
+        len -= n;
+        buf = (uint8_t *) buf + n;
     }
 }
 
diff --git a/src/stream-port.hpp b/src/stream-port.hpp
index 7780a37..b2d8352 100644
--- a/src/stream-port.hpp
+++ b/src/stream-port.hpp
@@ -13,8 +13,8 @@
 namespace spice {
 namespace streaming_agent {
 
-void read_all(int fd, void *msg, size_t len);
-void write_all(int fd, const void *buf, const size_t len);
+void read_all(int fd, void *buf, size_t len);
+void write_all(int fd, const void *buf, size_t len);
 
 }} // namespace spice::streaming_agent
 
-- 
2.16.2



More information about the Spice-devel mailing list