// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: mmap.h,v 1.9 1999/04/18 06:36:36 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().
#ifndef PKGLIB_MMAP_H
#define PKGLIB_MMAP_H
-#ifdef __GNUG__
-#pragma interface "apt-pkg/mmap.h"
-#endif
#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 */
+typedef unsigned int map_ptrloc;
+
class MMap
{
protected:
// Allocation
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 = 0);
- inline unsigned long WriteString(string S) {return WriteString(S.begin(),S.size());};
- void UsePools(Pool &P,unsigned int Count) {Pools = &P; PoolCount = Count;};
+ unsigned long WriteString(const char *String,unsigned long Len = (unsigned long)-1);
+ 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);
DynamicMMap(unsigned long Flags,unsigned long WorkSpace = 2*1024*1024);