Add GNU LGPL headers to all .c .C and .h files
[oweals/cde.git] / cde / programs / dtsearchpath / libCliSrv / TTFile.h
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 librararies 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 /* $XConsortium: TTFile.h /main/3 1995/11/03 12:33:57 rswiston $ */
24 /*******************************************************************
25 **  (c) Copyright Hewlett-Packard Company, 1990, 1991, 1992, 1993.
26 **  All rights are reserved.  Copying or other reproduction of this
27 **  program except for archival purposes is prohibited without prior
28 **  written consent of Hewlett-Packard Company.
29 ********************************************************************
30 ****************************<+>*************************************/
31
32 #ifndef _TTFILE_H_
33 #define _TTFILE_H_
34
35 #include "cstring.h"
36 #include "Tt/tt_c.h"
37
38 #ifdef HAS_EXCEPTIONS
39 #define Throw(ex)  throw ex
40 #define Try try
41 #define Catch(type,file) catch(type ex)
42 #else
43 #define Throw(ex)  { ex; return; }
44 #define Try
45 #define Catch(type,file)  if (file->ttFileOpFailed())
46 #endif
47  
48 class TTFile : public CString {
49  public:
50   TTFile () : status(TT_OK) {}
51   TTFile (const CString &, const CString &);
52   TTFile (const TTFile &);
53   ~TTFile();
54
55   TTFile & operator=(const TTFile &);
56
57 #ifdef HAS_EXCEPTIONS
58   class TT_Exception {
59    public:
60     TT_Exception (char * str) 
61       { cerr << tt_status_message(tt_pointer_error(str)); }
62     ~TT_Exception() {}
63     
64     friend ostream & operator<< (ostream &, TTFile &);
65   };
66 #else
67   void TT_Exception (char *);
68   friend ostream & operator<< (ostream &, TTFile &);
69 #endif
70
71   int  ttFileOpFailed () { return status != TT_OK; }
72   Tt_status getStatus()  { return status; }
73
74  private:
75   Tt_status status;
76 };
77 #endif