aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/service/svcs/svc_export.h
blob: 4b6085f17a55456a23f2849bb48bebcc77f12b0c (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
#ifndef _SVC_EXPORT_H
#define _SVC_EXPORT_H

#include <bfc/dispatch.h>
#include <api/service/services.h>

class svc_fileReader;

class svc_exporter /*: public Dispatchable*/ {
public:
  static FOURCC getServiceType() { return WaSvc::EXPORTER; }

  virtual int isMine(const char *exportid, const char *family)=0;

  virtual svc_fileReader *open()=0;
  virtual close(svc_fileReader *reader)=0;
};

class ExporterEnum : public SvcEnumT<svc_exporter> {
public:
  ExporterEnum(const char *exportid, const char *family=NULL) :
   id(exportid), fam(family) { }

  virtual int testService(svc_exporter *svc) {
    return svc->isMine(id, fam);
  }

private:
  String id, fam;
};

#endif