ソースを参照

FileFdPrivate: Extract SimpleBuffer and mark it as hidden

Gbp-Dch: ignore
Julian Andres Klode 10 年 前
コミット
38dba8cd72
共有1 個のファイルを変更した24 個の追加21 個の削除を含む
  1. 24 21
      apt-pkg/contrib/fileutl.cc

+ 24 - 21
apt-pkg/contrib/fileutl.cc

@@ -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 {							/*{{{*/
 class APT_HIDDEN FileFdPrivate {							/*{{{*/
 protected:
 protected:
    FileFd * const filefd;
    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:
 public:
    int compressed_fd;
    int compressed_fd;
    pid_t compressor_pid;
    pid_t compressor_pid;