11 // each pageentry is indexed by the pointer of the object
12 typedef struct _pageentry
{
15 struct _pageentry
*next
;
20 pup_list
*tailfreelist
; //tail of freelist
22 pup_pageentry
*tailtable
; // tail of pagetable entries
23 int maxblk
; // the number of blocks that have been written out by now
29 pup_pagetable
*getNewPagetable(char *fName
);
31 class PUP_pagedDisk
: public PUP::er
{
33 pup_pagetable
*_pagetable
;
34 void *handle
; // handle of the object to be restored
35 PUP_pagedDisk(unsigned int type
,void *objhandle
,pup_pagetable
*pgtable
):PUP::er(type
),handle(objhandle
),_pagetable(pgtable
){
40 class PUP_toPagedDisk
: public PUP_pagedDisk
{
42 virtual void bytes(void *p
,size_t n
,size_t itemSize
,PUP::dataType t
);
47 pup_list
*tailblklist
;
49 PUP_toPagedDisk(void *objhandle
,pup_pagetable
*pgtable
):PUP_pagedDisk(IS_PACKING
,objhandle
,pgtable
){
61 class PUP_fromPagedDisk
: public PUP_pagedDisk
{
63 virtual void bytes(void *p
,size_t n
,size_t itemSize
,PUP::dataType
);
69 PUP_fromPagedDisk(void *objhandle
,pup_pagetable
*pgtable
):PUP_pagedDisk(IS_UNPACKING
,objhandle
,pgtable
){