95db6d98cc946f008d397d11207ea049b5edccbc
[platform/upstream/dldt.git] / inference-engine / ie_bridges / python / src / openvino / inference_engine / ie_api_impl_defs.pxd
1 from libc.stddef cimport size_t
2 from libcpp cimport bool
3 from libcpp.string cimport string
4 from libcpp.vector cimport vector
5 from libcpp.map cimport map
6 from libcpp.set cimport set
7 from libcpp.pair cimport pair
8 from libcpp.memory cimport unique_ptr, shared_ptr
9 from libc.stdint cimport int64_t, uint8_t
10
11
12 cdef extern from "<inference_engine.hpp>" namespace "InferenceEngine":
13     ctypedef vector[size_t] SizeVector
14
15     cdef cppclass TensorDesc:
16         SizeVector& getDims()
17         const Precision& getPrecision() const
18
19     cdef cppclass Blob:
20         ctypedef shared_ptr[Blob] Ptr
21         const TensorDesc& getTensorDesc() const
22         size_t element_size()  const
23
24     cdef cppclass Precision:
25         const char*name() const
26
27     cdef struct apiVersion:
28         int minor
29         int major
30
31     cdef cppclass Version:
32         const char *buildNumber
33         const char *description
34         apiVersion apiVersion
35
36 cdef extern from "ie_api_impl.hpp" namespace "InferenceEnginePython":
37     cdef cppclass IENetLayer:
38         string name
39         string type
40         string precision
41         string affinity
42         string shape
43         string layout
44         vector[string] children
45         vector[string] parents
46         map[string, string] params
47         void setAffinity(const string & target_affinity) except +
48         void setParams(const map[string, string] & params_map) except +
49         map[string, Blob.Ptr] getWeights() except +
50         void setPrecision(string precision) except +
51
52     cdef cppclass InputInfo:
53         vector[size_t] dims
54         string precision
55         string layout
56         void setPrecision(string precision) except +
57         void setLayout(string layout) except +
58
59     cdef cppclass OutputInfo:
60         vector[size_t] dims
61         string precision
62         string layout
63         void setPrecision(string precision) except +
64
65     cdef cppclass ProfileInfo:
66         string status
67         string exec_type
68         string layer_type
69         long long real_time
70         long long cpu_time
71         unsigned int execution_index
72
73     cdef cppclass WeightsInfo:
74         Blob.Ptr & weights;
75         Blob.Ptr & biases;
76         map[string, Blob.Ptr] custom_blobs;
77
78     cdef cppclass IEExecNetwork:
79         vector[InferRequestWrap] infer_requests
80         IENetwork GetExecGraphInfo() except +
81         object getMetric(const string & metric_name)
82         object getConfig(const string & metric_name)
83
84     cdef cppclass IENetwork:
85         IENetwork() except +
86         IENetwork(const string &, const string &, bool ngraph_compatibility) except +
87         string name
88         size_t batch_size
89         string precision
90         map[string, vector[size_t]] inputs
91         const vector[pair[string, IENetLayer]] getLayers() except +
92         map[string, InputInfo] getInputs() except +
93         map[string, OutputInfo] getOutputs() except +
94         void addOutput(string &, size_t, string &) except +
95         void setAffinity(map[string, string] & types_affinity_map, map[string, string] & layers_affinity_map) except +
96         void setBatch(size_t size) except +
97         void setLayerParams(map[string, map[string, string]] params_map) except +
98         void serialize(const string& path_to_xml, const string& path_to_bin) except +
99         void reshape(map[string, vector[size_t]] input_shapes) except +
100         void setStats(map[string, map[string, vector[float]]] & stats) except +
101         map[string, map[string, vector[float]]] getStats() except +
102         void load_from_buffer(const char*xml, size_t xml_size, uint8_t*bin, size_t bin_size) except +
103
104     cdef cppclass IEPlugin:
105         IEPlugin() except +
106         IEPlugin(const string &, const vector[string] &) except +
107         unique_ptr[IEExecNetwork] load(IENetwork & net, int num_requests, const map[string, string]& config) except +
108         void addCpuExtension(const string &) except +
109         void setConfig(const map[string, string] &) except +
110         void setInitialAffinity(IENetwork & net) except +
111         set[string] queryNetwork(const IENetwork & net) except +
112         string device_name
113         string version
114
115     cdef cppclass InferRequestWrap:
116         double exec_time;
117         void getBlobPtr(const string & blob_name, Blob.Ptr & blob_ptr) except +
118         map[string, ProfileInfo] getPerformanceCounts() except +
119         void infer() except +
120         void infer_async() except +
121         int wait(int64_t timeout) except +
122         void setBatch(int size) except +
123         void setCyCallback(void (*)(void*, int), void *) except +
124
125     cdef cppclass IECore:
126         IECore() except +
127         IECore(const string & xml_config_file) except +
128         map[string, Version] getVersions(const string & deviceName) except +
129         unique_ptr[IEExecNetwork] loadNetwork(IENetwork network, const string deviceName,
130                                               const map[string, string] & config, int num_requests) except +
131         map[string, string] queryNetwork(IENetwork network, const string deviceName,
132                                          const map[string, string] & config) except +
133         void setConfig(const map[string, string] & config, const string & deviceName) except +
134         void registerPlugin(const string & pluginName, const string & deviceName) except +
135         void unregisterPlugin(const string & deviceName) except +
136         void registerPlugins(const string & xmlConfigFile) except +
137         void addExtension(const string & ext_lib_path, const string & deviceName) except +
138         vector[string] getAvailableDevices() except +
139         object getMetric(const string & deviceName, const string & name) except +
140         object getConfig(const string & deviceName, const string & name) except +
141
142     cdef T*get_buffer[T](Blob &)
143
144     cdef string get_version()