1/*
2 * "$Id: help-index.h 11093 2013-07-03 20:48:42Z msweet $"
3 *
4 *   Online help index definitions for CUPS.
5 *
6 *   Copyright 2007-2011 by Apple Inc.
7 *   Copyright 1997-2007 by Easy Software Products.
8 *
9 *   These coded instructions, statements, and computer programs are the
10 *   property of Apple Inc. and are protected by Federal copyright
11 *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
12 *   which should have been included with this file.  If this file is
13 *   file is missing or damaged, see the license at "http://www.cups.org/".
14 */
15
16#ifndef _CUPS_HELP_INDEX_H_
17#  define _CUPS_HELP_INDEX_H_
18
19/*
20 * Include necessary headers...
21 */
22
23#  include <cups/array.h>
24
25
26/*
27 * C++ magic...
28 */
29
30#  ifdef __cplusplus
31extern "C" {
32#  endif /* __cplusplus */
33
34/*
35 * Data structures...
36 */
37
38typedef struct help_word_s		/**** Help word structure... ****/
39{
40  int		count;			/* Number of occurrences */
41  char		*text;			/* Word text */
42} help_word_t;
43
44typedef struct help_node_s		/**** Help node structure... ****/
45{
46  char		*filename;		/* Filename, relative to help dir */
47  char		*section;		/* Section name (NULL if none) */
48  char		*anchor;		/* Anchor name (NULL if none) */
49  char		*text;			/* Text in anchor */
50  cups_array_t	*words;			/* Words after this node */
51  time_t	mtime;			/* Last modification time */
52  off_t		offset;			/* Offset in file */
53  size_t	length;			/* Length in bytes */
54  int		score;			/* Search score */
55} help_node_t;
56
57typedef struct help_index_s		/**** Help index structure ****/
58{
59  int		search;			/* 1 = search index, 0 = normal */
60  cups_array_t	*nodes;			/* Nodes sorted by filename */
61  cups_array_t	*sorted;		/* Nodes sorted by score + text */
62} help_index_t;
63
64
65/*
66 * Functions...
67 */
68
69extern void		helpDeleteIndex(help_index_t *hi);
70extern help_node_t	*helpFindNode(help_index_t *hi, const char *filename,
71			              const char *anchor);
72extern help_index_t	*helpLoadIndex(const char *hifile, const char *directory);
73extern int		helpSaveIndex(help_index_t *hi, const char *hifile);
74extern help_index_t	*helpSearchIndex(help_index_t *hi, const char *query,
75			                 const char *section,
76					 const char *filename);
77
78
79#  ifdef __cplusplus
80}
81#  endif /* __cplusplus */
82
83#endif /* !_CUPS_HELP_INDEX_H_ */
84
85/*
86 * End of "$Id: help-index.h 11093 2013-07-03 20:48:42Z msweet $".
87 */
88