]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/fileutl.cc
FileFdPrivate: Extract SimpleBuffer and mark it as hidden
[apt.git] / apt-pkg / contrib / fileutl.cc
index 99db66f03c50219a23e09da7981ae2cc586bec1a..b1f1c78a2215829ec4405907a5a59485aa5894e3 100644 (file)
@@ -919,30 +919,33 @@ bool ChangeOwnerAndPermissionOfFile(char const * const requester, char const * c
 }
                                                                        /*}}}*/
 
+struct APT_HIDDEN simple_buffer {                                                      /*{{{*/
+   static constexpr size_t buffersize_max = 4096;
+   unsigned long long bufferstart = 0;
+   unsigned long long bufferend = 0;
+   char buffer[buffersize_max];
+
+   char *get() { return buffer + bufferstart; }
+   bool empty() { return bufferend <= bufferstart; }
+   unsigned long long size() { return bufferend-bufferstart; }
+   void reset() { bufferend = bufferstart = 0; }
+   ssize_t read(void *to, unsigned long long requested_size) APT_MUSTCHECK
+   {
+      if (size() < requested_size)
+        requested_size = size();
+      memcpy(to, buffer + bufferstart, requested_size);
+      bufferstart += requested_size;
+      if (bufferstart == bufferend)
+        bufferstart = bufferend = 0;
+      return requested_size;
+   }
+};
+                                                                       /*}}}*/
+
 class APT_HIDDEN FileFdPrivate {                                                       /*{{{*/
 protected:
    FileFd * const filefd;
-   struct simple_buffer {
-         static constexpr size_t buffersize_max = 4096;
-        unsigned long long bufferstart = 0;
-        unsigned long long bufferend = 0;
-        char buffer[buffersize_max];
-
-        char *get() { return buffer + bufferstart; }
-        bool empty() { return bufferend <= bufferstart; }
-        unsigned long long size() { return bufferend-bufferstart; }
-        void reset() { bufferend = bufferstart = 0; }
-        ssize_t read(void *to, unsigned long long requested_size) APT_MUSTCHECK
-        {
-           if (size() < requested_size)
-              requested_size = size();
-           memcpy(to, buffer + bufferstart, requested_size);
-           bufferstart += requested_size;
-           if (bufferstart == bufferend)
-              bufferstart = bufferend = 0;
-           return requested_size;
-        }
-   } buffer;
+   simple_buffer buffer;
 public:
    int compressed_fd;
    pid_t compressor_pid;