aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/service/svcenum.h
blob: bdfbb7df73a7662b3aa74ca248d1937ca39cd0a6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef _SVCENUM_H
#define _SVCENUM_H


/*<?<autoheader/>*/
class waServiceFactory;
/*?>*/

// abstract base class
class NOVTABLE SvcEnum {
protected:
  SvcEnum();

  void *_getNext(int global_lock = TRUE);
  void reset();

  virtual int _testService(void *)=0;

public:
#ifdef ASSERTS_ENABLED
  static int release(waServiceFactory *ptr) { ASSERTALWAYS("never ever call release() with a waServiceFactory * !!!"); return 0; }
#endif
  static int release(void *ptr);

  waServiceFactory *getLastFactory();

protected:
  FOURCC type;

private:
  int pos;
  waServiceFactory * factory;
};


#endif // _SVCENUM_H