greenplumn CFileDescriptor 代码
文件路径:/src/backend/gporca/libgpos/include/gpos/io/CFileDescriptor.h
/---------------------------------------------------------------------------
/ Greenplum Database
/ Copyright (C) 2010 Greenplum, Inc.
/
/ @filename:
/ CFileDescriptor.h
/
/ @doc:
/ File descriptor abstraction
/---------------------------------------------------------------------------
#ifndef GPOS_CFileDescriptor_H
#define GPOS_CFileDescriptor_H
#include "gpos/types.h"
#define GPOS_FILE_NAME_BUF_SIZE (1024)
#define GPOS_FILE_DESCR_INVALID (-1)
namespace gpos
{
/---------------------------------------------------------------------------
/ @class:
/ CFileDescriptor
/
/ @doc:
/ File handler abstraction;
/
/---------------------------------------------------------------------------
class CFileDescriptor
{
private:
/ file descriptor
INT m_file_descriptor{GPOS_FILE_DESCR_INVALID};
protected:
/ ctor -- accessible through inheritance only
CFileDescriptor();
/ dtor -- accessible through inheritance only
virtual ~CFileDescriptor();
/ get file descriptor
INT
GetFileDescriptor() const
{
return m_file_descriptor;
}
/ open file
void OpenFile(const CHAR *file_path, ULONG mode, ULONG permission_bits);
/ close file
void CloseFile();
public:
CFileDescriptor(const CFileDescriptor &) = delete;
/ check if file is open
BOOL
IsFileOpen() const
{
return (GPOS_FILE_DESCR_INVALID != m_file_descriptor);
}
}; / class CFile
} / namespace gpos
#endif / !GPOS_CFile_H
/ EOF