Happy new year
[pazpar2-moved-to-github.git] / src / session.h
index 0b05afc..a607c77 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of Pazpar2.
-   Copyright (C) 2006-2013 Index Data
+   Copyright (C) Index Data
 
 Pazpar2 is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free
@@ -26,9 +26,8 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 #include <yaz/yaz-ccl.h>
 
 #include "facet_limit.h"
-#include "termlists.h"
+#include "relevance.h"
 #include "reclists.h"
-#include "http.h"
 
 struct record;
 struct client;
@@ -54,15 +53,6 @@ enum pazpar2_error_code {
     PAZPAR2_LAST_ERROR
 };
 
-// Represents a database
-struct database {
-    char *id;
-    int num_settings;
-    struct setting **settings;
-    struct database *next;
-};
-
-
 // Represents a database as viewed from one session, possibly with settings overriden
 // for that session
 struct session_database
@@ -111,6 +101,8 @@ struct session {
     struct named_termlist termlists[SESSION_MAX_TERMLISTS];
     struct relevance *relevance;
     struct reclist *reclist;
+    char *mergekey;
+    char *rank;
     struct session_watchentry watchlist[SESSION_WATCH_MAX + 1];
     int total_records;
     int total_merged;
@@ -155,18 +147,23 @@ struct hitsbytarget {
 struct hitsbytarget *get_hitsbytarget(struct session *s, int *count, NMEM nmem);
 struct session *new_session(NMEM nmem, struct conf_service *service,
                             unsigned session_id);
+int sessions_count(void);
 void session_destroy(struct session *s);
 void session_init_databases(struct session *s);
 void statistics(struct session *s, struct statistics *stat);
 
-void session_sort(struct session *se, struct reclist_sortparms *sp);
+void session_sort(struct session *se, struct reclist_sortparms *sp,
+                  const char *mergekey, const char *rank);
 
 enum pazpar2_error_code session_search(struct session *s, const char *query,
                                        const char *startrecs,
                                        const char *maxrecs,
                                        const char *filter, const char *limit,
                                        const char **addinfo,
-                                       struct reclist_sortparms *sort_parm);
+                                       const char **addinfo2,
+                                       struct reclist_sortparms *sort_parm,
+                                       const char *mergekey,
+                                       const char *rank);
 struct record_cluster **show_range_start(struct session *s,
                                          struct reclist_sortparms *sp,
                                          int start,