Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

Pod.cpp File Reference

Implements Pod filesystem API functions. More...

#include <stdarg.h>
#include <string.h>
#include "../Include/Pod.h"
#include "../Include/Utility.h"
#include "../Include/Globals.h"
#include "../Include/Endian.h"

Go to the source code of this file.

Functions

static void strupper (char *s)
static unsigned int freadBigUnsignedInt (FILE *f)
static unsigned int freadLittleUnsignedInt (FILE *f)
static void plog (PFS *pPfs, const char *fmt,...)
 Generate pod filesystem debugging log.
void pinit (PFS *pPfs, const char *root, bool searchPodFilesFirst)
 Initialize pod filesystem.
void pshutdown (PFS *pPfs)
 Shut down pod filesystem.
static bool paddpodfile (PFS *pPfs, PFSPODFILE *p)
static void padddiskfile (PFS *pPfs, string filename)
static void pmountepd (PFS *pPfs, PFSPOD *pPod)
 Mount an EPD format pod into the specified pod filesystem.
static void pmountpod2 (PFS *pPfs, PFSPOD *pPod)
static void pmountpod3 (PFS *pPfs, PFSPOD *pPod)
static PFSPODpmount (PFS *pPfs, const char *podname)
void paddpod (PFS *pPfs, const char *filename)
void premovepod (PFS *pPfs, const char *filename)
void paddpodfolder (PFS *pPfs, const char *folder)
void padddiskfolder (PFS *pPfs, const char *folder)
static PODFILEfindinpod (PFS *pPfs, const char *filename)
static PODFILEfindondisk (PFS *pPfs, const char *filename)
static bool existsinpod (PFS *pPfs, const char *filename)
static bool existsondisk (PFS *pPfs, const char *filename)
bool pexists (PFS *pPfs, const char *filename)
PODFILEpopen (PFS *pPfs, const char *fname)
size_t pread (void *buffer, size_t size, size_t count, PODFILE *f)
int peof (PODFILE *f)
int perror (PODFILE *f)
int pgetc (PODFILE *f)
char * pgets (char *s, int n, PODFILE *f)
int pseek (PODFILE *f, long offset, int origin)
long ptell (PODFILE *f)
void prewind (PODFILE *f)
void pclose (PODFILE *f)
void pfsdump (PFS *pfs, FILE *f)


Detailed Description

Definition in file Pod.cpp.


Function Documentation

static bool existsinpod PFS pPfs,
const char *  filename
[static]
 

Definition at line 607 of file Pod.cpp.

References PFS::podFileList.

Referenced by pexists().

static bool existsondisk PFS pPfs,
const char *  filename
[static]
 

Definition at line 624 of file Pod.cpp.

References PFS::diskFileList.

Referenced by pexists().

static PODFILE* findinpod PFS pPfs,
const char *  filename
[static]
 

Definition at line 525 of file Pod.cpp.

References PFSPOD::file, PODFILE::filename, PFSPODFILE::offset, PODFILE::offset, PATH_MAX, PODFILE::pFile, plog(), PFSPODFILE::pod, PODFILE_SOURCE_POD, PFS::podFileList, PODFILE::pos, PODFILE::pPod, PFSPODFILE::priority, PFSPOD::refs, PFSPODFILE::size, PODFILE::size, PODFILE::source, and strupper().

Referenced by popen().

static PODFILE* findondisk PFS pPfs,
const char *  filename
[static]
 

Definition at line 573 of file Pod.cpp.

References PFS::diskFileList, PODFILE::filename, PODFILE::offset, PODFILE::pFile, PODFILE_SOURCE_DISK, PODFILE::pos, PFS::root, PODFILE::size, and PODFILE::source.

Referenced by popen().

static unsigned int freadBigUnsignedInt FILE *  f  )  [static]
 

Definition at line 54 of file Pod.cpp.

References BigEndian().

Referenced by pmount(), and pmountepd().

static unsigned int freadLittleUnsignedInt FILE *  f  )  [static]
 

Definition at line 61 of file Pod.cpp.

References LittleEndian().

Referenced by pmountepd(), pmountpod2(), and pmountpod3().

