eb47b6bed710ef30a16fbe0bfbcb0b6bc6513def
[oweals/cde.git] / cde / programs / nsgmls / DescriptorManager.h
1 /* $XConsortium: DescriptorManager.h /main/1 1996/07/29 16:49:04 cde-hp $ */
2 // Copyright (c) 1994 James Clark
3 // See the file COPYING for copying permission.
4
5 #ifndef DescriptorManager_INCLUDED
6 #define DescriptorManager_INCLUDED 1
7
8 #include "Boolean.h"
9 #include "List.h"
10
11 #ifdef SP_NAMESPACE
12 namespace SP_NAMESPACE {
13 #endif
14
15 class DescriptorManager;
16
17 class SP_API DescriptorUser {
18 public:
19   DescriptorUser(DescriptorManager *);
20   virtual ~DescriptorUser();
21   virtual Boolean suspend();
22   void managerDeleted();
23   void acquireD();
24   void releaseD();
25   DescriptorManager *manager() const;
26 private:
27   DescriptorManager *manager_;
28 };
29
30 class SP_API DescriptorManager {
31 public:
32   DescriptorManager(int maxD);
33   ~DescriptorManager();
34   void acquireD();
35   void releaseD();
36   void addUser(DescriptorUser *);
37   void removeUser(DescriptorUser *);
38 private:
39   DescriptorManager(const DescriptorManager &); // undefined
40   void operator=(const DescriptorManager &);    // undefined
41
42   int usedD_;
43   int maxD_;
44   List<DescriptorUser *> users_;
45 };
46
47 #ifdef SP_NAMESPACE
48 }
49 #endif
50
51 #endif /* not DescriptorManager_INCLUDED */