37a331259beee4fa8ebe7aa7f4d5b9d765a14c7f kent Thu Jan 6 15:45:34 2011 -0800 Starting to make hgHubConnect talk with hgTracks and hgTrackUi. Right now the tracks appear on the track list, but are not displaying properly. diff --git src/hg/inc/hubConnect.h src/hg/inc/hubConnect.h index a239988..93cdb95 100644 --- src/hg/inc/hubConnect.h +++ src/hg/inc/hubConnect.h @@ -1,19 +1,67 @@ /* hubConnect - stuff to manage connections to track hubs. Most of this is mediated through * the hubConnect table in the hgCentral database. Here there are routines to translate between * hub symbolic names and hub URLs, to see if a hub is up or down or sideways (up but badly * formatted) etc. Note that there is no C structure corresponding to a row in the hubConnect * table by design. We just want field-by-field access to this. */ #ifndef HUBCONNECT_H #define HUBCONNECT_H #define hubConnectTableName "hubConnect" /* Name of our table. */ +#define hubTrackPrefix "hub_" +/* The names of all hub tracks begin with this. Use in cart. */ + +boolean isHubTrack(char *trackName); +/* Return TRUE if it's a hub track. */ + +struct hubConnectStatus +/* Basic status on hubConnect. Note it is *not* the same as the + * hubConnect table, that has a bunch of extra fields to help + * keep track of whether the hub is alive. */ + { + struct hubConnectStatus *next; + int id; /* Hub ID */ + char *shortLabel; /* Hub short label. */ + char *longLabel; /* Hub long label. */ + char *hubUrl; /* URL to hub.ra file. */ + char *errorMessage; /* If non-empty hub has an error and this describes it. */ + unsigned dbCount; /* Number of databases hub has data for. */ + char **dbArray; /* Array of databases hub has data for. */ + }; + +void hubConnectStatusFree(struct hubConnectStatus **pHub); +/* Free hubConnectStatus */ + +void hubConnectStatusFreeList(struct hubConnectStatus **pList); +/* Free a list of dynamically allocated hubConnectStatus's */ + +struct hubConnectStatus *hubConnectStatusForId(struct sqlConnection *conn, int id); +/* Given a hub ID return associated status. */ + +struct hubConnectStatus *hubConnectStatusFromCart(struct cart *cart); +/* Return list of track hubs that are turned on by user in cart. */ + +#define hubConnectTrackHubsVarName "trackHubs" +/* Name of cart variable with list of track hubs. */ + #define hgHubConnectCgiDestUrl "hgHubConnect.destUrl" /* Cart variable to tell hgHubConnect where to go on submit. */ +#define hgHubConnectRemakeTrackHub "hgHubConnect.remakeTrackHub" +/* Cart variable to indicate trackHub cart variable needs refreshing. */ + +#define hgHubConnectHubVarPrefix "hgHubConnect.hub." +/* Prefix to temporary variable holding selected cart names. */ + boolean hubConnectTableExists(); /* Return TRUE if the hubConnect table exists. */ +struct slName *hubConnectHubsInCart(struct cart *cart); +/* Return list of track hub ids that are turned on by user. */ + +int hubIdFromTrackName(char *trackName); +/* Given something like "hub_123_myWig" return 123 */ + #endif /* HUBCONNECT_H */