static void padddiskfile PFS pPfs,
string  filename
[static]
 

Definition at line 175 of file Pod.cpp.

References PFS::diskFileList.

Referenced by padddiskfolder().

void padddiskfolder PFS pPfs,
const char *  folder
 

Definition at line 478 of file Pod.cpp.

References padddiskfile(), padddiskfolder(), plog(), PFS::root, and strupper().

Referenced by main(), and padddiskfolder().

void paddpod PFS pPfs,
const char *  filename
 

Definition at line 390 of file Pod.cpp.

References PATH_MAX, plog(), pmount(), PFS::podList, and PFS::root.

Referenced by CScenerySet::Load().

static bool paddpodfile PFS pPfs,
PFSPODFILE p
[static]
 

Definition at line 162 of file Pod.cpp.

References PFSPODFILE::name, and PFS::podFileList.

Referenced by pmountepd(), pmountpod2(), and pmountpod3().

void paddpodfolder PFS pPfs,
const char *  folder
 

Todo:
Why not use paddpod?

Definition at line 427 of file Pod.cpp.

References PATH_MAX, plog(), pmount(), PFS::podList, and PFS::root.

Referenced by main().

void pclose PODFILE f  ) 
 

Definition at line 868 of file Pod.cpp.

References PODFILE::pFile, PODFILE_SOURCE_DISK, PODFILE_SOURCE_POD, PODFILE::pPod, PFSPOD::refs, PODFILE::source, and WARNINGLOG.

Referenced by CWaterMaskDatabase::AddGlobeTile(), CBitmapPBG::CBitmapPBG(), CBitmapPBM::CBitmapPBM(), CDefaultTextureDatabase::CDefaultTextureDatabase(), CFuiManager::CFuiManager(), CFuiTheme::CFuiTheme(), CImageTIFF::CImageTIFF(), CloseStream(), CMaskImage::CMaskImage(), CModelACM::CModelACM(), CModelBIN::CModelBIN(), CModelSMF::CModelSMF(), CRawImage::CRawImage(), CAudioManager::CreateSfx(), CDatabaseIndex::Load(), CDatabaseTemplate::Load(), CCursor::Load(), CElevationBlockBT::Load(), CQTRFile::Load(), CRawImage::Load(), CStarImages::LoadBSCDatabase(), CStarImages::LoadConstellations(), CBitmappedFont::LoadRaw(), CDatabase::Unmount(), and CTerrainTypeDatabase::~CTerrainTypeDatabase().

int peof PODFILE f  ) 
 

Definition at line 748 of file Pod.cpp.

References PODFILE::offset, PODFILE::pFile, PODFILE_SOURCE_DISK, PODFILE_SOURCE_POD, PODFILE::pos, PODFILE::size, and PODFILE::source.

Referenced by CFuiManager::CFuiManager(), CFuiTheme::CFuiTheme(), CStarImages::LoadBSCDatabase(), CStarImages::LoadConstellations(), and CStarImages::LoadFlyDatabase().

int perror PODFILE f  ) 
 

Definition at line 768 of file Pod.cpp.

References PODFILE::pFile, PODFILE_SOURCE_DISK, PODFILE_SOURCE_POD, and PODFILE::source.

bool pexists PFS pPfs,
const char *  filename
 

Definition at line 635 of file Pod.cpp.

References existsinpod(), existsondisk(), and PFS::searchPodFilesFirst.

Referenced by CDefaultTextureDatabase::GetBaseTexture(), CTileElevationDatabase::LoadBT(), and CTileElevationDatabase::LoadQTR().

void pfsdump PFS pfs,
FILE *  f
 

Definition at line 900 of file Pod.cpp.

References PFS::diskFileList, PFSPOD::format, gtfo, PFSPOD::name, PFSPODFILE::name, PFSPODFILE::pod, PFS::podFileList, PFS::podList, PFSPODFILE::priority, PFS::root, and PFS::searchPodFilesFirst.

Referenced by debug_dump_system_pfs_cb().

int pgetc PODFILE f  ) 
 

Definition at line 785 of file Pod.cpp.

References PODFILE::pFile, PODFILE_SOURCE_DISK, PODFILE_SOURCE_POD, PODFILE::pos, and PODFILE::source.

char* pgets char *  s,
int  n,
PODFILE f
 

Definition at line 808 of file Pod.cpp.

References PODFILE::pFile, PODFILE_SOURCE_DISK, PODFILE_SOURCE_POD, PODFILE::pos, and PODFILE::source.

Referenced by CFuiManager::CFuiManager(), CFuiTheme::CFuiTheme(), CModelACM::CModelACM(), CModelSMF::CModelSMF(), CDatabaseTemplate::Load(), CStarImages::LoadBSCDatabase(), CStarImages::LoadConstellations(), CStarImages::LoadFlyDatabase(), and sgets().

void pinit PFS pPfs,
const char *  root,
bool  searchPodFilesFirst
 

Parameters:
pPfs Pointer to PFS pod filesystem struct
root Character string containing complete pathname of PFS root folder
searchPodFilesFirst If true, then calls to popen() and pexists() will check PODs for the existence fo the file before checking disk files. If false, then the disk is searched first.

Definition at line 109 of file Pod.cpp.

References GetIniVar(), PFS::log, plog(), PFS::root, and PFS::searchPodFilesFirst.

Referenced by main().

static void plog PFS pPfs,
const char *  fmt,
  ...
[static]
 

Parameters:
fmt... Variable arguments specifying log message

Definition at line 73 of file Pod.cpp.

References PFS::log, and CLogFile::Write().

Referenced by findinpod(), padddiskfolder(), paddpod(), paddpodfolder(), pinit(), popen(), premovepod(), and pshutdown().

static PFSPOD* pmount PFS pPfs,
const char *  podname
[static]
 

Definition at line 348 of file Pod.cpp.

References PFSPOD::file, PFSPOD::format, freadBigUnsignedInt(), PFSPOD::name, pmountepd(), pmountpod2(), pmountpod3(), PodFormatEpd, PodFormatPod2, PodFormatPod3, PodFormatUnknown, PodSignatureEpd, PodSignaturePod2, PodSignaturePod3, PFSPOD::refs, and WARNINGLOG.

Referenced by paddpod(), and paddpodfolder().

static void pmountepd PFS pPfs,
PFSPOD pPod
[static]
 

Parameters:
pPod Pointer to the EPD pod details

Definition at line 185 of file Pod.cpp.

References PFSPODFILE::checksum, PFSPOD::checksum, EPD_FILENAME_LENGTH, EPD_VOLUME_LENGTH, PFSPOD::file, freadBigUnsignedInt(), freadLittleUnsignedInt(), PFSPODFILE::name, PFSPODFILE::offset, paddpodfile(), PFSPODFILE::pod, PFSPODFILE::priority, PFSPODFILE::size, and PFSPODFILE::timestamp.

Referenced by pmount().

static void pmountpod2 PFS pPfs,
PFSPOD pPod
[static]
 

Todo:
Optimize by reading entire string table into memory

Read audit trail

Definition at line 223 of file Pod.cpp.

References PFSPODFILE::checksum, PFSPOD::checksum, PFSPOD::file, freadLittleUnsignedInt(), PFSPODFILE::name, PFSPOD::nAuditEntries, PFSPODFILE::offset, paddpodfile(), PFSPODFILE::pod, POD_FILENAME_LENGTH, POD_VOLUME_LENGTH, PFSPODFILE::priority, PFSPOD::priority, PFSPOD::revision, PFSPODFILE::size, and PFSPODFILE::timestamp.

Referenced by pmount().

static void pmountpod3 PFS pPfs,
PFSPOD pPod
[static]
 

Definition at line 282 of file Pod.cpp.

References PFSPODFILE::checksum, PFSPOD::checksum, PFSPOD::file, freadLittleUnsignedInt(), PFSPODFILE::name, PFSPOD::nAuditEntries, PFSPODFILE::offset, paddpodfile(), PFSPODFILE::pod, POD_AUTHOR_LENGTH, POD_COPYRIGHT_LENGTH, POD_FILENAME_LENGTH, POD_VOLUME_LENGTH, PFSPODFILE::priority, PFSPOD::priority, PFSPOD::revision, PFSPODFILE::size, and PFSPODFILE::timestamp.

