LINUX: afs_create infinite fetchStatus loop
[pkg-k5-afs_openafs.git] / src / WINNT / afsclass / c_identlist.cpp
blobc0ee8723d8faf64f4d47410e8d6562905538f8b8
1 /*
2 * Copyright 2000, International Business Machines Corporation and others.
3 * All Rights Reserved.
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 */
10 #include <winsock2.h>
11 #include <ws2tcpip.h>
13 extern "C" {
14 #include <afsconfig.h>
15 #include <afs/param.h>
16 #include <roken.h>
19 #include <WINNT/afsclass.h>
20 #include "internal.h"
24 * IDENTLIST CLASS ____________________________________________________________
28 IDENTLIST::IDENTLIST (void)
30 m_lIdents = New (HASHLIST);
34 IDENTLIST::~IDENTLIST (void)
36 if (m_lIdents)
37 Delete (m_lIdents);
38 m_lIdents = NULL;
42 void IDENTLIST::Add (LPIDENT lpi)
44 m_lIdents->AddUnique (lpi);
48 void IDENTLIST::Remove (LPIDENT lpi)
50 m_lIdents->Remove (lpi);
54 void IDENTLIST::RemoveAll (void)
56 LPIDENT lpi;
57 while ((lpi = (LPIDENT)m_lIdents->GetFirstObject()) != NULL)
58 m_lIdents->Remove (lpi);
62 void IDENTLIST::CopyFrom (LPIDENTLIST pil)
64 RemoveAll();
66 HENUM hEnum;
67 for (LPIDENT lpi = pil->FindFirst (&hEnum); lpi; lpi = pil->FindNext (&hEnum))
68 Add (lpi);
72 size_t IDENTLIST::GetCount (void)
74 return m_lIdents->GetCount();
78 BOOL IDENTLIST::fIsInList (LPIDENT lpi)
80 return m_lIdents->fIsInList (lpi);
84 LPIDENT IDENTLIST::FindFirst (HENUM *phEnum)
86 LPIDENT lpi = NULL;
87 if ((*phEnum = m_lIdents->FindFirst()) != NULL)
88 lpi = (LPIDENT)( (*phEnum)->GetObject() );
89 return lpi;
93 LPIDENT IDENTLIST::FindNext (HENUM *phEnum)
95 LPIDENT lpi = NULL;
97 if ((*phEnum) && ((*phEnum = (*phEnum)->FindNext()) != NULL))
98 lpi = (LPIDENT)( (*phEnum)->GetObject() );
100 return lpi;
104 void IDENTLIST::FindClose (HENUM *phEnum)
106 if (*phEnum)
108 Delete (*phEnum);
109 *phEnum = NULL;