cvolumeimp.h
来自「PGP8.0源码 请认真阅读您的文件包然后写出其具体功能」· C头文件 代码 · 共 120 行
H
120 行
/*____________________________________________________________________________
Copyright (C) 2002 PGP Corporation
All rights reserved.
$Id: CVolumeImp.h,v 1.5 2002/08/06 20:09:34 dallen Exp $
____________________________________________________________________________*/
#ifndef Included_CVolumeImp_h // [
#define Included_CVolumeImp_h
#include "CImp.h"
#include "CString.h"
#include "CVolume.h"
_PGP_BEGIN
// Class CVolumeImp
class CVolumeImp : public CImp
{
friend class CVolume;
protected:
enum VolumeState {kVolStateMounted, kVolStateUnmounted};
enum LockState {kLockStateNone, kLockStateIO, kLockStateFormat};
protected:
CVolumeImp() : mIsAttachedToVolume(FALSE),
mVolState(kVolStateUnmounted), mLockState(kLockStateNone)
{
Status() = mRoot.Status();
}
PGPBoolean IsMounted() const
{
return (mVolState == kVolStateMounted);
}
PGPBoolean IsUnmounted() const
{
return (mVolState == kVolStateUnmounted);
}
PGPBoolean IsAttachedToVolume() const
{
return mIsAttachedToVolume;
}
PGPBoolean IsLockedForIO() const
{
return (mLockState == kLockStateIO);
}
PGPBoolean IsLockedForFormat() const
{
return (mLockState == kLockStateFormat);
}
const char * Root() const
{
return mRoot;
}
virtual const char * DeviceName() const = 0;
PGPUInt32 BlockSize() const
{
return mBlockSize;
}
PGPUInt64 TotalBlocks() const
{
return mTotalBlocks;
}
PGPBoolean RootsEqual(const char *root) const
{
return mRoot.CompareNoCase(root);
}
virtual PGPBoolean HasOpenFiles() = 0;
virtual CComboError AttachVolume(const char *root,
const char *deviceName) = 0;
virtual void DetachVolume() = 0;
virtual CComboError Mount(const char *deviceName, const char *root,
PGPUInt64 totalBlocks, PGPUInt32 blockSize,
const void *ioHandlerFunc, void *refPtr, PGPBoolean readOnly) = 0;
virtual CComboError Unmount(PGPBoolean isForced) = 0
{
return CComboError();
}
virtual CComboError LockForIO() = 0;
virtual CComboError LockForFormat() = 0;
virtual CComboError UnlockVolume() = 0;
virtual CComboError Read(void *buf, PGPUInt64 pos,
PGPUInt32 nBlocks) const = 0;
virtual CComboError Write(const void *buf, PGPUInt64 pos,
PGPUInt32 nBlocks) = 0;
protected:
PGPBoolean mIsAttachedToVolume;
VolumeState mVolState;
LockState mLockState;
CString mRoot;
PGPUInt32 mBlockSize;
PGPUInt64 mTotalBlocks;
};
_PGP_END
#endif // ] Included_CVolumeImp_h
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?