Referenced by pmount().

PODFILE* popen PFS pPfs,
const char *  fname
 

Definition at line 659 of file Pod.cpp.

References findinpod(), findondisk(), gtfo, PATH_MAX, plog(), PFS::searchPodFilesFirst, and strupper().

Referenced by CWaterMaskDatabase::AddGlobeTile(), CBitmapPBG::CBitmapPBG(), CBitmapPBM::CBitmapPBM(), CDefaultTextureDatabase::CDefaultTextureDatabase(), CFuiManager::CFuiManager(), CFuiTheme::CFuiTheme(), CImageTIFF::CImageTIFF(), CMaskImage::CMaskImage(), CModelACM::CModelACM(), CModelBIN::CModelBIN(), CModelSMF::CModelSMF(), CRawImage::CRawImage(), CAudioManager::CreateSfx(), CTerrainTypeDatabase::CTerrainTypeDatabase(), CDatabaseIndex::Load(), CDatabaseTemplate::Load(), CCursor::Load(), CElevationBlockBT::Load(), CQTRFile::Load(), CRawImage::Load(), CStarImages::LoadBSCDatabase(), CStarImages::LoadConstellations(), CStarImages::LoadFlyDatabase(), CBitmappedFont::LoadRaw(), CDatabase::Mount(), and OpenStream().

size_t pread void *  buffer,
size_t  size,
size_t  count,
PODFILE f
 

Definition at line 725 of file Pod.cpp.

References PODFILE::pFile, PODFILE_SOURCE_DISK, PODFILE_SOURCE_POD, PODFILE::pos, and PODFILE::source.

Referenced by CWaterMaskDatabase::AddGlobeTile(), CDefaultTextureDatabase::CDefaultTextureDatabase(), CImageTIFF::CImageTIFF(), CMaskImage::CMaskImage(), CModelBIN::CModelBIN(), CAudioManager::CreateSfx(), CDatabase::GetRawRecord(), CTerrainTypeDatabase::GetTerrainType(), CDatabaseIndex::Load(), CCursor::Load(), CElevationBlockBT::Load(), CBitmapPBM::Load(), CBitmapPBG::Load(), CQTRFile::Load(), CRawImage::Load(), CBitmappedFont::LoadRaw(), ReadDouble(), ReadFloat(), ReadLong(), ReadUChar(), ReadULong(), ReadUShort(), tifRead16(), and tifRead32().

void premovepod PFS pPfs,
const char *  filename
 

Definition at line 404 of file Pod.cpp.

References PFSPOD::file, plog(), and PFS::podList.

Referenced by CScenerySet::Unload().

void prewind PODFILE f  ) 
 

Definition at line 850 of file Pod.cpp.

References PODFILE::offset, PODFILE::pFile, PODFILE_SOURCE_DISK, PODFILE_SOURCE_POD, PODFILE::pos, and PODFILE::source.

Referenced by CDatabaseTemplate::Load(), and CBitmapPBG::Load().

int pseek PODFILE f,
long  offset,
int  origin
 

Definition at line 831 of file Pod.cpp.

References PODFILE::offset, PODFILE::pFile, and PODFILE::pos.

Referenced by CImageTIFF::CImageTIFF(), CDatabase::GetRawRecord(), and CTerrainTypeDatabase::GetTerrainType().

void pshutdown PFS pPfs  ) 
 

Parameters:
pPfs Pointer to PFS filesystem struct

Definition at line 137 of file Pod.cpp.

References PFSPOD::file, PFS::log, plog(), PFS::podFileList, and PFS::podList.

Referenced by CleanupGlobals().

long ptell PODFILE f  ) 
 

Definition at line 843 of file Pod.cpp.

References PODFILE::offset, and PODFILE::pos.

Referenced by CImageTIFF::CImageTIFF().

static void strupper char *  s  )  [static]
 

Definition at line 46 of file Pod.cpp.

Referenced by findinpod(), padddiskfolder(), and popen().

SourceForge.net Logo Documentation generated by doxygen