Skip to content

Commit cb9ea50

Browse files
committed
Add VirtualFilePath and Path Generation
1 parent 0c064ea commit cb9ea50

2 files changed

Lines changed: 18 additions & 12 deletions

File tree

iotdb-client/service-rpc/pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,6 @@
9494
<artifactId>gdal</artifactId>
9595
<version>3.11.0</version>
9696
</dependency>
97-
<dependency>
98-
<groupId>org.gdal</groupId>
99-
<artifactId>vsi</artifactId>
100-
<version>1.0</version>
101-
</dependency>
10297
</dependencies>
10398
<build>
10499
<plugins>

iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/model/CompressedTiffModelProcessor.java

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
package org.apache.iotdb.rpc.model;
2121

22-
import org.gdal.VsiGdalNative;
2322
import org.gdal.gdal.Band;
2423
import org.gdal.gdal.Dataset;
2524
import org.gdal.gdal.Driver;
@@ -28,6 +27,8 @@
2827

2928
public class CompressedTiffModelProcessor extends ModelProcessor {
3029
private static final Driver DRIVER;
30+
private static final String VIRTUAL_FILE_PATH_PREFIX = "/vsimem";
31+
private static final String VIRTUAL_FILE_PATH_SUFFIX = ".tif";
3132
// Specifying compression options
3233
private static String compressOption = "COMPRESS=LZW";
3334
// Specifying block x size options
@@ -46,7 +47,11 @@ public class CompressedTiffModelProcessor extends ModelProcessor {
4647
@Override
4748
public byte[] write(float[] values, int width, int height) {
4849
String virtualFilePath = getVirtualFilePath();
49-
return write(virtualFilePath, values, width, height);
50+
try {
51+
return write(virtualFilePath, values, width, height);
52+
} finally {
53+
gdal.Unlink(virtualFilePath);
54+
}
5055
}
5156

5257
private byte[] write(String filePath, float[] values, int width, int height) {
@@ -71,7 +76,7 @@ private byte[] write(String filePath, float[] values, int width, int height) {
7176
}
7277
band.FlushCache();
7378
dataset.FlushCache();
74-
return VsiGdalNative.vsiGetMemFileBuffer(filePath, true);
79+
return gdal.GetMemFileBuffer(filePath);
7580
} finally {
7681
if (dataset != null) {
7782
dataset.delete();
@@ -81,10 +86,13 @@ private byte[] write(String filePath, float[] values, int width, int height) {
8186

8287
@Override
8388
public float[] readAll(byte[] fileBytes) {
84-
// TODO @spricoder
8589
String virtualFilePath = getVirtualFilePath();
86-
VsiGdalNative.writeVsiMemFile(virtualFilePath, fileBytes);
87-
return readAll(virtualFilePath);
90+
try {
91+
gdal.FileFromMemBuffer(virtualFilePath, fileBytes);
92+
return readAll(virtualFilePath);
93+
} finally {
94+
gdal.Unlink(virtualFilePath);
95+
}
8896
}
8997

9098
@Override
@@ -110,6 +118,9 @@ public float[] readAll(String filePath) {
110118
}
111119

112120
private String getVirtualFilePath() {
113-
return "";
121+
long tid = Thread.currentThread().getId();
122+
long timestamp = System.currentTimeMillis();
123+
return String.format(
124+
"%s/%d_%d%s", VIRTUAL_FILE_PATH_PREFIX, tid, timestamp, VIRTUAL_FILE_PATH_SUFFIX);
114125
}
115126
}

0 commit comments

Comments
 (0)