Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

UncompressContainerBlock Class Reference

#include <UnCompCont.hpp>

List of all members.

Public Methods

void * operator new (size_t size)
void operator delete (void *ptr)
void Load (SmallBlockUncompressor *uncompressor)
void AllocateContMem (unsigned long mincontsize)
void ReleaseContMem ()
void UncompressSmallContainers (SmallBlockUncompressor *uncompressor)
void UncompressLargeContainers (Input *input)
UncompressContainerGetContainer (unsigned idx)
UserUncompressor * GetUserUncompressor ()
char * GetUserDataPtr ()
void Init ()
void UncompressText (XMLOutput *output)
void FinishUncompress ()


Member Function Documentation

void UncompressContainerBlock::AllocateContMem unsigned long    mincontsize [inline]
 

Definition at line 84 of file UnCompCont.cpp.

00086 {
00087    for(unsigned i=0;i<contnum;i++)
00088       contarray[i].AllocateContMem(mincontsize);
00089 };

void UncompressContainerBlock::FinishUncompress   [inline]
 

Definition at line 183 of file UnCompCont.hpp.

Referenced by UncompressContainerMan::FinishUncompress().

00186    {
00187       if(pathexpr!=NULL)
00188          pathexpr->GetUserUncompressor()->FinishUncompress(GetContainer(0),GetUserDataPtr());
00189    }

UncompressContainer* UncompressContainerBlock::GetContainer unsigned    idx [inline]
 

Definition at line 156 of file UnCompCont.hpp.

00156 {  return contarray+idx;   }

char* UncompressContainerBlock::GetUserDataPtr   [inline]
 

Definition at line 163 of file UnCompCont.hpp.

00165    {
00166       return (char *)(contarray+contnum);
00167    }

UserUncompressor* UncompressContainerBlock::GetUserUncompressor   [inline]
 

Definition at line 158 of file UnCompCont.hpp.

00159    {
00160       return pathexpr->GetUserUncompressor();
00161    }

void UncompressContainerBlock::Init   [inline]
 

Definition at line 169 of file UnCompCont.hpp.

00172    {
00173       if(pathexpr!=NULL)
00174          GetUserUncompressor()->InitUncompress(GetContainer(0),GetUserDataPtr());
00175    }

void UncompressContainerBlock::Load SmallBlockUncompressor   uncompressor [inline]
 

Definition at line 53 of file UnCompCont.cpp.

00056 {
00057    // Let's load the index of the path expression
00058    unsigned long pathidx=uncompressor->LoadUInt32();
00059    if(pathidx!=0)
00060       pathexpr=pathexprman.GetPathExpr(pathidx-1);
00061    else
00062       pathexpr=NULL;
00063 
00064    // Let's load the number of containers
00065    contnum=uncompressor->LoadUInt32();
00066 
00067    if((pathexpr!=NULL)&&(pathexpr->GetUserContNum()!=contnum))
00068    {
00069       Error("Corrupt compressed file !");
00070       Exit();
00071    }
00072 
00073    // Let's allocate some memory for the container structures
00074    // and the necessary state space
00075    contarray=(UncompressContainer *)blockmem.GetByteBlock(
00076       sizeof(UncompressContainer)*contnum+
00077       ((pathexpr!=NULL) ? pathexpr->GetUserDataSize() : 0));
00078    
00079    // let's load the size of each single container
00080    for(unsigned i=0;i<contnum;i++)
00081       contarray[i].SetSize(uncompressor->LoadUInt32());
00082 };

void UncompressContainerBlock::ReleaseContMem   [inline]
 

Definition at line 228 of file UnCompCont.cpp.

Referenced by UncompressContainerMan::ReleaseContMem().

00229 {
00230    for(unsigned long i=0;i<contnum;i++)
00231       contarray[i].ReleaseContMem();
00232 }

void UncompressContainerBlock::UncompressLargeContainers Input   input
 

Definition at line 177 of file UnCompCont.cpp.

00180 {
00181    for(unsigned long i=0;i<contnum;i++)
00182    {
00183       if(contarray[i].GetSize()>=SMALLCONT_THRESHOLD)
00184          contarray[i].UncompressLargeContainer(input);
00185    }
00186 }

void UncompressContainerBlock::UncompressSmallContainers SmallBlockUncompressor   uncompressor
 

Definition at line 164 of file UnCompCont.cpp.

00167 {
00168    unsigned long i;
00169 
00170    for(i=0;i<contnum;i++)
00171    {
00172       if(contarray[i].GetSize()<SMALLCONT_THRESHOLD)
00173          contarray[i].UncompressSmallContainer(uncompressor);
00174    }
00175 }

void UncompressContainerBlock::UncompressText XMLOutput   output [inline]
 

Definition at line 177 of file UnCompCont.hpp.

00179    {
00180       GetUserUncompressor()->UncompressItem(GetContainer(0),GetUserDataPtr(),output);
00181    }

void UncompressContainerBlock::operator delete void *    ptr [inline]
 

Definition at line 140 of file UnCompCont.hpp.

00140 {}

void* UncompressContainerBlock::operator new size_t    size [inline]
 

Definition at line 139 of file UnCompCont.hpp.

00139 {  return blockmem.GetByteBlock(size); }


The documentation for this class was generated from the following files:
Generated on Sat Oct 13 16:08:56 2001 for XMILL by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001