You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
2.2 KiB

//
// ResultMatch.h
//
// ResultMatch: Contains information related to a given
// document that was matched by a search. For instance, the
// score of the document for this search. Similar to the
// DocMatch class but designed for result display purposes.
//
// Part of the ht://Dig package <http://www.htdig.org/>
// Copyright (c) 1995-2004 The ht://Dig Group
// For copyright details, see the file COPYING in your distribution
// or the GNU Library General Public License (LGPL) version 2 or later
// <http://www.gnu.org/copyleft/lgpl.html>
//
// $Id: ResultMatch.h,v 1.11 2004/05/28 13:15:24 lha Exp $
//
#ifndef _ResultMatch_h_
#define _ResultMatch_h_
#include "Object.h"
#include "htString.h"
class DocumentRef;
class Collection;
class ResultMatch : public Object
{
public:
//
// Construction/Destruction
//
ResultMatch();
~ResultMatch();
static ResultMatch *create();
//
// Data access members
//
void setAnchor(int a) {anchor = a;}
void setID(int i) {id = i;}
void setScore(double s) {score = s;}
int getAnchor() {return anchor;}
double getScore() {return score;}
int getID() {return id;}
// Multiple database support
void setCollection(Collection *coll) { collection = coll; }
Collection *getCollection() { return collection; }
static int setSortType(const String& sorttype);
// A method for each type of data Display wants to cram in.
// Will only store the pieces necessary for the
// search-type as defined in setSortType, the others are dummies.
virtual char *getTitle();
virtual time_t getTime();
virtual void setTitle(char *title);
virtual void setTime(time_t t);
// This is likely to help weak compilers as well as the eye.
typedef int (*CmpFun)(const void *, const void *);
// The purpose of the derived classes is to define their own.
virtual CmpFun getSortFun() = 0;
// Sun's C++ compiler doesn't like private types used in other structs
// so make this public
enum SortType
{
SortByScore,
SortByTime,
SortByTitle,
SortByID
};
private:
double score;
int anchor;
int id;
Collection *collection;
static SortType mySortType;
};
#endif