Initial IBM OpenAFS 1.0 tree
[openafs.git] / src / WINNT / afsclass / c_identlist.cpp
1 extern "C" {
2 #include <afs/param.h>
3 #include <afs/stds.h>
4 }
5
6 #include <WINNT/afsclass.h>
7 #include "internal.h"
8
9
10 /*
11  * IDENTLIST CLASS ____________________________________________________________
12  *
13  */
14
15 IDENTLIST::IDENTLIST (void)
16 {
17    m_lIdents = New (HASHLIST);
18 }
19
20
21 IDENTLIST::~IDENTLIST (void)
22 {
23    if (m_lIdents)
24       Delete (m_lIdents);
25    m_lIdents = NULL;
26 }
27
28
29 void IDENTLIST::Add (LPIDENT lpi)
30 {
31    m_lIdents->AddUnique (lpi);
32 }
33
34
35 void IDENTLIST::Remove (LPIDENT lpi)
36 {
37    m_lIdents->Remove (lpi);
38 }
39
40
41 void IDENTLIST::RemoveAll (void)
42 {
43    LPIDENT lpi;
44    while ((lpi = (LPIDENT)m_lIdents->GetFirstObject()) != NULL)
45       m_lIdents->Remove (lpi);
46 }
47
48
49 void IDENTLIST::CopyFrom (LPIDENTLIST pil)
50 {
51    RemoveAll();
52
53    HENUM hEnum;
54    for (LPIDENT lpi = pil->FindFirst (&hEnum); lpi; lpi = pil->FindNext (&hEnum))
55       Add (lpi);
56 }
57
58
59 size_t IDENTLIST::GetCount (void)
60 {
61    return m_lIdents->GetCount();
62 }
63
64
65 BOOL IDENTLIST::fIsInList (LPIDENT lpi)
66 {
67    return m_lIdents->fIsInList (lpi);
68 }
69
70
71 LPIDENT IDENTLIST::FindFirst (HENUM *phEnum)
72 {
73    LPIDENT lpi = NULL;
74    if ((*phEnum = m_lIdents->FindFirst()) != NULL)
75       lpi = (LPIDENT)( (*phEnum)->GetObject() );
76    return lpi;
77 }
78
79
80 LPIDENT IDENTLIST::FindNext (HENUM *phEnum)
81 {
82    LPIDENT lpi = NULL;
83
84    if ((*phEnum) && ((*phEnum = (*phEnum)->FindNext()) != NULL))
85       lpi = (LPIDENT)( (*phEnum)->GetObject() );
86
87    return lpi;
88 }
89
90
91 void IDENTLIST::FindClose (HENUM *phEnum)
92 {
93    if (*phEnum)
94       {
95       Delete (*phEnum);
96       *phEnum = NULL;
97       }
98 }
99