]>
Commit | Line | Data |
---|---|---|
bac41a7b A |
1 | /* |
2 | * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved. | |
3 | * | |
4 | * The contents of this file constitute Original Code as defined in and are | |
5 | * subject to the Apple Public Source License Version 1.2 (the 'License'). | |
6 | * You may not use this file except in compliance with the License. Please obtain | |
7 | * a copy of the License at http://www.apple.com/publicsource and read it before | |
8 | * using this file. | |
9 | * | |
10 | * This Original Code and all software distributed under the License are | |
11 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS | |
12 | * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT | |
13 | * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR | |
14 | * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the | |
15 | * specific language governing rights and limitations under the License. | |
16 | */ | |
17 | ||
18 | ||
19 | // file: .../c++-lib/inc/asn-bool.h - c++ version of ASN.1 integer | |
20 | // | |
21 | // MS 92/06/15 | |
22 | // Copyright (C) 1992 Michael Sample and the University of British Columbia | |
23 | // | |
24 | // This library is free software; you can redistribute it and/or | |
25 | // modify it provided that this copyright/license information is retained | |
26 | // in original form. | |
27 | // | |
28 | // If you modify this file, you must clearly indicate your changes. | |
29 | // | |
30 | // This source code is distributed in the hope that it will be | |
31 | // useful, but WITHOUT ANY WARRANTY; without even the implied warranty | |
32 | // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
33 | // | |
34 | // | |
35 | // ------------------------------------------------------------------------ | |
36 | // - J.G. Van Dyke & Associates, Inc. Modification History of SNACC 1.3 - | |
37 | // ------------------------------------------------------------------------ | |
38 | // | |
39 | // All modification are relative to the v1.3 of SNACC. We used SunOS 4.1.3's | |
40 | // SCCS. The revision #'s start at 1.1, which is the original version from | |
41 | // SNACC 1.3. | |
42 | // | |
43 | // | |
44 | // ../SCCS/s.asn-bool.h: | |
45 | // | |
46 | // D 1.2 98/04/24 22:40:40 pleonber 2 1 00002/00000/00118 | |
47 | // added INSERT_VDA_COMMENTS for script that adds SCCS history | |
48 | // | |
49 | // D 1.1 97/11/11 15:48:58 cmmaster 1 0 00118/00000/00000 | |
50 | // date and time created 97/11/11 15:48:58 by cmmaster | |
51 | // | |
52 | // ----------------------- End of VDA Modifications --------------------------- | |
53 | // | |
54 | // | |
55 | // | |
a66d0d4a | 56 | // $Header: /cvs/root/Security/SecuritySNACCRuntime/c++-lib/inc/Attic/asn-bool.h,v 1.1.1.1 2001/05/18 23:14:06 mb Exp $ |
bac41a7b A |
57 | // $Log: asn-bool.h,v $ |
58 | // Revision 1.1.1.1 2001/05/18 23:14:06 mb | |
59 | // Move from private repository to open source repository | |
60 | // | |
61 | // Revision 1.3 2001/05/05 00:59:17 rmurphy | |
62 | // Adding darwin license headers | |
63 | // | |
64 | // Revision 1.2 2000/06/15 18:48:23 dmitch | |
65 | // Snacc-generated source files, now part of CVS tree to allow for cross-platform build of snaccRuntime. | |
66 | // | |
67 | // Revision 1.1.1.1 2000/03/09 01:00:05 rmurphy | |
68 | // Base Fortissimo Tree | |
69 | // | |
70 | // Revision 1.2 1999/03/21 02:07:32 mb | |
71 | // Added Copy to every AsnType. | |
72 | // | |
73 | // Revision 1.1 1999/02/25 05:21:41 mb | |
74 | // Added snacc c++ library | |
75 | // | |
76 | // Revision 1.8 1995/09/07 18:45:13 rj | |
77 | // use AsnBoolTypeDesc instead of AsnTypeDesc (no real difference, it is the same type). | |
78 | // | |
79 | // Revision 1.7 1995/07/24 17:53:54 rj | |
80 | // #if TCL ... #endif wrapped into #if META ... #endif | |
81 | // | |
82 | // changed `_' to `-' in file names. | |
83 | // | |
84 | // Revision 1.6 1995/02/18 19:17:19 rj | |
85 | // add TRUE/FALSE for backwards compatibility. | |
86 | // | |
87 | // Revision 1.5 1995/02/18 12:41:31 rj | |
88 | // a few more lines for the sake of backwards compatibility. | |
89 | // | |
90 | // Revision 1.4 1994/10/08 04:17:58 rj | |
91 | // code for meta structures added (provides information about the generated code itself). | |
92 | // | |
93 | // code for Tcl interface added (makes use of the above mentioned meta code). | |
94 | // | |
95 | // virtual inline functions (the destructor, the Clone() function, BEnc(), BDec() and Print()) moved from inc/*.h to src/*.C because g++ turns every one of them into a static non-inline function in every file where the .h file gets included. | |
96 | // | |
97 | // made Print() const (and some other, mainly comparison functions). | |
98 | // | |
99 | // several `unsigned long int' turned into `size_t'. | |
100 | // | |
101 | // Revision 1.3 1994/08/31 23:32:13 rj | |
102 | // use the bool built-in where applicable, and a replacement type otherwise. | |
103 | // | |
104 | // Revision 1.2 1994/08/28 10:00:45 rj | |
105 | // comment leader fixed. | |
106 | // | |
107 | // Revision 1.1 1994/08/28 09:20:27 rj | |
108 | // first check-in. for a list of changes to the snacc-1.1 distribution please refer to the ChangeLog. | |
109 | ||
110 | #ifndef _asn_bool_h_ | |
111 | #define _asn_bool_h_ | |
112 | ||
113 | #if GLASS | |
114 | // for backwards compatibility: | |
115 | #ifndef FALSE | |
116 | enum { FALSE = false, TRUE = true }; | |
117 | #endif | |
118 | #endif // GLASS | |
119 | ||
120 | class AsnBool: public AsnType | |
121 | { | |
122 | protected: | |
123 | ||
124 | // for backwards compatibility: | |
125 | #if GLASS | |
126 | #if BOOL_BUILTIN | |
127 | typedef bool _bool; | |
128 | #else | |
129 | enum | |
130 | { | |
131 | false = ::false, | |
132 | true = ::true | |
133 | }; | |
134 | #endif | |
135 | #endif | |
136 | ||
137 | bool value; | |
138 | ||
139 | public: | |
140 | AsnBool (const bool val): | |
141 | #if BOOL_BUILTIN | |
142 | value (val) | |
143 | #else | |
144 | value (!!val) | |
145 | #endif | |
146 | {} | |
147 | AsnBool() {} | |
148 | ||
149 | virtual AsnType *Clone() const; | |
150 | virtual AsnType *Copy() const; | |
151 | ||
152 | operator bool() const { return value; } | |
153 | AsnBool &operator = (bool newvalue) { value = newvalue; return *this; } | |
154 | ||
155 | AsnLen BEnc (BUF_TYPE b); | |
156 | void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env); | |
157 | ||
158 | AsnLen BEncContent (BUF_TYPE b); | |
159 | void BDecContent (BUF_TYPE b, AsnTag tagId, AsnLen elmtLen, AsnLen &bytesDecoded, ENV_TYPE env); | |
160 | ||
161 | PDU_MEMBER_MACROS | |
162 | ||
163 | void Print (ostream &) const; | |
164 | ||
165 | #if META | |
166 | static const AsnBoolTypeDesc _desc; | |
167 | ||
168 | const AsnTypeDesc *_getdesc() const; | |
169 | ||
170 | #if TCL | |
171 | int TclGetVal (Tcl_Interp *) const; | |
172 | int TclSetVal (Tcl_Interp *, const char *val); | |
173 | #endif // TCL | |
174 | #endif // META | |
175 | }; | |
176 | ||
177 | #endif // conditional include |