Material Definition Language API nvidia_logo_transpbg.gif Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
imdl_discovery_api.h
Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright 2019 NVIDIA Corporation. All rights reserved.
3  **************************************************************************************************/
6 
7 #ifndef MI_NEURAYLIB_IMDL_DISCOVERY_API_H
8 #define MI_NEURAYLIB_IMDL_DISCOVERY_API_H
9 
11 
12 namespace mi {
13 
14 class IString;
15 
16 namespace neuraylib {
17 
18 
21 class IMdl_info : public
22  base::Interface_declare<0xd2f50312,0xe76c,0x4d64,0xa5,0x91,0xcb,0x70,0x38,0x2c,0xa9,0x9f>
23 
24 {
25  public:
26 
28  enum Kind {
29  DK_PACKAGE = 0,
30  DK_MODULE = 1,
31  DK_RESOURCE = 2,
32  // next = 4
33  DK_FORCE_32_BIT = 0xffffffffU
34  };
35 
37  virtual Kind get_kind() const = 0;
38 
40  virtual const char* get_qualified_name() const = 0;
41 
43  virtual const char* get_simple_name() const = 0;
44 };
45 mi_static_assert(sizeof(IMdl_info::Kind) == sizeof(Uint32));
46 
48 class IMdl_module_info : public
49  base::Interface_declare<0x22,0x1204,0x46,0xb1,0x5b,0xbf,0xa8,0x11,0xc7,0xe7,0xe1,IMdl_info>
50 
51 {
52  public:
53 
55  virtual Size get_search_path_index() const = 0;
56 
58  virtual const char* get_search_path() const = 0;
59 
61  virtual const IString* get_resolved_path() const = 0;
62 
64  virtual Size get_shadows_count() const = 0;
65 
68  virtual const IMdl_module_info* get_shadow(Size index) const = 0;
69 
71  virtual bool in_archive() const = 0;
72 };
73 
75 class IMdl_package_info : public
76  base::Interface_declare<0x94d,0x66,0x47a,0xb0,0xc3,0x7b,0x68,0xba,0x40,0xde,0x06,IMdl_info>
77 {
78  public:
79 
81  virtual Size get_child_count() const = 0;
82 
85  virtual const IMdl_info* get_child(Size index) const = 0;
86 
88  virtual Size get_search_path_index_count() const = 0;
89 
92  virtual Size get_search_path_index(Size index) const = 0;
93 
96  virtual const char* get_search_path(Size index) const = 0;
97 
100  virtual const IString* get_resolved_path(Size index) const = 0;
101 
104  virtual bool in_archive(Size index) const = 0;
105 };
106 
108 class IMdl_discovery_result : public
109  base::Interface_declare<0xe3c1bc1a,0xb1db,0x4c8c,0xba,0x41,0x37,0xed,0x87,0xb7,0x86,0xb8>
110 {
111 public:
112 
114  virtual const IMdl_package_info* get_graph() const = 0;
115 
117  virtual Size get_search_paths_count() const = 0;
118 
121  virtual const char* get_search_path(Size index) const = 0;
122 
123 };
124 
148 class IMdl_discovery_api : public
149  base::Interface_declare<0x208aa1f2,0x08bc,0x4c81,0x8b,0x0f,0x54,0xba,0x4a,0x61,0xe9,0xd8>
150 {
151 public:
152 
154  virtual const IMdl_discovery_result* discover() const = 0;
155 };
156 
157 } // namespace neuraylib
158 
159 } // namespace mi
160 
161 #endif // MI_NEURAYLIB_IMDL_DISCOVERY_API_H