slang_rs_exportable.h revision b257301a1c711ba81458a4f8bf3c99c91c91a047
1#ifndef _SLANG_COMPILER_RS_EXPORTABLE_HPP
2#define _SLANG_COMPILER_RS_EXPORTABLE_HPP
3
4#include "slang_rs_context.h"
5
6namespace slang {
7
8class RSExportable {
9 public:
10  enum Kind {
11    EX_FUNC,
12    EX_TYPE,
13    EX_VAR
14  };
15
16 private:
17  Kind mK;
18
19 protected:
20  RSExportable(RSContext *Context, RSExportable::Kind K) : mK(K) {
21    Context->newExportable(this);
22    return;
23  }
24
25 public:
26  inline Kind getKind() const { return mK; }
27
28  virtual ~RSExportable() { }
29};
30}
31
32#endif  // _SLANG_COMPILER_RS_EXPORTABLE_HPP
33