libpurple/image-store.h

Sun, 21 Jun 2020 04:16:15 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Sun, 21 Jun 2020 04:16:15 -0500
changeset 40474
1341be8e3402
parent 39659
e4dfb99b0cef
child 41208
48baac6c8989
permissions
-rw-r--r--

Make it so only libpurple can directly include libpurple header files.

This is part of our on going effort to make it easier to develop against libpurple as well as making our filenames not part of our api.

Make it so only libpurple can directly include libpurple header files.

Testing Done:
Just a normal compile to make sure everything builds again.

Reviewed at https://reviews.imfreedom.org/r/8/

35803
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
1 /* purple
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
2 *
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
3 * Purple is the legal property of its developers, whose names are too numerous
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
4 * to list here. Please refer to the COPYRIGHT file distributed with this
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
5 * source distribution.
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
6 *
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
7 * This program is free software; you can redistribute it and/or modify
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
8 * it under the terms of the GNU General Public License as published by
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
10 * (at your option) any later version.
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
11 *
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful,
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
15 * GNU General Public License for more details.
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
16 *
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
18 * along with this program; if not, write to the Free Software
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
20 */
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
21
40474
1341be8e3402 Make it so only libpurple can directly include libpurple header files.
Gary Kramlich <grim@reaperworld.com>
parents: 39659
diff changeset
22 #if !defined(PURPLE_GLOBAL_HEADER_INSIDE) && !defined(PURPLE_COMPILATION)
1341be8e3402 Make it so only libpurple can directly include libpurple header files.
Gary Kramlich <grim@reaperworld.com>
parents: 39659
diff changeset
23 # error "only <purple.h> may be included directly"
1341be8e3402 Make it so only libpurple can directly include libpurple header files.
Gary Kramlich <grim@reaperworld.com>
parents: 39659
diff changeset
24 #endif
1341be8e3402 Make it so only libpurple can directly include libpurple header files.
Gary Kramlich <grim@reaperworld.com>
parents: 39659
diff changeset
25
39659
e4dfb99b0cef Fix libpurple header guards using reserved names.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 35845
diff changeset
26 #ifndef PURPLE_IMAGE_STORE_H
e4dfb99b0cef Fix libpurple header guards using reserved names.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 35845
diff changeset
27 #define PURPLE_IMAGE_STORE_H
35803
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
28 /**
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
29 * SECTION:image-store
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
30 * @include:image-store.h
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
31 * @section_id: libpurple-image-store
35845
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
32 * @short_description: a global, temporary storage for images
35803
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
33 * @title: Image store
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
34 *
35845
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
35 * Image store references #PurpleImage's by a simple integer value.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
36 * It's a convenient way to embed images in HTML-like strings.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
37 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
38 * Integer ID's are tracked for being valid - when a image is destroyed, it's
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
39 * also removed from the store. If the application runs for a very long time and
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
40 * all possible id numbers from integer range are utilized, it will use
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
41 * previously released numbers.
35803
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
42 */
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
43
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
44 #include "image.h"
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
45
35845
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
46 /**
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
47 * PURPLE_IMAGE_STORE_PROTOCOL:
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
48 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
49 * A global URI prefix for images stored in this subsystem.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
50 */
35803
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
51 #define PURPLE_IMAGE_STORE_PROTOCOL "purple-image:"
35845
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
52
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
53 /**
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
54 * PURPLE_IMAGE_STORE_STOCK_PROTOCOL:
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
55 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
56 * A global URI prefix for stock images, with names defined by libpurple and
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
57 * contents defined by the UI.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
58 */
35803
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
59 #define PURPLE_IMAGE_STORE_STOCK_PROTOCOL "purple-stock-image:"
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
60
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
61 G_BEGIN_DECLS
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
62
35845
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
63 /**
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
64 * purple_image_store_add:
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
65 * @image: the image.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
66 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
67 * Permanently adds an image to the store. If the @image is already in the
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
68 * store, it will return its current id.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
69 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
70 * This function increases @image's reference count, so it won't be destroyed
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
71 * until image store subsystem is shut down. Don't decrease @image's reference
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
72 * count by yourself - if you don't want the store to hold the reference,
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
73 * use #purple_image_store_add_weak.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
74 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
75 * Returns: the unique identifier for the @image.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
76 */
35803
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
77 guint
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
78 purple_image_store_add(PurpleImage *image);
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
79
35845
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
80 /**
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
81 * purple_image_store_add_weak:
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
82 * @image: the image.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
83 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
84 * Adds an image to the store without increasing reference count. It will be
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
85 * removed from the store when @image gets destroyed.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
86 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
87 * If the @image is already in the store, it will return its current id.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
88 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
89 * Returns: the unique identifier for the @image.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
90 */
35803
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
91 guint
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
92 purple_image_store_add_weak(PurpleImage *image);
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
93
35845
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
94 /**
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
95 * purple_image_store_add_temporary:
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
96 * @image: the image.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
97 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
98 * Adds an image to the store to be used in a short period of time.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
99 * If the @image is already in the store, it will just return its current id.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
100 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
101 * Increases reference count for the @image for a time long enough to display
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
102 * the @image by the UI. In current implementation it's five seconds, but may be
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
103 * changed in the future, so if you need more sophisticated reference
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
104 * management, implement it on your own.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
105 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
106 * Returns: the unique identifier for the @image.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
107 */
35803
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
108 guint
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
109 purple_image_store_add_temporary(PurpleImage *image);
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
110
35845
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
111 /**
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
112 * purple_image_store_get:
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
113 * @id: the unique identifier of an image.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
114 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
115 * Finds the image with a certain identifier within a store.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
116 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
117 * Returns: (transfer none): the image referenced by @id, or %NULL if it
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
118 * doesn't exists.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
119 */
35803
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
120 PurpleImage *
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
121 purple_image_store_get(guint id);
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
122
35845
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
123 /**
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
124 * purple_image_store_get_from_uri:
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
125 * @uri: the URI of a potential #PurpleImage. Should not be %NULL.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
126 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
127 * Checks, if the @uri is pointing to any #PurpleImage by referring
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
128 * to #PURPLE_IMAGE_STORE_PROTOCOL and returns the image, if it's valid.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
129 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
130 * The function doesn't throw any warning, if the @uri is for any
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
131 * other protocol.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
132 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
133 * Returns: (transfer none): the image referenced by @uri, or %NULL if it
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
134 * doesn't point to any valid image.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
135 */
35830
fb32647ef2f3 PurpleImage: better reference management
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35803
diff changeset
136 PurpleImage *
fb32647ef2f3 PurpleImage: better reference management
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35803
diff changeset
137 purple_image_store_get_from_uri(const gchar *uri);
fb32647ef2f3 PurpleImage: better reference management
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35803
diff changeset
138
35845
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
139 /**
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
140 * purple_image_store_get_uri:
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
141 * @image: the image.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
142 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
143 * Generates an URI for the @image, to be retrieved using
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
144 * #purple_image_store_get_from_uri.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
145 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
146 * Returns: (transfer full): the URI for the @image. Should be #g_free'd when
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
147 * you done using it.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
148 */
35838
64f331a1eaa0 Drop remote smileys in favor of remote images
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35830
diff changeset
149 gchar *
64f331a1eaa0 Drop remote smileys in favor of remote images
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35830
diff changeset
150 purple_image_store_get_uri(PurpleImage *image);
64f331a1eaa0 Drop remote smileys in favor of remote images
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35830
diff changeset
151
35845
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
152 /**
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
153 * _purple_image_store_init: (skip)
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
154 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
155 * Initializes the image store subsystem.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
156 */
35803
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
157 void
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
158 _purple_image_store_init(void);
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
159
35845
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
160 /**
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
161 * _purple_image_store_uninit: (skip)
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
162 *
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
163 * Uninitializes the image store subsystem.
ea1c4f205efb PurpleImage: fill comments
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35838
diff changeset
164 */
35803
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
165 void
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
166 _purple_image_store_uninit(void);
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
167
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
168 G_END_DECLS
caa6f35efd7a Image store: very initial implementation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff changeset
169
39659
e4dfb99b0cef Fix libpurple header guards using reserved names.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 35845
diff changeset
170 #endif /* PURPLE_IMAGE_STORE_H */

mercurial