Java bindings (#506)
[platform/upstream/dldt.git] / inference-engine / ie_bridges / java / org / intel / openvino / Blob.java
1 package org.intel.openvino;
2
3 public class Blob extends IEWrapper {
4
5     protected Blob(long addr) {
6         super(addr);
7     }
8
9     public Blob(TensorDesc tensorDesc) {
10         super(GetBlob(tensorDesc.getNativeObjAddr()));
11     }
12
13     public Blob(TensorDesc tensorDesc, byte[] data) {
14         super(BlobByte(tensorDesc.getNativeObjAddr(), data)) ;
15     }
16
17     public Blob(TensorDesc tensorDesc, float[] data) {
18         super(BlobFloat(tensorDesc.getNativeObjAddr(), data));
19     }
20
21     public Blob(TensorDesc tensorDesc, long cArray) {
22         super(BlobCArray(tensorDesc.nativeObj, cArray));
23     }
24
25     public TensorDesc getTensorDesc(){
26         return new TensorDesc(GetTensorDesc(nativeObj));
27     }
28
29     public int size() {
30         return size(nativeObj);
31     }
32
33     public LockedMemory rmap() {
34         return new LockedMemory(rmap(nativeObj));
35     }
36
37     /*----------------------------------- native methods -----------------------------------*/
38     private native long GetTensorDesc(long addr);
39
40     private static native long GetBlob(long tensorDesc);
41
42     private static native long BlobByte(long tensorDesc, byte[] data);
43
44     private static native long BlobFloat(long tensorDesc, float[] data);
45
46     private static native long BlobCArray(long tensorDesc, long cArray);
47
48     private static native byte[] asByte(long addr);
49
50     private static native float[] asFloat(long addr);
51
52     private static native int size(long addr);
53
54     private static native long rmap(long addr);
55
56     @Override
57     protected native void delete(long nativeObj);
58 }