Skip to content
Snippets Groups Projects
Commit 331dd8ca authored by edgrif's avatar edgrif
Browse files

add new featureset/style hash param.

parent 3a0cb900
No related branches found
No related tags found
No related merge requests found
...@@ -27,9 +27,9 @@ ...@@ -27,9 +27,9 @@
* structs that give all the information/fields for the request/reply. * structs that give all the information/fields for the request/reply.
* *
* HISTORY: * HISTORY:
* Last edited: Mar 23 11:36 2009 (edgrif) * Last edited: Apr 14 12:22 2009 (edgrif)
* Created: Wed Feb 2 11:47:16 2005 (edgrif) * Created: Wed Feb 2 11:47:16 2005 (edgrif)
* CVS info: $Id: zmapServerProtocol.h,v 1.21 2009-04-06 13:27:43 edgrif Exp $ * CVS info: $Id: zmapServerProtocol.h,v 1.22 2009-04-16 09:11:27 edgrif Exp $
*------------------------------------------------------------------- *-------------------------------------------------------------------
*/ */
#ifndef ZMAP_PROTOCOL_H #ifndef ZMAP_PROTOCOL_H
...@@ -131,8 +131,13 @@ typedef struct ...@@ -131,8 +131,13 @@ typedef struct
GList *feature_sets_inout ; /* List of prespecified features sets or GList *feature_sets_inout ; /* List of prespecified features sets or
NULL to get all available sets. */ NULL to get all available sets. */
/* Is this still needed ????? */
GList *required_styles_out ; /* May be derived from features. */ GList *required_styles_out ; /* May be derived from features. */
GHashTable *featureset_2_stylelist_out ; /* Mapping of each feature_set to all
the styles it requires. */
} ZMapServerReqFeatureSetsStruct, *ZMapServerReqFeatureSets ; } ZMapServerReqFeatureSetsStruct, *ZMapServerReqFeatureSets ;
......
...@@ -26,9 +26,9 @@ ...@@ -26,9 +26,9 @@
* Description: * Description:
* Exported functions: See ZMap/zmapServer.h * Exported functions: See ZMap/zmapServer.h
* HISTORY: * HISTORY:
* Last edited: Feb 4 15:15 2009 (edgrif) * Last edited: Apr 14 14:53 2009 (edgrif)
* Created: Wed Aug 6 15:46:38 2003 (edgrif) * Created: Wed Aug 6 15:46:38 2003 (edgrif)
* CVS info: $Id: zmapServer.c,v 1.35 2009-02-04 16:10:07 edgrif Exp $ * CVS info: $Id: zmapServer.c,v 1.36 2009-04-16 09:11:27 edgrif Exp $
*------------------------------------------------------------------- *-------------------------------------------------------------------
*/ */
...@@ -175,11 +175,21 @@ ZMapServerResponseType zMapServerOpenConnection(ZMapServer server) ...@@ -175,11 +175,21 @@ ZMapServerResponseType zMapServerOpenConnection(ZMapServer server)
} }
ZMapServerResponseType zMapServerGetStyles(ZMapServer server, GData **styles_out)
ZMapServerResponseType zMapServerFeatureSetNames(ZMapServer server,
GList **feature_sets_inout,
GList **required_styles_out,
GHashTable **featureset_2_stylelist_out)
{ {
ZMapServerResponseType result = ZMAP_SERVERRESPONSE_REQFAIL ; ZMapServerResponseType result = ZMAP_SERVERRESPONSE_REQFAIL ;
result = server->last_response = (server->funcs->get_styles)(server->server_conn, styles_out) ; zMapAssert(server && *feature_sets_inout && !*required_styles_out) ;
result = server->last_response
= (server->funcs->feature_set_names)(server->server_conn,
feature_sets_inout,
required_styles_out,
featureset_2_stylelist_out) ;
if (result != ZMAP_SERVERRESPONSE_OK) if (result != ZMAP_SERVERRESPONSE_OK)
server->last_error_msg = ZMAPSERVER_MAKEMESSAGE(server->url->protocol, server->last_error_msg = ZMAPSERVER_MAKEMESSAGE(server->url->protocol,
...@@ -190,11 +200,11 @@ ZMapServerResponseType zMapServerGetStyles(ZMapServer server, GData **styles_out ...@@ -190,11 +200,11 @@ ZMapServerResponseType zMapServerGetStyles(ZMapServer server, GData **styles_out
} }
ZMapServerResponseType zMapServerStylesHaveMode(ZMapServer server, gboolean *have_mode) ZMapServerResponseType zMapServerGetStyles(ZMapServer server, GData **styles_out)
{ {
ZMapServerResponseType result = ZMAP_SERVERRESPONSE_REQFAIL ; ZMapServerResponseType result = ZMAP_SERVERRESPONSE_REQFAIL ;
result = server->last_response = (server->funcs->have_modes)(server->server_conn, have_mode) ; result = server->last_response = (server->funcs->get_styles)(server->server_conn, styles_out) ;
if (result != ZMAP_SERVERRESPONSE_OK) if (result != ZMAP_SERVERRESPONSE_OK)
server->last_error_msg = ZMAPSERVER_MAKEMESSAGE(server->url->protocol, server->last_error_msg = ZMAPSERVER_MAKEMESSAGE(server->url->protocol,
...@@ -205,12 +215,11 @@ ZMapServerResponseType zMapServerStylesHaveMode(ZMapServer server, gboolean *hav ...@@ -205,12 +215,11 @@ ZMapServerResponseType zMapServerStylesHaveMode(ZMapServer server, gboolean *hav
} }
ZMapServerResponseType zMapServerStylesHaveMode(ZMapServer server, gboolean *have_mode)
ZMapServerResponseType zMapServerGetSequence(ZMapServer server, GList *sequences_inout)
{ {
ZMapServerResponseType result = ZMAP_SERVERRESPONSE_REQFAIL ; ZMapServerResponseType result = ZMAP_SERVERRESPONSE_REQFAIL ;
result = server->last_response = (server->funcs->get_sequence)(server->server_conn, sequences_inout) ; result = server->last_response = (server->funcs->have_modes)(server->server_conn, have_mode) ;
if (result != ZMAP_SERVERRESPONSE_OK) if (result != ZMAP_SERVERRESPONSE_OK)
server->last_error_msg = ZMAPSERVER_MAKEMESSAGE(server->url->protocol, server->last_error_msg = ZMAPSERVER_MAKEMESSAGE(server->url->protocol,
...@@ -221,12 +230,12 @@ ZMapServerResponseType zMapServerGetSequence(ZMapServer server, GList *sequences ...@@ -221,12 +230,12 @@ ZMapServerResponseType zMapServerGetSequence(ZMapServer server, GList *sequences
} }
ZMapServerResponseType zMapServerGetServerInfo(ZMapServer server, char **database_path)
ZMapServerResponseType zMapServerGetSequence(ZMapServer server, GList *sequences_inout)
{ {
ZMapServerResponseType result = ZMAP_SERVERRESPONSE_REQFAIL ; ZMapServerResponseType result = ZMAP_SERVERRESPONSE_REQFAIL ;
result = server->last_response = (server->funcs->get_sequence)(server->server_conn, sequences_inout) ;
result = server->last_response = (server->funcs->get_info)(server->server_conn, database_path) ;
if (result != ZMAP_SERVERRESPONSE_OK) if (result != ZMAP_SERVERRESPONSE_OK)
server->last_error_msg = ZMAPSERVER_MAKEMESSAGE(server->url->protocol, server->last_error_msg = ZMAPSERVER_MAKEMESSAGE(server->url->protocol,
...@@ -237,15 +246,12 @@ ZMapServerResponseType zMapServerGetServerInfo(ZMapServer server, char **databas ...@@ -237,15 +246,12 @@ ZMapServerResponseType zMapServerGetServerInfo(ZMapServer server, char **databas
} }
ZMapServerResponseType zMapServerFeatureSetNames(ZMapServer server, ZMapServerResponseType zMapServerGetServerInfo(ZMapServer server, char **database_path)
GList **feature_sets_inout, GList **required_styles_out)
{ {
ZMapServerResponseType result = ZMAP_SERVERRESPONSE_REQFAIL ; ZMapServerResponseType result = ZMAP_SERVERRESPONSE_REQFAIL ;
zMapAssert(server && *feature_sets_inout && !*required_styles_out) ;
result = server->last_response result = server->last_response = (server->funcs->get_info)(server->server_conn, database_path) ;
= (server->funcs->feature_set_names)(server->server_conn, feature_sets_inout, required_styles_out) ;
if (result != ZMAP_SERVERRESPONSE_OK) if (result != ZMAP_SERVERRESPONSE_OK)
server->last_error_msg = ZMAPSERVER_MAKEMESSAGE(server->url->protocol, server->last_error_msg = ZMAPSERVER_MAKEMESSAGE(server->url->protocol,
......
...@@ -26,9 +26,9 @@ ...@@ -26,9 +26,9 @@
* details from caller. * details from caller.
* *
* HISTORY: * HISTORY:
* Last edited: Feb 4 15:22 2009 (edgrif) * Last edited: Apr 14 12:22 2009 (edgrif)
* Created: Wed Aug 6 15:48:47 2003 (edgrif) * Created: Wed Aug 6 15:48:47 2003 (edgrif)
* CVS info: $Id: zmapServer.h,v 1.11 2009-02-04 16:10:07 edgrif Exp $ * CVS info: $Id: zmapServer.h,v 1.12 2009-04-16 09:11:27 edgrif Exp $
*------------------------------------------------------------------- *-------------------------------------------------------------------
*/ */
#ifndef ZMAP_SERVER_H #ifndef ZMAP_SERVER_H
...@@ -57,7 +57,10 @@ ZMapServerResponseType zMapServerCreateConnection(ZMapServer *server_out, void * ...@@ -57,7 +57,10 @@ ZMapServerResponseType zMapServerCreateConnection(ZMapServer *server_out, void *
int timeout, char *version_str); int timeout, char *version_str);
ZMapServerResponseType zMapServerOpenConnection(ZMapServer server) ; ZMapServerResponseType zMapServerOpenConnection(ZMapServer server) ;
ZMapServerResponseType zMapServerGetServerInfo(ZMapServer server, char **database_path) ; ZMapServerResponseType zMapServerGetServerInfo(ZMapServer server, char **database_path) ;
ZMapServerResponseType zMapServerFeatureSetNames(ZMapServer server, GList **feature_sets_inout, GList **required_styles) ; ZMapServerResponseType zMapServerFeatureSetNames(ZMapServer server,
GList **feature_sets_inout,
GList **required_styles,
GHashTable **featureset_2_stylelist_out) ;
ZMapServerResponseType zMapServerGetStyles(ZMapServer server, GData **types_out) ; ZMapServerResponseType zMapServerGetStyles(ZMapServer server, GData **types_out) ;
ZMapServerResponseType zMapServerStylesHaveMode(ZMapServer server, gboolean *have_mode) ; ZMapServerResponseType zMapServerStylesHaveMode(ZMapServer server, gboolean *have_mode) ;
ZMapServerResponseType zMapServerGetSequence(ZMapServer server, GList *sequences_inout) ; ZMapServerResponseType zMapServerGetSequence(ZMapServer server, GList *sequences_inout) ;
......
...@@ -25,9 +25,9 @@ ...@@ -25,9 +25,9 @@
* Description: * Description:
* Exported functions: See ZMap/zmapServerProtocol.h * Exported functions: See ZMap/zmapServerProtocol.h
* HISTORY: * HISTORY:
* Last edited: Mar 20 11:59 2009 (edgrif) * Last edited: Apr 16 10:09 2009 (edgrif)
* Created: Thu Jan 27 13:17:43 2005 (edgrif) * Created: Thu Jan 27 13:17:43 2005 (edgrif)
* CVS info: $Id: zmapServerProtocolHandler.c,v 1.40 2009-03-20 12:40:44 edgrif Exp $ * CVS info: $Id: zmapServerProtocolHandler.c,v 1.41 2009-04-16 09:11:27 edgrif Exp $
*------------------------------------------------------------------- *-------------------------------------------------------------------
*/ */
...@@ -92,10 +92,6 @@ static void findStyleCB(gpointer data, gpointer user_data) ; ...@@ -92,10 +92,6 @@ static void findStyleCB(gpointer data, gpointer user_data) ;
static gboolean getStylesFromFile(char *styles_list, char *styles_file, GData **styles_out) ; static gboolean getStylesFromFile(char *styles_list, char *styles_file, GData **styles_out) ;
ZMapThreadReturnCode getStyles(ZMapServer server, ZMapServerReqStyles styles, char **err_msg_out) ; ZMapThreadReturnCode getStyles(ZMapServer server, ZMapServerReqStyles styles, char **err_msg_out) ;
static gboolean makeStylesDrawable(GData *styles, char **missing_styles_out) ;
static void drawableCB(GQuark key_id, gpointer data, gpointer user_data) ;
/* Set up the list, note the special pthread macro that makes sure mutex is set up before /* Set up the list, note the special pthread macro that makes sure mutex is set up before
* any threads can use it. */ * any threads can use it. */
...@@ -392,7 +388,8 @@ ZMapThreadReturnCode zMapServerRequestHandler(void **slave_data, ...@@ -392,7 +388,8 @@ ZMapThreadReturnCode zMapServerRequestHandler(void **slave_data,
request->response = zMapServerFeatureSetNames(server, request->response = zMapServerFeatureSetNames(server,
&(feature_sets->feature_sets_inout), &(feature_sets->feature_sets_inout),
&(feature_sets->required_styles_out)) ; &(feature_sets->required_styles_out),
&(feature_sets->featureset_2_stylelist_out)) ;
if (request->response != ZMAP_SERVERRESPONSE_OK && request->response != ZMAP_SERVERRESPONSE_UNSUPPORTED) if (request->response != ZMAP_SERVERRESPONSE_OK && request->response != ZMAP_SERVERRESPONSE_UNSUPPORTED)
...@@ -747,49 +744,6 @@ static gboolean getStylesFromFile(char *styles_list, char *styles_file, GData ** ...@@ -747,49 +744,6 @@ static gboolean getStylesFromFile(char *styles_list, char *styles_file, GData **
static gboolean makeStylesDrawable(GData *styles, char **missing_styles_out)
{
gboolean result = FALSE ;
DrawableStruct drawable_data = {FALSE} ;
g_datalist_foreach(&styles, drawableCB, &drawable_data) ;
if (drawable_data.missing_styles)
*missing_styles_out = g_string_free(drawable_data.missing_styles, FALSE) ;
result = drawable_data.found_style ;
return result ;
}
/* A GDataForeachFunc() to make the given style drawable. */
static void drawableCB(GQuark key_id, gpointer data, gpointer user_data)
{
ZMapFeatureTypeStyle style = (ZMapFeatureTypeStyle)data ;
Drawable drawable_data = (Drawable)user_data ;
if (zMapStyleIsDisplayable(style))
{
if (zMapStyleMakeDrawable(style))
{
drawable_data->found_style = TRUE ;
}
else
{
if (!(drawable_data->missing_styles))
drawable_data->missing_styles = g_string_sized_new(1000) ;
g_string_append_printf(drawable_data->missing_styles, "%s ", g_quark_to_string(key_id)) ;
}
}
return ;
}
ZMapThreadReturnCode getStyles(ZMapServer server, ZMapServerReqStyles styles, char **err_msg_out) ZMapThreadReturnCode getStyles(ZMapServer server, ZMapServerReqStyles styles, char **err_msg_out)
{ {
ZMapThreadReturnCode thread_rc = ZMAPTHREAD_RETURNCODE_OK ; ZMapThreadReturnCode thread_rc = ZMAPTHREAD_RETURNCODE_OK ;
......
...@@ -28,9 +28,9 @@ ...@@ -28,9 +28,9 @@
* include this header, its not really for general consumption. * include this header, its not really for general consumption.
* *
* HISTORY: * HISTORY:
* Last edited: Feb 4 15:01 2009 (edgrif) * Last edited: Apr 14 14:50 2009 (edgrif)
* Created: Wed Aug 6 15:48:47 2003 (edgrif) * Created: Wed Aug 6 15:48:47 2003 (edgrif)
* CVS info: $Id: zmapServerPrototype.h,v 1.24 2009-02-04 16:11:19 edgrif Exp $ * CVS info: $Id: zmapServerPrototype.h,v 1.25 2009-04-16 09:11:27 edgrif Exp $
*------------------------------------------------------------------- *-------------------------------------------------------------------
*/ */
#ifndef ZMAP_SERVER_PROTOTYPEP_H #ifndef ZMAP_SERVER_PROTOTYPEP_H
...@@ -57,7 +57,9 @@ typedef ZMapServerResponseType (*ZMapServerOpenFunc)(void *server_conn) ; ...@@ -57,7 +57,9 @@ typedef ZMapServerResponseType (*ZMapServerOpenFunc)(void *server_conn) ;
typedef ZMapServerResponseType (*ZMapServerGetServerInfo)(void *server_in, char **database_path_out) ; typedef ZMapServerResponseType (*ZMapServerGetServerInfo)(void *server_in, char **database_path_out) ;
typedef ZMapServerResponseType (*ZMapServerGetFeatureSets)(void *server_in, typedef ZMapServerResponseType (*ZMapServerGetFeatureSets)(void *server_in,
GList **feature_sets_inout, GList **required_styles) ; GList **feature_sets_inout,
GList **required_styles_out,
GHashTable **featureset_2_stylelist_out) ;
typedef ZMapServerResponseType (*ZMapServerGetStyles)(void *server_in, typedef ZMapServerResponseType (*ZMapServerGetStyles)(void *server_in,
GData **styles_out) ; GData **styles_out) ;
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment