1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
/*
* DO NOT EDIT. THIS FILE IS GENERATED FROM c:/mozilla/security/manager/ssl/public/nsIASN1Sequence.idl
*/
#ifndef __gen_nsIASN1Sequence_h__
#define __gen_nsIASN1Sequence_h__
#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif
#ifndef __gen_nsIASN1Object_h__
#include "nsIASN1Object.h"
#endif
/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIMutableArray; /* forward declaration */
/* starting interface: nsIASN1Sequence */
#define NS_IASN1SEQUENCE_IID_STR "b6b957e6-1dd1-11b2-89d7-e30624f50b00"
#define NS_IASN1SEQUENCE_IID \
{0xb6b957e6, 0x1dd1, 0x11b2, \
{ 0x89, 0xd7, 0xe3, 0x06, 0x24, 0xf5, 0x0b, 0x00 }}
/**
* This represents a sequence of ASN.1 objects,
* where ASN.1 is "Abstract Syntax Notation number One".
*
* Overview of how this ASN1 interface is intended to
* work.
*
* First off, the nsIASN1Sequence is any type in ASN1
* that consists of sub-elements (ie SEQUENCE, SET)
* nsIASN1Printable Items are all the other types that
* can be viewed by themselves without interpreting further.
* Examples would include INTEGER, UTF-8 STRING, OID.
* These are not intended to directly reflect the numberous
* types that exist in ASN1, but merely an interface to ease
* producing a tree display the ASN1 structure of any DER
* object.
*
* The additional state information carried in this interface
* makes it fit for being used as the data structure
* when working with visual reprenstation of ASN.1 objects
* in a human user interface, like in a tree widget
* where open/close state of nodes must be remembered.
*
* @status FROZEN
*/
class NS_NO_VTABLE nsIASN1Sequence : public nsIASN1Object {
public:
NS_DEFINE_STATIC_IID_ACCESSOR(NS_IASN1SEQUENCE_IID)
/**
* The array of objects stored in the sequence.
*/
/* attribute nsIMutableArray ASN1Objects; */
NS_IMETHOD GetASN1Objects(nsIMutableArray * *aASN1Objects) = 0;
NS_IMETHOD SetASN1Objects(nsIMutableArray * aASN1Objects) = 0;
/**
* Whether the node at this position in the ASN.1 data structure
* sequence contains sub elements understood by the
* application.
*/
/* attribute boolean isValidContainer; */
NS_IMETHOD GetIsValidContainer(PRBool *aIsValidContainer) = 0;
NS_IMETHOD SetIsValidContainer(PRBool aIsValidContainer) = 0;
/**
* Whether the contained objects should be shown or hidden.
* A UI implementation can use this flag to store the current
* expansion state when shown in a tree widget.
*/
/* attribute boolean isExpanded; */
NS_IMETHOD GetIsExpanded(PRBool *aIsExpanded) = 0;
NS_IMETHOD SetIsExpanded(PRBool aIsExpanded) = 0;
};
/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIASN1SEQUENCE \
NS_IMETHOD GetASN1Objects(nsIMutableArray * *aASN1Objects); \
NS_IMETHOD SetASN1Objects(nsIMutableArray * aASN1Objects); \
NS_IMETHOD GetIsValidContainer(PRBool *aIsValidContainer); \
NS_IMETHOD SetIsValidContainer(PRBool aIsValidContainer); \
NS_IMETHOD GetIsExpanded(PRBool *aIsExpanded); \
NS_IMETHOD SetIsExpanded(PRBool aIsExpanded);
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIASN1SEQUENCE(_to) \
NS_IMETHOD GetASN1Objects(nsIMutableArray * *aASN1Objects) { return _to GetASN1Objects(aASN1Objects); } \
NS_IMETHOD SetASN1Objects(nsIMutableArray * aASN1Objects) { return _to SetASN1Objects(aASN1Objects); } \
NS_IMETHOD GetIsValidContainer(PRBool *aIsValidContainer) { return _to GetIsValidContainer(aIsValidContainer); } \
NS_IMETHOD SetIsValidContainer(PRBool aIsValidContainer) { return _to SetIsValidContainer(aIsValidContainer); } \
NS_IMETHOD GetIsExpanded(PRBool *aIsExpanded) { return _to GetIsExpanded(aIsExpanded); } \
NS_IMETHOD SetIsExpanded(PRBool aIsExpanded) { return _to SetIsExpanded(aIsExpanded); }
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIASN1SEQUENCE(_to) \
NS_IMETHOD GetASN1Objects(nsIMutableArray * *aASN1Objects) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetASN1Objects(aASN1Objects); } \
NS_IMETHOD SetASN1Objects(nsIMutableArray * aASN1Objects) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetASN1Objects(aASN1Objects); } \
NS_IMETHOD GetIsValidContainer(PRBool *aIsValidContainer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsValidContainer(aIsValidContainer); } \
NS_IMETHOD SetIsValidContainer(PRBool aIsValidContainer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsValidContainer(aIsValidContainer); } \
NS_IMETHOD GetIsExpanded(PRBool *aIsExpanded) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsExpanded(aIsExpanded); } \
NS_IMETHOD SetIsExpanded(PRBool aIsExpanded) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsExpanded(aIsExpanded); }
#if 0
/* Use the code below as a template for the implementation class for this interface. */
/* Header file */
class nsASN1Sequence : public nsIASN1Sequence
{
public:
NS_DECL_ISUPPORTS
NS_DECL_NSIASN1SEQUENCE
nsASN1Sequence();
private:
~nsASN1Sequence();
protected:
/* additional members */
};
/* Implementation file */
NS_IMPL_ISUPPORTS1(nsASN1Sequence, nsIASN1Sequence)
nsASN1Sequence::nsASN1Sequence()
{
/* member initializers and constructor code */
}
nsASN1Sequence::~nsASN1Sequence()
{
/* destructor code */
}
/* attribute nsIMutableArray ASN1Objects; */
NS_IMETHODIMP nsASN1Sequence::GetASN1Objects(nsIMutableArray * *aASN1Objects)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsASN1Sequence::SetASN1Objects(nsIMutableArray * aASN1Objects)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* attribute boolean isValidContainer; */
NS_IMETHODIMP nsASN1Sequence::GetIsValidContainer(PRBool *aIsValidContainer)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsASN1Sequence::SetIsValidContainer(PRBool aIsValidContainer)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* attribute boolean isExpanded; */
NS_IMETHODIMP nsASN1Sequence::GetIsExpanded(PRBool *aIsExpanded)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsASN1Sequence::SetIsExpanded(PRBool aIsExpanded)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* End of implementation class template. */
#endif
#endif /* __gen_nsIASN1Sequence_h__ */
|