]> granicus.if.org Git - imagemagick/blobdiff - MagickCore/blob.h
...
[imagemagick] / MagickCore / blob.h
index c1a05d9ee8414c5e8bae4642eee46c128faea0fd..61064f495da593d906ec18b8d3b89f4ac42dc6d2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2016 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.
 
   MagickCore Binary Large OBjects methods.
 */
-#ifndef _MAGICKCORE_BLOB_H
-#define _MAGICKCORE_BLOB_H
-
-#include "MagickCore/image.h"
-#include "MagickCore/stream.h"
+#ifndef MAGICKCORE_BLOB_H
+#define MAGICKCORE_BLOB_H
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
@@ -27,17 +24,6 @@ extern "C" {
 
 #define MagickMaxBufferExtent  81920
 
-typedef enum
-{
-  UndefinedBlobMode,
-  ReadBlobMode,
-  ReadBinaryBlobMode,
-  WriteBlobMode,
-  WriteBinaryBlobMode,
-  AppendBlobMode,
-  AppendBinaryBlobMode
-} BlobMode;
-
 typedef enum
 {
   ReadMode,
@@ -45,92 +31,72 @@ typedef enum
   IOMode
 } MapMode;
 
-typedef int
-  *(*BlobFifo)(const Image *,const void *,const size_t);
+typedef ssize_t
+  (*BlobHandler)(const unsigned char *,const size_t,const void *);
 
-extern MagickExport BlobInfo
-  *CloneBlobInfo(const BlobInfo *),
-  *ReferenceBlob(BlobInfo *);
+typedef size_t
+  (*BlobSeeker)(const MagickOffsetType offset,const int whence,const void *);
 
-extern MagickExport char
-  *ReadBlobString(Image *,char *);
+typedef MagickOffsetType
+  (*BlobTeller)(const void *);
 
-extern MagickExport const void
-  *ReadBlobStream(Image *,const size_t,void *,ssize_t *);
+typedef struct _CustomStreamInfo
+{
+  BlobHandler
+    reader,
+    writer;
+
+  BlobSeeker
+    seeker;
+
+  BlobTeller
+    teller;
+
+  void
+    *data;
+} CustomStreamInfo;
+
+#include "MagickCore/image.h"
+#include "MagickCore/stream.h"
 
-extern MagickExport double
-  ReadBlobDouble(Image *);
 
 extern MagickExport FILE
   *GetBlobFileHandle(const Image *);
 
-extern MagickExport float
-  ReadBlobFloat(Image *);
-
 extern MagickExport Image
   *BlobToImage(const ImageInfo *,const void *,const size_t,ExceptionInfo *),
-  *PingBlob(const ImageInfo *,const void *,const size_t,ExceptionInfo *);
-
-extern MagickExport int
-  EOFBlob(const Image *),
-  ReadBlobByte(Image *);
+  *PingBlob(const ImageInfo *,const void *,const size_t,ExceptionInfo *),
+  *CustomStreamToImage(const ImageInfo *,CustomStreamInfo *,ExceptionInfo *);
 
 extern MagickExport MagickBooleanType
   BlobToFile(char *,const void *,const size_t,ExceptionInfo *),
-  CloseBlob(Image *),
-  DiscardBlobBytes(Image *,const MagickSizeType),
   FileToImage(Image *,const char *,ExceptionInfo *),
+  GetBlobError(const Image *),
   ImageToFile(Image *,char *,ExceptionInfo *),
   InjectImageBlob(const ImageInfo *,Image *,Image *,const char *,
     ExceptionInfo *),
-  OpenBlob(const ImageInfo *,Image *,const BlobMode,ExceptionInfo *),
-  UnmapBlob(void *,const size_t);
-
-extern MagickExport MagickOffsetType
-  SeekBlob(Image *,const MagickOffsetType,const int),
-  TellBlob(const Image *);
+  IsBlobExempt(const Image *),
+  IsBlobSeekable(const Image *),
+  IsBlobTemporary(const Image *);
 
 extern MagickExport MagickSizeType
-  GetBlobSize(const Image *),
-  ReadBlobLongLong(Image *),
-  ReadBlobMSBLongLong(Image *);
-
-extern MagickExport ssize_t
-  ReadBlob(Image *,const size_t,void *),
-  WriteBlob(Image *,const size_t,const void *),
-  WriteBlobByte(Image *,const unsigned char),
-  WriteBlobFloat(Image *,const float),
-  WriteBlobLong(Image *,const unsigned int),
-  WriteBlobShort(Image *,const unsigned short),
-  WriteBlobLSBLong(Image *,const unsigned int),
-  WriteBlobLSBShort(Image *,const unsigned short),
-  WriteBlobMSBLong(Image *,const unsigned int),
-  WriteBlobMSBLongLong(Image *,const MagickSizeType),
-  WriteBlobMSBShort(Image *,const unsigned short),
-  WriteBlobString(Image *,const char *);
-
-extern MagickExport unsigned int
-  ReadBlobLong(Image *),
-  ReadBlobLSBLong(Image *),
-  ReadBlobMSBLong(Image *);
-
-extern MagickExport unsigned short
-  ReadBlobShort(Image *),
-  ReadBlobLSBShort(Image *),
-  ReadBlobMSBShort(Image *);
+  GetBlobSize(const Image *);
+
+extern MagickExport StreamHandler
+  GetBlobStreamHandler(const Image *);
 
 extern MagickExport void
-  AttachBlob(BlobInfo *,const void *,const size_t),
+  *GetBlobStreamData(const Image *),
   DestroyBlob(Image *),
-  *DetachBlob(BlobInfo *),
   DuplicateBlob(Image *,const Image *),
-  *GetBlobStreamData(const Image *),
   *FileToBlob(const char *,const size_t,size_t *,ExceptionInfo *),
   *ImageToBlob(const ImageInfo *,Image *,size_t *,ExceptionInfo *),
+  ImageToCustomStream(const ImageInfo *,Image *,CustomStreamInfo *,
+    ExceptionInfo *),
   *ImagesToBlob(const ImageInfo *,Image *,size_t *,ExceptionInfo *),
-  *MapBlob(int,const MapMode,const MagickOffsetType,const size_t),
-  MSBOrderLong(unsigned char *,const size_t),
-  MSBOrderShort(unsigned char *,const size_t);
+  ImagesToCustomStream(const ImageInfo *,Image *,CustomStreamInfo *,
+    ExceptionInfo *),
+  SetBlobExempt(Image *,const MagickBooleanType);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }