1 /*
2  * Mini-daemon utility definitions for CUPS.
3  *
4  * Copyright 2007-2014 by Apple Inc.
5  * Copyright 1997-2005 by Easy Software Products.
6  *
7  * Licensed under Apache License v2.0.  See the file "LICENSE" for more information.
8  */
9 
10 #ifndef _CUPSD_UTIL_H_
11 #  define _CUPSD_UTIL_H_
12 
13 /*
14  * Include necessary headers...
15  */
16 
17 #  include <cups/array-private.h>
18 #  include <cups/file-private.h>
19 #  include <signal.h>
20 
21 
22 /*
23  * C++ magic...
24  */
25 
26 #  ifdef __cplusplus
27 extern "C" {
28 #  endif /* __cplusplus */
29 
30 
31 /*
32  * Types...
33  */
34 
35 typedef int (*cupsd_compare_func_t)(const void *, const void *);
36 
37 
38 /*
39  * Prototypes...
40  */
41 
42 extern int		cupsdCompareNames(const char *s, const char *t);
43 extern cups_array_t	*cupsdCreateStringsArray(const char *s);
44 extern int		cupsdExec(const char *command, char **argv);
45 extern cups_file_t	*cupsdPipeCommand(int *pid, const char *command,
46 			                  char **argv, uid_t user);
47 extern void		cupsdSendIPPGroup(ipp_tag_t group_tag);
48 extern void		cupsdSendIPPHeader(ipp_status_t status_code,
49 			                   int request_id);
50 extern void		cupsdSendIPPInteger(ipp_tag_t value_tag,
51 			                    const char *name, int value);
52 extern void		cupsdSendIPPString(ipp_tag_t value_tag,
53 			                   const char *name, const char *value);
54 extern void		cupsdSendIPPTrailer(void);
55 
56 
57 #  ifdef __cplusplus
58 }
59 #  endif /* __cplusplus */
60 
61 #endif /* !_CUPSD_UTIL_H_ */
62