1 /* GNU Mailutils -- a suite of utilities for electronic mail
2    Copyright (C) 2009-2021 Free Software Foundation, Inc.
3 
4    This library is free software; you can redistribute it and/or modify
5    it under the terms of the GNU Lesser General Public License as published by
6    the Free Software Foundation; either version 3, or (at your option)
7    any later version.
8 
9    This library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    GNU Lesser General Public License for more details.
13 
14    You should have received a copy of the GNU Lesser General Public License
15    along with GNU Mailutils.  If not, see <http://www.gnu.org/licenses/>. */
16 
17 #ifndef _MAILUTILS_SYS_FILE_STREAM_H
18 #define _MAILUTILS_SYS_FILE_STREAM_H
19 
20 #include <mailutils/types.h>
21 #include <mailutils/stream.h>
22 #include <mailutils/sys/stream.h>
23 
24 #define _MU_FILE_STREAM_TEMP        0x01
25 #define _MU_FILE_STREAM_ECHO_OFF    0x02
26 #define _MU_FILE_STREAM_FD_BORROWED 0x04
27 #define _MU_FILE_STREAM_STATIC_FILENAME 0x08
28 
29 struct _mu_file_stream
30 {
31   struct _mu_stream stream;
32   int fd;
33   int flags;
34   char *filename;
35   void *echo_state;
36 };
37 
38 int _mu_file_stream_create (struct _mu_file_stream **pstream, size_t size,
39 			    const char *filename, int fd, int flags);
40 void _mu_file_stream_setup (struct _mu_file_stream *str);
41 
42 #endif
43