]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/mmap.h
Apply patch from Sami Liedes <sliedes@cc.hut.fi> to avoid unecessary
[apt.git] / apt-pkg / contrib / mmap.h
index 6285620c90fc5f78247c8efffe7f5fa10633e937..bde62217d8b3b311f714a51ba43e3d124c4e50bd 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: mmap.h,v 1.11 1999/08/02 03:07:47 jgg Exp $
+// $Id: mmap.h,v 1.12 2001/05/14 05:16:43 jgg Exp $
 /* ######################################################################
    
    MMap Class - Provides 'real' mmap or a faked mmap using read().
 /* ######################################################################
    
    MMap Class - Provides 'real' mmap or a faked mmap using read().
 #ifndef PKGLIB_MMAP_H
 #define PKGLIB_MMAP_H
 
 #ifndef PKGLIB_MMAP_H
 #define PKGLIB_MMAP_H
 
-#ifdef __GNUG__
-#pragma interface "apt-pkg/mmap.h"
-#endif
 
 #include <string>
 #include <apt-pkg/fileutl.h>
 
 
 #include <string>
 #include <apt-pkg/fileutl.h>
 
+using std::string;
+
 /* This should be a 32 bit type, larger tyes use too much ram and smaller
    types are too small. Where ever possible 'unsigned long' should be used
    instead of this internal type */
 /* This should be a 32 bit type, larger tyes use too much ram and smaller
    types are too small. Where ever possible 'unsigned long' should be used
    instead of this internal type */
@@ -85,6 +84,8 @@ class DynamicMMap : public MMap
    unsigned long WorkSpace;
    Pool *Pools;
    unsigned int PoolCount;
    unsigned long WorkSpace;
    Pool *Pools;
    unsigned int PoolCount;
+
+   bool Grow();
    
    public:
 
    
    public:
 
@@ -92,7 +93,7 @@ class DynamicMMap : public MMap
    unsigned long RawAllocate(unsigned long Size,unsigned long Aln = 0);
    unsigned long Allocate(unsigned long ItemSize);
    unsigned long WriteString(const char *String,unsigned long Len = (unsigned long)-1);
    unsigned long RawAllocate(unsigned long Size,unsigned long Aln = 0);
    unsigned long Allocate(unsigned long ItemSize);
    unsigned long WriteString(const char *String,unsigned long Len = (unsigned long)-1);
-   inline unsigned long WriteString(string S) {return WriteString(S.begin(),S.size());};
+   inline unsigned long WriteString(const string &S) {return WriteString(S.c_str(),S.length());};
    void UsePools(Pool &P,unsigned int Count) {Pools = &P; PoolCount = Count;};
    
    DynamicMMap(FileFd &F,unsigned long Flags,unsigned long WorkSpace = 2*1024*1024);
    void UsePools(Pool &P,unsigned int Count) {Pools = &P; PoolCount = Count;};
    
    DynamicMMap(FileFd &F,unsigned long Flags,unsigned long WorkSpace = 2*1024*1024);