d0be2fe3239652cc1211ef361a24d3e5ce2b208a
[openafs.git] / src / WINNT / afsclass / c_identlist.cpp
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  * 
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 #include <winsock2.h>
11 #include <ws2tcpip.h>
12
13 extern "C" {
14 #include <afs/param.h>
15 #include <afs/stds.h>
16 }
17
18 #include <WINNT/afsclass.h>
19 #include "internal.h"
20
21
22 /*
23  * IDENTLIST CLASS ____________________________________________________________
24  *
25  */
26
27 IDENTLIST::IDENTLIST (void)
28 {
29    m_lIdents = New (HASHLIST);
30 }
31
32
33 IDENTLIST::~IDENTLIST (void)
34 {
35    if (m_lIdents)
36       Delete (m_lIdents);
37    m_lIdents = NULL;
38 }
39
40
41 void IDENTLIST::Add (LPIDENT lpi)
42 {
43    m_lIdents->AddUnique (lpi);
44 }
45
46
47 void IDENTLIST::Remove (LPIDENT lpi)
48 {
49    m_lIdents->Remove (lpi);
50 }
51
52
53 void IDENTLIST::RemoveAll (void)
54 {
55    LPIDENT lpi;
56    while ((lpi = (LPIDENT)m_lIdents->GetFirstObject()) != NULL)
57       m_lIdents->Remove (lpi);
58 }
59
60
61 void IDENTLIST::CopyFrom (LPIDENTLIST pil)
62 {
63    RemoveAll();
64
65    HENUM hEnum;
66    for (LPIDENT lpi = pil->FindFirst (&hEnum); lpi; lpi = pil->FindNext (&hEnum))
67       Add (lpi);
68 }
69
70
71 size_t IDENTLIST::GetCount (void)
72 {
73    return m_lIdents->GetCount();
74 }
75
76
77 BOOL IDENTLIST::fIsInList (LPIDENT lpi)
78 {
79    return m_lIdents->fIsInList (lpi);
80 }
81
82
83 LPIDENT IDENTLIST::FindFirst (HENUM *phEnum)
84 {
85    LPIDENT lpi = NULL;
86    if ((*phEnum = m_lIdents->FindFirst()) != NULL)
87       lpi = (LPIDENT)( (*phEnum)->GetObject() );
88    return lpi;
89 }
90
91
92 LPIDENT IDENTLIST::FindNext (HENUM *phEnum)
93 {
94    LPIDENT lpi = NULL;
95
96    if ((*phEnum) && ((*phEnum = (*phEnum)->FindNext()) != NULL))
97       lpi = (LPIDENT)( (*phEnum)->GetObject() );
98
99    return lpi;
100 }
101
102
103 void IDENTLIST::FindClose (HENUM *phEnum)
104 {
105    if (*phEnum)
106       {
107       Delete (*phEnum);
108       *phEnum = NULL;
109       }
110 }
111