security/manager/pki/src/nsASN1Tree.h

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:1f33a8c06571
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 #ifndef _NSSASNTREE_H_
5 #define _NSSASNTREE_H_
6
7 #include "nscore.h"
8 #include "nsIX509Cert.h"
9 #include "nsIASN1Tree.h"
10 #include "nsIASN1Object.h"
11 #include "nsIASN1Sequence.h"
12 #include "nsITreeView.h"
13 #include "nsITreeBoxObject.h"
14 #include "nsITreeSelection.h"
15 #include "nsCOMPtr.h"
16
17 //4bfaa9f0-1dd2-11b2-afae-a82cbaa0b606
18 #define NS_NSSASN1OUTINER_CID { \
19 0x4bfaa9f0, \
20 0x1dd2, \
21 0x11b2, \
22 {0xaf,0xae,0xa8,0x2c,0xba,0xa0,0xb6,0x06} \
23 }
24
25
26 class nsNSSASN1Tree : public nsIASN1Tree
27 {
28 public:
29 NS_DECL_THREADSAFE_ISUPPORTS
30 NS_DECL_NSIASN1TREE
31 NS_DECL_NSITREEVIEW
32
33 nsNSSASN1Tree();
34 virtual ~nsNSSASN1Tree();
35 protected:
36
37 class myNode
38 {
39 public:
40 nsCOMPtr<nsIASN1Object> obj;
41 nsCOMPtr<nsIASN1Sequence> seq;
42 myNode *child;
43 myNode *next;
44 myNode *parent;
45
46 myNode() {
47 child = next = parent = nullptr;
48 }
49 };
50
51 myNode *mTopNode;
52
53 nsCOMPtr<nsIASN1Object> mASN1Object;
54 nsCOMPtr<nsITreeSelection> mSelection;
55 nsCOMPtr<nsITreeBoxObject> mTree;
56
57 void InitNodes();
58 void InitChildsRecursively(myNode *n);
59
60 void ClearNodes();
61 void ClearNodesRecursively(myNode *n);
62
63 int32_t CountVisibleNodes(myNode *n);
64 myNode *FindNodeFromIndex(myNode *n, int32_t wantedIndex,
65 int32_t &index_counter, int32_t &level_counter,
66 int32_t *optionalOutParentIndex, int32_t *optionalOutLevel);
67 myNode *FindNodeFromIndex(int32_t wantedIndex,
68 int32_t *optionalOutParentIndex = nullptr,
69 int32_t *optionalOutLevel = nullptr);
70
71 };
72 #endif //_NSSASNTREE_H_

mercurial