Barracuda Application Server C/C++ Reference
Native APIs, integration guides, and platform interfaces
IoIntf.h File Reference
#include "GenPrimT.h"
#include "ThreadLib.h"
Include dependency graph for IoIntf.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  IoStat
 Resource information. More...
 
struct  IoIntf
 The IoIntf class specifies an abstract file API, implementations include ZipIo, DiskIo, and NetIo. More...
 
struct  DirIntf
 Directory handle for a directory opened with IoIntf_OpenDir. More...
 
struct  ResIntf
 Resource handle for a file opened with IoIntf_OpenRes. More...
 
#define IOINTF_OK   0
 Error codes (status) More...
 
#define IOINTF_EOF   1
 End of file from ResIntf_Read. More...
 
#define IOINTF_INVALIDNAME   -11
 Invalid name or name not accepted by IOINTF implementation. More...
 
#define IOINTF_NOTFOUND   -12
 Resource not found. More...
 
#define IOINTF_EXIST   -13
 Resource exists and cannot be overwritten. More...
 
#define IOINTF_ENOENT   -14
 Path (parent directory) not found. More...
 
#define IOINTF_NOACCESS   -15
 No access or resource locked by file system. More...
 
#define IOINTF_NOTEMPTY   -16
 A directory resource is not empty. More...
 
#define IOINTF_NOSPACE   -17
 No space left on device. More...
 
#define IOINTF_IOERROR   -18
 Some kind of IO error. More...
 
#define IOINTF_MEM   -19
 Memory allocation error when working with resource. More...
 
#define IOINTF_NOIMPLEMENTATION   -50
 Method not implemented. More...
 
#define IOINTF_BUFTOOSMALL   -51
 The provided buffer is too small. More...
 
#define IOINTF_NOZIPLIB   -100
 IoIntf_OpenRes cannot uncompress the file since no NO_ZLIB is defined. More...
 
#define IOINTF_NOTCOMPRESSED   -101
 IoIntf_OpenResGzip is not willing to compress the data. More...
 
#define IOINTF_ZIPERROR   -102
 Error in compressed data. More...
 
#define IOINTF_NOAESLIB   -200
 Encrypted ZIP file requires AES, but AES is not enabled in ZipIo.c. More...
 
#define IOINTF_AES_NO_SUPPORT   -201
 Unknown AES encryption or not an AES encrypted ZIP file. More...
 
#define IOINTF_NO_PASSWORD   -202
 File is AES encrypted, but password was not entered. More...
 
#define IOINTF_WRONG_PASSWORD   -203
 Wrong password for AES encrypted file. More...
 
#define IOINTF_AES_WRONG_AUTH   -204
 Password does not match password in the file being accessed in the ZIP file. More...
 
#define IOINTF_AES_COMPROMISED   -205
 The file being accessed in the ZIP file is changed from an AES encrypted file to a non-encrypted file. More...
 
#define OpenRes_READ   1
 Open resource read. More...
 
#define OpenRes_WRITE   2
 Open resource write. More...
 
#define OpenRes_APPEND   4
 Open resource and append. More...
 
#define IoIntf_constructorRW(o, property, closeDir, mkDir, rename, openDir, openRes, openResGzip, rm, rmDir, st)
 Initialize an I/O interface with caller-supplied callbacks. More...
 
#define IoIntf_constructorR(o, property, closeDir, openDir, openRes, openResGzip, st)
 Initialize an I/O interface with caller-supplied callbacks. More...
 
#define DirIntf_constructor(o, read, getName, st)
 Install directory handle callbacks; no allocation or return value. More...
 
#define ResIntf_constructor(o, read, write, seek, flush, close)
 Install resource handle callbacks; no allocation or return value. More...
 
typedef ResIntfPtr(* IoIntf_InflateGzip) (IoIntfPtr io, const char *name, int *status, const char **ecode)
 Open a destination that accepts gzip bytes and stores decompressed data. More...
 
typedef ResIntfPtr(* IoIntf_DeflateGzip) (ResIntfPtr resPtr, const char *name, ThreadMutex *m, BaFileSize *size, BaBool *isCompressed)
 Optionally compress an open resource or range into temporary gzip storage. More...
 
typedef int(* IoIntf_Property) (IoIntfPtr o, const char *name, void *a, void *b)
 Implementation-specific property operation. More...
 
typedef DirIntfPtr(* IoIntf_OpenDir) (IoIntfPtr o, const char *dirname, int *status, const char **ecode)
 Open a directory iterator before its first entry. More...
 
typedef int(* IoIntf_Stat) (IoIntfPtr o, const char *name, IoStat *st)
 Fetch metadata for a file or directory. More...
 
typedef ResIntfPtr(* IoIntf_OpenRes) (IoIntfPtr o, const char *name, U32 mode, int *status, const char **ecode)
 Open a file for reading or writing. More...
 
typedef int(* IoIntf_CloseDir) (IoIntfPtr o, DirIntfPtr *dirIntf)
 Consume and close a directory iterator. More...
 
typedef ResIntfPtr(* IoIntf_OpenResGzip) (IoIntfPtr o, const char *name, ThreadMutex *m, BaFileSize *size, int *status, const char **ecode)
 Open a gzip representation for reading when supported. More...
 
typedef int(* IoIntf_MkDir) (IoIntfPtr o, const char *name, const char **ecode)
 Create a directory. More...
 
typedef int(* IoIntf_Rename) (IoIntfPtr o, const char *from, const char *to, const char **ecode)
 Rename or move a resource within this filesystem. More...
 
typedef int(* IoIntf_Remove) (IoIntfPtr o, const char *name, const char **ecode)
 Remove a file. More...
 
typedef int(* IoIntf_RmDir) (IoIntfPtr o, const char *name, const char **ecode)
 Remove an empty directory. More...
 
typedef int(* IoIntf_SeekAndRead) (ResIntfPtr super, BaFileSize offset, void *buf, size_t maxSize, size_t *size)
 Perform a combined seek and read on a resource. More...
 
typedef void(* IoIntf_OnTerminate) (IoIntfPtr o, IoIntfPtr io)
 Notify a filesystem attachment of termination/replacement. More...
 
typedef struct IoIntf IoIntf
 The IoIntf class specifies an abstract file API, implementations include ZipIo, DiskIo, and NetIo. More...
 
typedef int(* DirIntf_Read) (DirIntfPtr o)
 Advance to the next directory entry, including the first after open. More...
 
typedef const char *(* DirIntf_GetName) (DirIntfPtr o)
 Access the current entry name after successful readFp. More...
 
typedef int(* DirIntf_Stat) (DirIntfPtr o, IoStat *st)
 Fetch metadata for the current entry after successful readFp. More...
 
typedef struct DirIntf DirIntf
 Directory handle for a directory opened with IoIntf_OpenDir. More...
 
typedef int(* ResIntf_Read) (ResIntfPtr o, void *buf, size_t maxSize, size_t *size)
 Read binary bytes at the current resource position. More...
 
typedef int(* ResIntf_Write) (ResIntfPtr o, const void *buf, size_t size)
 Write binary bytes at the current resource position. More...
 
typedef int(* ResIntf_Seek) (ResIntfPtr o, BaFileSize offset)
 Set the resource position relative to its beginning. More...
 
typedef int(* ResIntf_Flush) (ResIntfPtr o)
 Flush buffered writes through the implementation. More...
 
typedef int(* ResIntf_Close) (ResIntfPtr o)
 Close and consume a resource handle. More...
 
typedef struct ResIntf ResIntf
 Resource handle for a file opened with IoIntf_OpenRes. More...
 
BA_API int IoIntf_setPassword (IoIntfPtr o, const char *password, size_t passwordLen)
 wrapper for IoIntf_Property: 'pl'. More...
 
BA_API int IoIntf_setPasswordProp (IoIntfPtr o, BaBool passwordRequired, BaBool passwordBin)
 wrapper for IoIntf_Property: 'pp'. More...
 
BA_API char * IoIntf_getAbspath (IoIntfPtr o, const char *path)
 wrapper for IoIntf_Property: 'abs'. More...
 
BA_API int IoIntf_getType (IoIntfPtr o, const char **type, const char **platform)
 Query the implementation's type property. More...
 
BA_API int IoIntf_isEncrypted (IoIntfPtr o, const char *name, BaBool *isEncrypted)
 wrapper for IoIntf_Property: 'aes'. More...
 
BA_API void IoIntf_destructor (IoIntfPtr o)
 Invoke the implementation's "destructor" property. More...