tekstatfileposix.h

00001 /***************************************************************************
00002  *   Copyright (C) 2005 by Kevin McBride                                   *
00003  *   kevin@planetsaphire.com                                               *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU Library General Public License as       *
00007  *   published by the Free Software Foundation; either version 2 of the    *
00008  *   License, or (at your option) any later version.                       *
00009  *                                                                         *
00010  *   This program is distributed in the hope that it will be useful,       *
00011  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00012  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
00013  *   GNU General Public License for more details.                          *
00014  *                                                                         *
00015  *   You should have received a copy of the GNU Library General Public     *
00016  *   License along with this program; if not, write to the                 *
00017  *   Free Software Foundation, Inc.,                                       *
00018  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
00019  ***************************************************************************/
00020 
00021 #ifndef TEKSTATFILEPOSIX_H_803EE636_393C_11DA_91B3_000BDBC434D9
00022 #define TEKSTATFILEPOSIX_H_803EE636_393C_11DA_91B3_000BDBC434D9
00023 
00024 #ifndef     TEKLTI_H_C35A2A4C_D475_11D9_90BC_000BDBC434D9
00025 #error      This file must be included from <teklti.h>
00026 #endif      /* TEKLTI_H_C35A2A4C_D475_11D9_90BC_000BDBC434D9 */
00027 
00028 
00029 TEKUUIDIMPORT(UTekStatFilePOSIX)
00030 
00031 
00038 class TekStatFilePOSIX : public TekStatFile
00039 {
00040 public:
00041   TekStatFilePOSIX();
00042   ~TekStatFilePOSIX();
00043 
00044   virtual TEKERR put_Filename(const uchar_t * Filename) = 0;
00045   virtual TEKERR put_FILE(FILE * FileDescriptor) = 0;
00046   virtual TEKERR put_UserInfoToAccess(uuid_t * UUIDOfUserInfo) = 0;
00047 
00048   virtual TEKERR MakeTekFile(TekFileType TekType, TekFile ** RetVal) = 0;
00049 
00050   virtual TEKERR get_Dev(dev_t * Dev) = 0;
00051   virtual TEKERR get_DevNo(dev_t * DevNo) = 0;
00052   virtual TEKERR get_FileSerialNo(ino_t * SerialNo) = 0;
00053   virtual TEKERR get_Mode(mode_t * FileMode) = 0;
00054   virtual TEKERR get_ModeString(uchar_t ** FileModeString) = 0;
00055   virtual TEKERR put_Mode(mode_t NewFileMode) = 0;
00056   virtual TEKERR put_ModeString(const uchar_t * NewFileModeString) = 0;
00057   virtual TEKERR get_LinkCount(nlink_t * LinkCount) = 0;
00058   virtual TEKERR get_UID(uid_t * UID) = 0;
00059   virtual TEKERR put_UID(uid_t UID) = 0;
00060   virtual TEKERR get_GID(gid_t * GID) = 0;
00061   virtual TEKERR put_GID(gid_t GID) = 0;
00062   virtual TEKERR get_UIDString(uchar_t ** UIDString) = 0;
00063   virtual TEKERR put_UIDString(const uchar_t * UIDString) = 0;
00064   virtual TEKERR get_GIDString(uchar_t ** GIDString) = 0;
00065   virtual TEKERR put_GIDString(const uchar_t * GIDString) = 0;
00066   virtual TEKERR get_Size(unsigned long * FileSize) = 0;
00067   virtual TEKERR get_Size64(uint64_t * FileSize) = 0;
00068   virtual TEKERR get_BlockSize(blksize_t * FileBlockSize) = 0;
00069   virtual TEKERR get_BlockCount(blkcnt64_t * FileBlockCount) = 0;
00070   virtual TEKERR get_TimeOfLastAccessRaw(unsigned long ** RetVal) = 0;
00071   virtual TEKERR get_TimeOfLastModificationRaw(unsigned long ** RetVal) = 0;
00072   virtual TEKERR get_TimeOfLastStatChangeRaw(unsigned long ** RetVal) = 0;
00073   virtual TEKERR get_TimeOfLastAccess(uchar_t ** RetVal) = 0;
00074   virtual TEKERR get_TimeOfLastModification(uchar_t ** RetVal) = 0;
00075   virtual TEKERR get_TimeOfLastStatChange(uchar_t ** RetVal) = 0;
00076 };
00077 
00078 #endif /* TEKSTATFILEPOSIX_H_803EE636_393C_11DA_91B3_000BDBC434D9 */
00079 
SourceForge.net Logo  Technical Library Template Interface Project Page