typedef struct _Slave_Msg_Font_Glyphs_Load Slave_Msg_Font_Glyphs_Load;
typedef struct _Slave_Msg_Font_Glyphs_Loaded Slave_Msg_Font_Glyphs_Loaded;
-typedef void *(*Font_Request_Msg_Create)(void *data, int *size);
-typedef void (*Font_Request_Msg_Free)(void *msg, void *data);
-typedef Msg_Base *(*Font_Request_Response)(void *data, void *resp, int *size);
-typedef void (*Font_Request_Error)(void *data, Error_Type error);
-
-struct _Font_Request_Funcs {
- Font_Request_Msg_Create msg_create;
- Font_Request_Msg_Free msg_free;
- Font_Request_Response response;
- Font_Request_Error error;
+typedef void *(*Slave_Request_Msg_Create)(void *data, int *size);
+typedef void (*Slave_Request_Msg_Free)(void *msg, void *data);
+typedef Msg_Base *(*Slave_Request_Response)(void *data, void *resp, int *size);
+typedef void (*Slave_Request_Error)(void *data, Error_Type error);
+
+struct _Slave_Request_Funcs {
+ Slave_Request_Msg_Create msg_create;
+ Slave_Request_Msg_Free msg_free;
+ Slave_Request_Response response;
+ Slave_Request_Error error;
};
-typedef struct _Font_Request Font_Request;
-typedef struct _Font_Request_Funcs Font_Request_Funcs;
+typedef struct _Slave_Request Slave_Request;
+typedef struct _Slave_Request_Funcs Slave_Request_Funcs;
typedef enum {
FONT_REND_REGULAR = 1,
CSERVE2_REQ_FONT_LOAD,
CSERVE2_REQ_FONT_GLYPHS_LOAD,
CSERVE2_REQ_LAST
-} Font_Request_Type;
+} Slave_Request_Type;
typedef struct _Glyph_Entry Glyph_Entry;
void cserve2_cache_font_debug(Client *client, unsigned int rid);
-Font_Request *cserve2_request_add(Font_Request_Type type, unsigned int rid, Client *client, Font_Request *dep, Font_Request_Funcs *funcs, void *data);
-void cserve2_request_waiter_add(Font_Request *req, unsigned int rid, Client *client);
-void cserve2_request_cancel(Font_Request *req, Client *client, Error_Type err);
-void cserve2_request_cancel_all(Font_Request *req, Error_Type err);
+Slave_Request *cserve2_request_add(Slave_Request_Type type, unsigned int rid, Client *client, Slave_Request *dep, Slave_Request_Funcs *funcs, void *data);
+void cserve2_request_waiter_add(Slave_Request *req, unsigned int rid, Client *client);
+void cserve2_request_cancel(Slave_Request *req, Client *client, Error_Type err);
+void cserve2_request_cancel_all(Slave_Request *req, Error_Type err);
void cserve2_requests_init(void);
void cserve2_requests_shutdown(void);
struct _Entry {
unsigned int id;
Eina_List *references;
- Font_Request *request;
+ Slave_Request *request;
Entry_Type type;
#ifdef DEBUG_LOAD_TIME
struct timeval load_start;
struct _Font_Entry {
Entry base;
- Font_Request *request;
+ Slave_Request *request;
unsigned int rend_flags;
unsigned int size;
unsigned int dpi;
}
}
-static Font_Request_Funcs _open_funcs = {
- .msg_create = (Font_Request_Msg_Create)_open_request_build,
+static Slave_Request_Funcs _open_funcs = {
+ .msg_create = (Slave_Request_Msg_Create)_open_request_build,
.msg_free = _request_free,
- .response = (Font_Request_Response)_open_request_response,
- .error = (Font_Request_Error)_request_failed
+ .response = (Slave_Request_Response)_open_request_response,
+ .error = (Slave_Request_Error)_request_failed
};
static void *
return _image_loaded_msg_create(e, size);
}
-static Font_Request_Funcs _load_funcs = {
- .msg_create = (Font_Request_Msg_Create)_load_request_build,
+static Slave_Request_Funcs _load_funcs = {
+ .msg_create = (Slave_Request_Msg_Create)_load_request_build,
.msg_free = _request_free,
- .response = (Font_Request_Response)_load_request_response,
- .error = (Font_Request_Error)_request_failed
+ .response = (Slave_Request_Response)_load_request_response,
+ .error = (Slave_Request_Error)_request_failed
};
static unsigned int
_font_entry_reference_del(ref->client, fe);
}
-static Font_Request_Funcs _font_load_funcs = {
- .msg_create = (Font_Request_Msg_Create)_font_load_request_build,
- .msg_free = (Font_Request_Msg_Free)_font_load_request_free,
- .response = (Font_Request_Response)_font_load_request_response,
- .error = (Font_Request_Error)_font_load_request_failed
+static Slave_Request_Funcs _font_load_funcs = {
+ .msg_create = (Slave_Request_Msg_Create)_font_load_request_build,
+ .msg_free = (Slave_Request_Msg_Free)_font_load_request_free,
+ .response = (Slave_Request_Response)_font_load_request_response,
+ .error = (Slave_Request_Error)_font_load_request_failed
};
static Eina_Bool
{
}
-static Font_Request_Funcs _glyphs_load_funcs = {
- .msg_create = (Font_Request_Msg_Create)_glyphs_load_request_build,
- .msg_free = (Font_Request_Msg_Free)_glyphs_load_request_free,
- .response = (Font_Request_Response)_glyphs_load_request_response,
- .error = (Font_Request_Error)_glyphs_load_request_failed
+static Slave_Request_Funcs _glyphs_load_funcs = {
+ .msg_create = (Slave_Request_Msg_Create)_glyphs_load_request_build,
+ .msg_free = (Slave_Request_Msg_Free)_glyphs_load_request_free,
+ .response = (Slave_Request_Response)_glyphs_load_request_response,
+ .error = (Slave_Request_Error)_glyphs_load_request_failed
};
static Eina_Bool
msg->images.files_size += sizeof(File_Data) +
eina_list_count(fd->images) * sizeof(Eina_List *) +
eina_list_count(fd->base.references) *
- (sizeof(Font_Request *) + sizeof(Eina_List *));
+ (sizeof(Slave_Request *) + sizeof(Eina_List *));
#ifdef DEBUG_LOAD_TIME
// accounting file entries load time
*/
static struct _Request_Match
{
- Font_Request_Type rtype;
+ Slave_Request_Type rtype;
Slave_Type stype;
Slave_Command ctype;
} _request_match[] =
{ SLAVE_FONT, 1, NULL, NULL, _create_font_slave },
};
-struct _Font_Request
+struct _Slave_Request
{
EINA_INLIST;
- Font_Request_Type type;
+ Slave_Request_Type type;
void *data;
void *msg;
Eina_List *waiters;
Eina_Bool processing;
- Font_Request_Funcs *funcs;
- Font_Request *dependency;
+ Slave_Request_Funcs *funcs;
+ Slave_Request *dependency;
Eina_List *dependents; /* list of requests that depend on this one finishing */
Eina_Bool locked : 1; /* locked waiting for a dependency request to finish */
};
static void _cserve2_requests_process(void);
static void
-_request_waiter_add(Font_Request *req, Client *client, unsigned int rid)
+_request_waiter_add(Slave_Request *req, Client *client, unsigned int rid)
{
Waiter *w = malloc(sizeof(*w));
req->waiters = eina_list_append(req->waiters, w);
}
-Font_Request *
-cserve2_request_add(Font_Request_Type type, unsigned int rid, Client *client, Font_Request *dep, Font_Request_Funcs *funcs, void *data)
+Slave_Request *
+cserve2_request_add(Slave_Request_Type type, unsigned int rid, Client *client, Slave_Request *dep, Slave_Request_Funcs *funcs, void *data)
{
- Font_Request *req, *r;
+ Slave_Request *req, *r;
req = NULL;
}
void
-cserve2_request_waiter_add(Font_Request *req, unsigned int rid, Client *client)
+cserve2_request_waiter_add(Slave_Request *req, unsigned int rid, Client *client)
{
_request_waiter_add(req, client, rid);
}
static void
-_request_dependents_cancel(Font_Request *req, Error_Type err)
+_request_dependents_cancel(Slave_Request *req, Error_Type err)
{
- Font_Request *dep;
+ Slave_Request *dep;
EINA_LIST_FREE(req->dependents, dep)
{
}
void
-cserve2_request_cancel(Font_Request *req, Client *client, Error_Type err)
+cserve2_request_cancel(Slave_Request *req, Client *client, Error_Type err)
{
Eina_List *l, *l_next;
Waiter *w;
}
void
-cserve2_request_cancel_all(Font_Request *req, Error_Type err)
+cserve2_request_cancel_all(Slave_Request *req, Error_Type err)
{
Waiter *w;
}
static void
-_cserve2_request_failed(Font_Request *req, Error_Type type)
+_cserve2_request_failed(Slave_Request *req, Error_Type type)
{
Waiter *w;
_slave_read_cb(Slave *s __UNUSED__, Slave_Command cmd, void *msg, void *data)
{
Slave_Worker *sw = data;
- Font_Request *dep, *req = sw->data;
+ Slave_Request *dep, *req = sw->data;
Eina_List **working, **idle;
Waiter *w;
Msg_Base *resp = NULL;
_slave_dead_cb(Slave *s __UNUSED__, void *data)
{
Slave_Worker *sw = data;
- Font_Request *req = sw->data;
+ Slave_Request *req = sw->data;
Eina_List **working = &_workers[sw->type].working;
if (req)
}
static Eina_Bool
-_cserve2_request_dispatch(Slave_Worker *sw, Slave_Command ctype, Font_Request *req)
+_cserve2_request_dispatch(Slave_Worker *sw, Slave_Command ctype, Slave_Request *req)
{
int size;
char *slave_msg = req->funcs->msg_create(req->data, &size);
unsigned int max_workers;
Eina_List **idle, **working;
Eina_Inlist *itr;
- Font_Request *req;
+ Slave_Request *req;
for (j = 0; _request_match[j].rtype != CSERVE2_REQ_LAST; j++)
{