From d72493d01c983e84448f373faff0677c268816c1 Mon Sep 17 00:00:00 2001 From: edgrif <edgrif> Date: Fri, 12 Jun 2009 14:00:50 +0000 Subject: [PATCH] add databases name/title to db info. --- src/zmapServer/acedb/acedbServer.c | 52 +++++++++++++++------- src/zmapServer/zmapServer.c | 8 ++-- src/zmapServer/zmapServer.h | 15 ++++--- src/zmapServer/zmapServerProtocolHandler.c | 13 ++++-- src/zmapServer/zmapServerPrototype.h | 19 +++++--- 5 files changed, 74 insertions(+), 33 deletions(-) diff --git a/src/zmapServer/acedb/acedbServer.c b/src/zmapServer/acedb/acedbServer.c index 4d5203602..52318f1da 100755 --- a/src/zmapServer/acedb/acedbServer.c +++ b/src/zmapServer/acedb/acedbServer.c @@ -27,9 +27,9 @@ * * Exported functions: See zmapServer.h * HISTORY: - * Last edited: May 26 13:47 2009 (edgrif) + * Last edited: Jun 12 12:56 2009 (edgrif) * Created: Wed Aug 6 15:46:38 2003 (edgrif) - * CVS info: $Id: acedbServer.c,v 1.137 2009-05-26 12:49:06 edgrif Exp $ + * CVS info: $Id: acedbServer.c,v 1.138 2009-06-12 14:01:14 edgrif Exp $ *------------------------------------------------------------------- */ @@ -154,7 +154,7 @@ static gboolean createConnection(void **server_out, ZMapURL url, char *format, char *version_str, int timeout) ; static ZMapServerResponseType openConnection(void *server) ; -static ZMapServerResponseType getInfo(void *server, char **database_path) ; +static ZMapServerResponseType getInfo(void *server, ZMapServerInfo info) ; static ZMapServerResponseType getFeatureSetNames(void *server, GList **feature_sets_out, GList **required_styles, @@ -226,7 +226,7 @@ static ZMapFeatureTypeStyle parseStyle(char *method_str_in, char **end_pos, ZMapColGroupData *col_group_data) ; static gboolean getStyleColour(StyleFeatureColours style_colours, char **line_pos) ; static ZMapServerResponseType doGetSequences(AcedbServer server, GList *sequences_inout) ; -static gboolean getServerInfo(AcedbServer server, char **database_path_out) ; +static gboolean getServerInfo(AcedbServer server, ZMapServerInfo info) ; static int equaliseLists(AcedbServer server, GList **feature_sets_inout, GList *method_names, char *query_name, char *reference_name) ; @@ -365,14 +365,14 @@ static ZMapServerResponseType openConnection(void *server_in) -static ZMapServerResponseType getInfo(void *server_in, char **database_path) +static ZMapServerResponseType getInfo(void *server_in, ZMapServerInfo info) { ZMapServerResponseType result = ZMAP_SERVERRESPONSE_REQFAIL ; AcedbServer server = (AcedbServer)server_in ; resetErr(server) ; - if (getServerInfo(server, database_path)) + if (getServerInfo(server, info)) { result = ZMAP_SERVERRESPONSE_OK ; } @@ -650,7 +650,6 @@ static ZMapServerResponseType setContext(void *server_in, ZMapFeatureContext fea feature_context = zMapFeatureContextCreate(server->sequence) ; #endif /* ED_G_NEVER_INCLUDE_THIS_CODE */ - if (!(status = getSequenceMapping(server, feature_context))) { result = ZMAP_SERVERRESPONSE_REQFAIL ; @@ -659,7 +658,9 @@ static ZMapServerResponseType setContext(void *server_in, ZMapFeatureContext fea g_quark_to_string(server->req_context->sequence_name), server->last_err_msg) ; } else - server->current_context = feature_context ; + { + server->current_context = feature_context ; + } return result ; } @@ -1587,9 +1588,6 @@ static gboolean getDNARequest(AcedbServer server, char *sequence_name, int start - - - /* Tries to smap sequence into whatever its parent is, if the call fails then we set all the * mappings in feature_context to be something sensible...we hope.... */ @@ -2024,7 +2022,7 @@ static gboolean setQuietMode(AcedbServer server) * * * */ -static gboolean getServerInfo(AcedbServer server, char **database_path_out) +static gboolean getServerInfo(AcedbServer server, ZMapServerInfo info) { gboolean result = FALSE ; char *command ; @@ -2058,12 +2056,34 @@ static gboolean getServerInfo(AcedbServer server, char **database_path_out) if (target) { result = TRUE ; - *database_path_out = g_strdup(target) ; + info->database_path = g_strdup(target) ; } - else - setErrMsg(server, g_strdup("No directory name after \"Directory\" in acedb response.")) ; + } + else if (strstr(next_line, "Title") != NULL) + { + char *target ; + char *tag_pos = NULL ; - break ; + target = strtok_r(next_line, ":", &tag_pos) ; + + if (tag_pos && !(strstr(tag_pos, "<undefined>"))) + { + result = TRUE ; + info->database_title = g_strstrip(g_strdup(tag_pos)) ; + } + } + else if (strstr(next_line, "Name") != NULL) + { + char *target ; + char *tag_pos = NULL ; + + target = strtok_r(next_line, ":", &tag_pos) ; + + if (tag_pos && !(strstr(tag_pos, "<undefined>"))) + { + result = TRUE ; + info->database_name = g_strstrip(g_strdup(tag_pos)) ; + } } } diff --git a/src/zmapServer/zmapServer.c b/src/zmapServer/zmapServer.c index f75ca3ee7..201b77e8f 100755 --- a/src/zmapServer/zmapServer.c +++ b/src/zmapServer/zmapServer.c @@ -26,9 +26,9 @@ * Description: * Exported functions: See ZMap/zmapServer.h * HISTORY: - * Last edited: Apr 14 14:53 2009 (edgrif) + * Last edited: Jun 12 10:49 2009 (edgrif) * Created: Wed Aug 6 15:46:38 2003 (edgrif) - * CVS info: $Id: zmapServer.c,v 1.36 2009-04-16 09:11:27 edgrif Exp $ + * CVS info: $Id: zmapServer.c,v 1.37 2009-06-12 14:00:50 edgrif Exp $ *------------------------------------------------------------------- */ @@ -246,12 +246,12 @@ ZMapServerResponseType zMapServerGetSequence(ZMapServer server, GList *sequences } -ZMapServerResponseType zMapServerGetServerInfo(ZMapServer server, char **database_path) +ZMapServerResponseType zMapServerGetServerInfo(ZMapServer server, ZMapServerInfo info) { ZMapServerResponseType result = ZMAP_SERVERRESPONSE_REQFAIL ; - result = server->last_response = (server->funcs->get_info)(server->server_conn, database_path) ; + result = server->last_response = (server->funcs->get_info)(server->server_conn, info) ; if (result != ZMAP_SERVERRESPONSE_OK) server->last_error_msg = ZMAPSERVER_MAKEMESSAGE(server->url->protocol, diff --git a/src/zmapServer/zmapServer.h b/src/zmapServer/zmapServer.h index 9aeb2c23d..e86ba7025 100755 --- a/src/zmapServer/zmapServer.h +++ b/src/zmapServer/zmapServer.h @@ -26,9 +26,9 @@ * details from caller. * * HISTORY: - * Last edited: Apr 14 12:22 2009 (edgrif) + * Last edited: Jun 12 10:54 2009 (edgrif) * Created: Wed Aug 6 15:48:47 2003 (edgrif) - * CVS info: $Id: zmapServer.h,v 1.12 2009-04-16 09:11:27 edgrif Exp $ + * CVS info: $Id: zmapServer.h,v 1.13 2009-06-12 14:00:50 edgrif Exp $ *------------------------------------------------------------------- */ #ifndef ZMAP_SERVER_H @@ -37,7 +37,11 @@ #include <glib.h> #include <ZMap/zmapFeature.h> #include <ZMap/zmapUrl.h> -#include <ZMap/zmapServerProtocol.h> +#include <ZMap/zmapServerProtocol.h> /* Is this a good idea...see if there + is a more general sub header that + could be used.... */ + +#include <zmapServerPrototype.h> @@ -56,7 +60,7 @@ ZMapServerResponseType zMapServerCreateConnection(ZMapServer *server_out, void * ZMapURL url, char *format, int timeout, char *version_str); ZMapServerResponseType zMapServerOpenConnection(ZMapServer server) ; -ZMapServerResponseType zMapServerGetServerInfo(ZMapServer server, char **database_path) ; +ZMapServerResponseType zMapServerGetServerInfo(ZMapServer server, ZMapServerInfo info) ; ZMapServerResponseType zMapServerFeatureSetNames(ZMapServer server, GList **feature_sets_inout, GList **required_styles, @@ -67,7 +71,8 @@ ZMapServerResponseType zMapServerGetSequence(ZMapServer server, GList *sequences ZMapServerResponseType zMapServerSetContext(ZMapServer server, ZMapFeatureContext feature_context) ; ZMapFeatureContext zMapServerCopyContext(ZMapServer server) ; ZMapServerResponseType zMapServerGetFeatures(ZMapServer server, GData *styles, ZMapFeatureContext feature_context) ; -ZMapServerResponseType zMapServerGetContextSequences(ZMapServer server, GData *styles, ZMapFeatureContext feature_context) ; +ZMapServerResponseType zMapServerGetContextSequences(ZMapServer server, + GData *styles, ZMapFeatureContext feature_context) ; char *zMapServerLastErrorMsg(ZMapServer server) ; ZMapServerResponseType zMapServerCloseConnection(ZMapServer server) ; ZMapServerResponseType zMapServerFreeConnection(ZMapServer server) ; diff --git a/src/zmapServer/zmapServerProtocolHandler.c b/src/zmapServer/zmapServerProtocolHandler.c index adeb571ab..f27ecbe22 100755 --- a/src/zmapServer/zmapServerProtocolHandler.c +++ b/src/zmapServer/zmapServerProtocolHandler.c @@ -25,9 +25,9 @@ * Description: * Exported functions: See ZMap/zmapServerProtocol.h * HISTORY: - * Last edited: Jun 12 08:47 2009 (edgrif) + * Last edited: Jun 12 10:50 2009 (edgrif) * Created: Thu Jan 27 13:17:43 2005 (edgrif) - * CVS info: $Id: zmapServerProtocolHandler.c,v 1.42 2009-06-12 07:49:24 edgrif Exp $ + * CVS info: $Id: zmapServerProtocolHandler.c,v 1.43 2009-06-12 14:00:50 edgrif Exp $ *------------------------------------------------------------------- */ @@ -372,13 +372,20 @@ ZMapThreadReturnCode zMapServerRequestHandler(void **slave_data, case ZMAP_SERVERREQ_GETSERVERINFO: { ZMapServerReqGetServerInfo get_info = (ZMapServerReqGetServerInfo)request_in ; + ZMapServerInfoStruct info = {NULL} ; if ((request->response - = zMapServerGetServerInfo(server, &(get_info->database_path_out))) != ZMAP_SERVERRESPONSE_OK) + = zMapServerGetServerInfo(server, &info)) != ZMAP_SERVERRESPONSE_OK) { *err_msg_out = g_strdup_printf(zMapServerLastErrorMsg(server)) ; thread_rc = ZMAPTHREAD_RETURNCODE_REQFAIL ; } + else + { + get_info->database_name_out = info.database_name ; + get_info->database_title_out = info.database_title ; + get_info->database_path_out = info.database_path ; + } break ; } diff --git a/src/zmapServer/zmapServerPrototype.h b/src/zmapServer/zmapServerPrototype.h index 46047775a..5c9788965 100755 --- a/src/zmapServer/zmapServerPrototype.h +++ b/src/zmapServer/zmapServerPrototype.h @@ -28,9 +28,9 @@ * include this header, its not really for general consumption. * * HISTORY: - * Last edited: Apr 14 14:50 2009 (edgrif) + * Last edited: Jun 12 15:00 2009 (edgrif) * Created: Wed Aug 6 15:48:47 2003 (edgrif) - * CVS info: $Id: zmapServerPrototype.h,v 1.25 2009-04-16 09:11:27 edgrif Exp $ + * CVS info: $Id: zmapServerPrototype.h,v 1.26 2009-06-12 14:00:50 edgrif Exp $ *------------------------------------------------------------------- */ #ifndef ZMAP_SERVER_PROTOTYPEP_H @@ -38,9 +38,18 @@ #include <glib.h> #include <ZMap/zmapFeature.h> +#include <ZMap/zmapServerProtocol.h> + + + +/* Contains information about the server. */ +typedef struct +{ + char *database_name ; + char *database_title ; + char *database_path ; +} ZMapServerInfoStruct, *ZMapServerInfo ; -/* Why is this needed here ?? */ -#include <zmapServer.h> /* is this ok to go here, think about it... */ /* Define function prototypes for generalised server calls, they all go in @@ -54,7 +63,7 @@ typedef gboolean (*ZMapServerCreateFunc)(void **server_conn, typedef ZMapServerResponseType (*ZMapServerOpenFunc)(void *server_conn) ; -typedef ZMapServerResponseType (*ZMapServerGetServerInfo)(void *server_in, char **database_path_out) ; +typedef ZMapServerResponseType (*ZMapServerGetServerInfo)(void *server_in, ZMapServerInfo info) ; typedef ZMapServerResponseType (*ZMapServerGetFeatureSets)(void *server_in, GList **feature_sets_inout, -- GitLab