dthelp: Change to ANSI function definitions
[oweals/cde.git] / cde / programs / dtmail / libDtMail / RFC / SunV3.hh
1 /*
2  * CDE - Common Desktop Environment
3  *
4  * Copyright (c) 1993-2012, The Open Group. All rights reserved.
5  *
6  * These libraries and programs are free software; you can
7  * redistribute them and/or modify them under the terms of the GNU
8  * Lesser General Public License as published by the Free Software
9  * Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * These libraries and programs are distributed in the hope that
13  * they will be useful, but WITHOUT ANY WARRANTY; without even the
14  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15  * PURPOSE. See the GNU Lesser General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with these libraries and programs; if not, write
20  * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21  * Floor, Boston, MA 02110-1301 USA
22  */
23 /*
24  *+SNOTICE
25  *
26  *
27  *      $XConsortium: SunV3.hh /main/4 1996/04/21 19:50:07 drk $
28  *
29  *      RESTRICTED CONFIDENTIAL INFORMATION:
30  *      
31  *      The information in this document is subject to special
32  *      restrictions in a confidential disclosure agreement bertween
33  *      HP, IBM, Sun, USL, SCO and Univel.  Do not distribute this
34  *      document outside HP, IBM, Sun, USL, SCO, or Univel wihtout
35  *      Sun's specific written approval.  This documment and all copies
36  *      and derivative works thereof must be returned or destroyed at
37  *      Sun's request.
38  *
39  *      Copyright 1993 Sun Microsystems, Inc.  All rights reserved.
40  *
41  *+ENOTICE
42  */
43
44 #ifndef _SUNV3_HH
45 #define _SUNV3_HH
46
47 #include "RFCFormat.hh"
48
49 class SunV3 : public RFCFormat {
50   public:
51     SunV3(DtMail::Session *);
52     ~SunV3(void);
53
54
55     static void decode(const char * enc_info, 
56                        char ** outputBp, 
57                        int & outputLen, 
58                        const char * inputBp, 
59                        const unsigned long inputLen);
60     static void encode(Buffer & buf,
61                        const char * path,
62                        const char * bp, 
63                        const unsigned long len);
64
65   protected:
66     virtual void formatBodies(DtMailEnv & error,
67                               DtMail::Message & msg,
68                               DtMailBoolean include_content_length,
69                               char ** extra_headers,
70                               Buffer & buf);
71
72     virtual void formatHeaders(DtMailEnv & error,
73                                DtMail::Message & msg,
74                                DtMailBoolean include_unix_from,
75                                const char * extra_headers,
76                                Buffer & buf);
77
78   private:
79
80     static int uudecode(char ** outputBp, 
81                          int & outputLen, 
82                          const char * inputBp, 
83                          const unsigned long inputLen);
84
85     static int uncompress(char ** outputBp, 
86                          int & outputLen, 
87                          const char * inputBp, 
88                          const unsigned long inputLen);
89
90     void encode_uue_line(Buffer & buf,
91                      const unsigned char * unencodedBp,
92                      const unsigned long unencodedLen);
93
94     void uuencode(Buffer & buf,
95                   const char * path,
96                   const char * bp,
97                   const unsigned long len);
98     
99     void getV3Type(DtMail::BodyPart *, char *);
100 };
101
102 #endif