QtBase  v6.3.1
hb-blob.h
Go to the documentation of this file.
1 /*
2  * Copyright © 2009 Red Hat, Inc.
3  *
4  * This is part of HarfBuzz, a text shaping library.
5  *
6  * Permission is hereby granted, without written agreement and without
7  * license or royalty fees, to use, copy, modify, and distribute this
8  * software and its documentation for any purpose, provided that the
9  * above copyright notice and the following two paragraphs appear in
10  * all copies of this software.
11  *
12  * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
13  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
14  * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
15  * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
16  * DAMAGE.
17  *
18  * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
19  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20  * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
21  * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
22  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
23  *
24  * Red Hat Author(s): Behdad Esfahbod
25  */
26 
27 #if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR)
28 #error "Include <hb.h> instead."
29 #endif
30 
31 #ifndef HB_BLOB_H
32 #define HB_BLOB_H
33 
34 #include "hb-common.h"
35 
37 
38 
69 typedef enum {
75 
84 typedef struct hb_blob_t hb_blob_t;
85 
87 hb_blob_create (const char *data,
88  unsigned int length,
90  void *user_data,
92 
94 hb_blob_create_or_fail (const char *data,
95  unsigned int length,
97  void *user_data,
99 
101 hb_blob_create_from_file (const char *file_name);
102 
104 hb_blob_create_from_file_or_fail (const char *file_name);
105 
106 /* Always creates with MEMORY_MODE_READONLY.
107  * Even if the parent blob is writable, we don't
108  * want the user of the sub-blob to be able to
109  * modify the parent data as that data may be
110  * shared among multiple sub-blobs.
111  */
114  unsigned int offset,
115  unsigned int length);
116 
119 
121 hb_blob_get_empty (void);
122 
125 
126 HB_EXTERN void
127 hb_blob_destroy (hb_blob_t *blob);
128 
132  void * data,
134  hb_bool_t replace);
135 
136 
137 HB_EXTERN void *
140 
141 
142 HB_EXTERN void
144 
147 
148 
149 HB_EXTERN unsigned int
151 
152 HB_EXTERN const char *
153 hb_blob_get_data (hb_blob_t *blob, unsigned int *length);
154 
155 HB_EXTERN char *
156 hb_blob_get_data_writable (hb_blob_t *blob, unsigned int *length);
157 
159 
160 #endif /* HB_BLOB_H */
GLenum GLuint GLenum GLsizei length
Definition: qopengl.h:270
GLenum mode
GLuint64 key
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum GLuint GLintptr offset
HB_EXTERN hb_blob_t * hb_blob_create(const char *data, unsigned int length, hb_memory_mode_t mode, void *user_data, hb_destroy_func_t destroy)
Definition: hb-blob.cc:69
HB_EXTERN hb_bool_t hb_blob_set_user_data(hb_blob_t *blob, hb_user_data_key_t *key, void *data, hb_destroy_func_t destroy, hb_bool_t replace)
Definition: hb-blob.cc:286
hb_memory_mode_t
Definition: hb-blob.h:69
@ HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE
Definition: hb-blob.h:73
@ HB_MEMORY_MODE_WRITABLE
Definition: hb-blob.h:72
@ HB_MEMORY_MODE_READONLY
Definition: hb-blob.h:71
@ HB_MEMORY_MODE_DUPLICATE
Definition: hb-blob.h:70
HB_EXTERN hb_bool_t hb_blob_is_immutable(hb_blob_t *blob)
Definition: hb-blob.cc:343
HB_EXTERN hb_blob_t * hb_blob_create_sub_blob(hb_blob_t *parent, unsigned int offset, unsigned int length)
Definition: hb-blob.cc:169
HB_EXTERN void * hb_blob_get_user_data(hb_blob_t *blob, hb_user_data_key_t *key)
Definition: hb-blob.cc:308
HB_EXTERN const char * hb_blob_get_data(hb_blob_t *blob, unsigned int *length)
Definition: hb-blob.cc:377
HB_EXTERN hb_blob_t * hb_blob_create_from_file_or_fail(const char *file_name)
Definition: hb-blob.cc:628
HB_EXTERN hb_blob_t * hb_blob_create_or_fail(const char *data, unsigned int length, hb_memory_mode_t mode, void *user_data, hb_destroy_func_t destroy)
Definition: hb-blob.cc:107
HB_EXTERN void hb_blob_make_immutable(hb_blob_t *blob)
Definition: hb-blob.cc:324
HB_EXTERN char * hb_blob_get_data_writable(hb_blob_t *blob, unsigned int *length)
Definition: hb-blob.cc:402
HB_EXTERN void hb_blob_destroy(hb_blob_t *blob)
Definition: hb-blob.cc:262
HB_EXTERN hb_blob_t * hb_blob_copy_writable_or_fail(hb_blob_t *blob)
Definition: hb-blob.cc:200
HB_EXTERN hb_blob_t * hb_blob_create_from_file(const char *file_name)
Definition: hb-blob.cc:609
HB_EXTERN hb_blob_t * hb_blob_get_empty(void)
Definition: hb-blob.cc:226
HB_EXTERN hb_blob_t * hb_blob_reference(hb_blob_t *blob)
Definition: hb-blob.cc:244
HB_EXTERN unsigned int hb_blob_get_length(hb_blob_t *blob)
Definition: hb-blob.cc:360
void(* hb_destroy_func_t)(void *user_data)
Definition: hb-common.h:771
HB_BEGIN_DECLS typedef int hb_bool_t
Definition: hb-common.h:97
#define HB_BEGIN_DECLS
Definition: hb-common.h:45
#define HB_END_DECLS
Definition: hb-common.h:46
#define HB_EXTERN
Definition: hb-common.h:37
HB_EXTERN hb_font_get_glyph_func_t void * user_data
HB_EXTERN hb_font_get_glyph_func_t void hb_destroy_func_t destroy
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent