xref: /plan9/sys/src/cmd/gs/src/sbcp.h (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
1 /* Copyright (C) 2000 Aladdin Enterprises.  All rights reserved.
2 
3   This software is provided AS-IS with no warranty, either express or
4   implied.
5 
6   This software is distributed under license and may not be copied,
7   modified or distributed except as expressly authorized under the terms
8   of the license contained in the file LICENSE in this distribution.
9 
10   For more information about licensing, please refer to
11   http://www.ghostscript.com/licensing/. For information on
12   commercial licensing, go to http://www.artifex.com/licensing/ or
13   contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14   San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15 */
16 
17 /* $Id: sbcp.h,v 1.5 2002/06/16 05:00:54 lpd Exp $ */
18 /* Interface to [T]BCP streams */
19 
20 #ifndef sbcp_INCLUDED
21 #  define sbcp_INCLUDED
22 
23 /* (T)BCPEncode */
24 /* (no state) */
25 extern const stream_template s_BCPE_template;
26 extern const stream_template s_TBCPE_template;
27 
28 /* (T)BCPDecode */
29 typedef struct stream_BCPD_state_s {
30     stream_state_common;
31     /* The client sets the following before initialization. */
32     int (*signal_interrupt) (stream_state *);
33     int (*request_status) (stream_state *);
34     /* The following are updated dynamically. */
35     bool escaped;
36     int matched;		/* TBCP only */
37     int copy_count;		/* TBCP only */
38     const byte *copy_ptr;	/* TBCP only */
39 } stream_BCPD_state;
40 
41 #define private_st_BCPD_state()	/* in sbcp.c */\
42   gs_private_st_simple(st_BCPD_state, stream_BCPD_state, "(T)BCPDecode state")
43 extern const stream_template s_BCPD_template;
44 extern const stream_template s_TBCPD_template;
45 
46 #endif /* sbcp_INCLUDED */
47