LINUX: afs_create infinite fetchStatus loop
[pkg-k5-afs_openafs.git] / src / WINNT / afsclass / c_grp.h
blobadaad0df1254f4b66b94d1bc000df4d9cafe0c4a
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 #ifndef AFSCLASS_GROUP_H
11 #define AFSCLASS_GROUP_H
13 #include <WINNT/afsclass.h>
17 * PTSGROUP CLASS _____________________________________________________________
21 typedef struct PTSGROUPSTATUS
23 int nMembers;
24 int uidName;
25 int uidOwner;
26 int uidCreator;
27 ACCOUNTACCESS aaListStatus;
28 ACCOUNTACCESS aaListGroupsOwned;
29 ACCOUNTACCESS aaListMembers;
30 ACCOUNTACCESS aaAddMember;
31 ACCOUNTACCESS aaDeleteMember;
32 TCHAR szOwner[ cchNAME ];
33 TCHAR szCreator[ cchNAME ];
34 } PTSGROUPSTATUS, *LPPTSGROUPSTATUS;
37 class PTSGROUP
39 friend class CELL;
40 friend class IDENT;
41 friend class USER;
43 public:
44 void Close (void);
45 void Invalidate (void);
46 BOOL RefreshStatus (BOOL fNotify = TRUE, ULONG *pStatus = NULL);
48 // User properties
50 LPIDENT GetIdentifier (void);
51 LPCELL OpenCell (ULONG *pStatus = NULL);
52 void GetName (LPTSTR pszGroup);
54 BOOL GetStatus (LPPTSGROUPSTATUS lpgs, BOOL fNotify = TRUE, ULONG *pStatus = NULL);
56 PVOID GetUserParam (void);
57 void SetUserParam (PVOID pUserParam);
59 // Users and Groups
61 BOOL GetMembers (LPTSTR *ppmsz, ULONG *pStatus = NULL);
62 BOOL GetMemberOf (LPTSTR *ppmsz, ULONG *pStatus = NULL);
63 BOOL GetOwnerOf (LPTSTR *ppmsz, ULONG *pStatus = NULL);
65 private:
66 PTSGROUP (LPCELL lpCellParent, LPTSTR pszGroup);
67 ~PTSGROUP (void);
68 void SendDeleteNotifications (void);
70 private:
71 LPIDENT m_lpiCell;
72 TCHAR m_szName[ cchNAME ];
74 LPIDENT m_lpiThis;
76 BOOL m_fStatusOutOfDate;
77 PTSGROUPSTATUS m_gs;
79 LPTSTR m_mszMembers;
80 LPTSTR m_mszMemberOf;
81 LPTSTR m_mszOwnerOf;
83 public:
84 // (used internally)
85 void PTSGROUP::ChangeIdentName (LPTSTR pszNewName);
89 #endif // AFSCLASS_GROUP_H