slang_rs_exportable.h revision a41ce1d98094da84643995d40d71c529905123fc
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 {
9public:
10  enum Kind {
11    EX_FUNC,
12    EX_TYPE,
13    EX_VAR
14  };
15
16private:
17  Kind mK;
18
19protected:
20  RSExportable(RSContext *Context, RSExportable::Kind K) : mK(K) {
21    Context->newExportable(this);
22    return;
23  }
24
25public:
26  inline Kind getKind() const { return mK; }
27
28  virtual ~RSExportable() { }
29};
30
31}
32
33#endif  // _SLANG_COMPILER_RS_EXPORTABLE_HPP
34