📄 pgpfileio.c
字号:
/*____________________________________________________________________________
Copyright (C) 2002 PGP Corporation
All rights reserved.
$Id: pgpFileIO.c,v 1.4 2002/08/06 20:10:34 dallen Exp $
____________________________________________________________________________*/
/*
* pgpFileIO.c -- Abstract base class for all PGPFileIO objects.
*/
#include "pgpPFLConfig.h"
#include "pgpPFLPriv.h"
#include "pgpPFLErrors.h"
#include "pgpFileIOPriv.h"
#include "pgpMem.h"
#define GetParentVTBL() pgpIOGetClassVTBL()
#define GetSelfVTBL( ref ) \
(PGPFileIOVtbl const *)pgpioGetObjectVTBL( ref )
PGPBoolean
PGPFileIOIsValid( PGPFileIORef ref )
{
if ( ! PGPIOIsValid( (PGPIORef)ref ) )
return( FALSE );
return( ref->fileIOMagic == kPGPFileIOMagic );
}
static PGPError
sFileIOInitProc(
PGPIORef inRef,
void * data )
{
PGPError err = kPGPError_NoErr;
PGPFileIORef self = (PGPFileIORef)inRef;
PGPValidateIO( inRef );
err = pgpioInheritInit( inRef, GetParentVTBL(), data );
self->fileIOMagic = kPGPFileIOMagic;
self->autoClose = TRUE;
return( err );
}
static PGPError
sFileIODestroyProc( PGPIORef inRef )
{
PGPError err = kPGPError_NoErr;
PGPFileIORef self = (PGPFileIORef)inRef;
PGPValidateFileIO( self );
self->fileIOMagic = 0;
err = pgpioInheritDestroy( inRef, GetParentVTBL() );
return( err );
}
PGPFileIOVtbl const *
pgpFileIOGetClassVTBL()
{
static PGPFileIOVtbl sVTBL = { {NULL,} };
PGPFileIOVtbl * vtbl = &sVTBL;
if ( IsNull( vtbl->parentVTBL.initProc ) )
{
PGPIOVtbl * parent = &vtbl->parentVTBL;
/* get default routines */
*parent = *pgpIOGetClassVTBL();
parent->initProc = sFileIOInitProc;
parent->destroyProc = sFileIODestroyProc;
}
return( vtbl );
}
/*__Editor_settings____
Local Variables:
tab-width: 4
End:
vi: ts=4 sw=4
vim: si
_____________________*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -