MagickCore 7.0.10
blob.c File Reference
#include "wizard/studio.h"
#include "wizard/blob.h"
#include "wizard/blob-private.h"
#include "wizard/cipher.h"
#include "wizard/exception.h"
#include "wizard/exception-private.h"
#include "wizard/memory_.h"
#include "wizard/semaphore.h"
#include "wizard/nt-base.h"
#include "wizard/string-private.h"
#include "wizard/utility.h"
#include "wizard/utility-private.h"
#include "bzlib.h"
#include "zlib.h"
Include dependency graph for blob.c:

Go to the source code of this file.

Data Structures

union  BlobFileInfo
 
struct  _BlobInfo
 

Macros

#define WizardMaxBlobExtent   (8*8192)
 
#define MAP_FAILED   ((void *) -1)
 

Typedefs

typedef union BlobFileInfo BlobFileInfo
 

Enumerations

enum  StreamType {
  UndefinedStream , StandardStream , FileStream , PipeStream ,
  ZipStream , BZipStream , BlobStream
}
 

Functions

static unsigned char * DetachBlob (BlobInfo *)
 
static void AttachBlob (BlobInfo *blob_info, const void *blob, const size_t length)
 
static void ThrowBlobException (BlobInfo *blob_info)
 
WizardExport WizardBooleanType CloseBlob (BlobInfo *blob_info)
 
WizardExport BlobInfoDestroyBlob (BlobInfo *blob_info)
 
WizardExport int EOFBlob (BlobInfo *blob_info)
 
WizardExport void * FileToBlob (const char *filename, const size_t extent, size_t *length, ExceptionInfo *exception)
 
WizardExport const char * GetBlobFilename (const BlobInfo *blob_info)
 
WizardExport void GetBlobInfo (BlobInfo *blob_info)
 
static WizardBooleanType GetPathAttributes (const char *path, void *attributes)
 
WizardExport WizardSizeType GetBlobSize (BlobInfo *blob_info)
 
WizardExport const struct stat * GetBlobProperties (const BlobInfo *blob_info)
 
WizardExport void * MapBlob (int file, const MapMode mode, const WizardOffsetType offset, const size_t length)
 
WizardExport BlobInfoOpenBlob (const char *filename, const BlobMode mode, const WizardBooleanType compress, ExceptionInfo *exception)
 
WizardExport ssize_t ReadBlob (BlobInfo *blob_info, const size_t length, void *data)
 
static const void * ReadBlobStream (BlobInfo *blob_info, const size_t length, void *data, ssize_t *count)
 
WizardExport int ReadBlobByte (BlobInfo *blob_info)
 
WizardExport ssize_t ReadBlobChunk (BlobInfo *blob_info, const size_t length, void *data)
 
WizardExport WizardBooleanType SetBlobExtent (BlobInfo *blob_info, const WizardSizeType extent)
 
WizardExport int SyncBlob (BlobInfo *blob_info)
 
WizardExport WizardOffsetType TellBlob (const BlobInfo *blob_info)
 
WizardExport WizardBooleanType UnmapBlob (void *map, const size_t length)
 
WizardExport ssize_t WriteBlob (BlobInfo *blob_info, const size_t length, const void *data)
 
static ssize_t WriteBlobStream (BlobInfo *blob_info, const size_t length, const void *data)
 
WizardExport ssize_t WriteBlobByte (BlobInfo *blob_info, const unsigned char value)
 
WizardExport ssize_t WriteBlobChunk (BlobInfo *blob_info, const size_t length, const void *data)
 
WizardExport ssize_t WriteBlobString (BlobInfo *blob_info, const char *string)
 

Macro Definition Documentation

◆ MAP_FAILED

#define MAP_FAILED   ((void *) -1)

Definition at line 67 of file blob.c.

◆ WizardMaxBlobExtent

#define WizardMaxBlobExtent   (8*8192)

Definition at line 62 of file blob.c.

Typedef Documentation

◆ BlobFileInfo

typedef union BlobFileInfo BlobFileInfo

Enumeration Type Documentation

◆ StreamType

enum StreamType
Enumerator
UndefinedStream 
StandardStream 
FileStream 
PipeStream 
ZipStream 
BZipStream 
BlobStream 

Definition at line 73 of file blob.c.

Function Documentation

◆ AttachBlob()

static void AttachBlob ( BlobInfo blob_info,
const void *  blob,
const size_t  length 
)
static

◆ CloseBlob()

◆ DestroyBlob()

◆ DetachBlob()

◆ EOFBlob()

◆ FileToBlob()

◆ GetBlobFilename()

WizardExport const char * GetBlobFilename ( const BlobInfo blob_info)

◆ GetBlobInfo()

◆ GetBlobProperties()

WizardExport const struct stat * GetBlobProperties ( const BlobInfo blob_info)

◆ GetBlobSize()

◆ GetPathAttributes()

static WizardBooleanType GetPathAttributes ( const char *  path,
void *  attributes 
)
static

Definition at line 784 of file blob.c.

References stat_utf8(), WizardFalse, and WizardTrue.

Referenced by GetBlobSize().

◆ MapBlob()

WizardExport void * MapBlob ( int  file,
const MapMode  mode,
const WizardOffsetType  offset,
const size_t  length 
)

◆ OpenBlob()

◆ ReadBlob()

◆ ReadBlobByte()

WizardExport int ReadBlobByte ( BlobInfo blob_info)

Definition at line 1484 of file blob.c.

References ReadBlobStream(), _BlobInfo::signature, and WizardSignature.

◆ ReadBlobChunk()

WizardExport ssize_t ReadBlobChunk ( BlobInfo blob_info,
const size_t  length,
void *  data 
)

◆ ReadBlobStream()

static const void * ReadBlobStream ( BlobInfo blob_info,
const size_t  length,
void *  data,
ssize_t *  count 
)
inlinestatic

◆ SetBlobExtent()

◆ SyncBlob()

◆ TellBlob()

◆ ThrowBlobException()

static void ThrowBlobException ( BlobInfo blob_info)
inlinestatic

Definition at line 229 of file blob.c.

References _BlobInfo::error_number, and _BlobInfo::status.

Referenced by CloseBlob().

◆ UnmapBlob()

WizardExport WizardBooleanType UnmapBlob ( void *  map,
const size_t  length 
)

◆ WriteBlob()

◆ WriteBlobByte()

WizardExport ssize_t WriteBlobByte ( BlobInfo blob_info,
const unsigned char  value 
)

Definition at line 2091 of file blob.c.

References _BlobInfo::signature, WizardSignature, and WriteBlobStream().

◆ WriteBlobChunk()

WizardExport ssize_t WriteBlobChunk ( BlobInfo blob_info,
const size_t  length,
const void *  data 
)

◆ WriteBlobStream()

static ssize_t WriteBlobStream ( BlobInfo blob_info,
const size_t  length,
const void *  data 
)
inlinestatic

◆ WriteBlobString()

WizardExport ssize_t WriteBlobString ( BlobInfo blob_info,
const char *  string 
)

Definition at line 2183 of file blob.c.

References _BlobInfo::signature, WizardSignature, and WriteBlobStream().