You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ji...@apache.org on 2019/06/28 02:47:59 UTC
[incubator-iotdb] branch feature_async_close_tsfile updated:
abstract clone in TVList
This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch feature_async_close_tsfile
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/feature_async_close_tsfile by this push:
new e3e856c abstract clone in TVList
e3e856c is described below
commit e3e856c15f3e952914204aa35da1efb34f1d46c8
Author: 江天 <jt...@163.com>
AuthorDate: Fri Jun 28 10:45:50 2019 +0800
abstract clone in TVList
---
.../apache/iotdb/db/utils/datastructure/DoubleTVList.java | 12 ++----------
.../apache/iotdb/db/utils/datastructure/LongTVList.java | 10 +---------
.../org/apache/iotdb/db/utils/datastructure/TVList.java | 14 ++++++++++++++
3 files changed, 17 insertions(+), 19 deletions(-)
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/DoubleTVList.java b/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/DoubleTVList.java
index d8ae8ec..f60cf0e 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/DoubleTVList.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/DoubleTVList.java
@@ -71,26 +71,18 @@ public class DoubleTVList extends TVList {
@Override
public DoubleTVList clone() {
DoubleTVList cloneList = new DoubleTVList();
+ cloneAs(cloneList);
if (!sorted) {
for (double[] valueArray : values) {
cloneList.values.add(cloneValue(valueArray));
}
- for (long[] timestampArray : timestamps) {
- cloneList.timestamps.add(cloneTime(timestampArray));
- }
} else {
- cloneList.sortedTimestamps = new long[size];
cloneList.sortedValues = new double[size];
- System.arraycopy(sortedTimestamps, 0, cloneList.sortedTimestamps, 0, size);
System.arraycopy(sortedValues, 0, cloneList.sortedValues, 0, size);
}
- cloneList.size = size;
- cloneList.sorted = sorted;
- cloneList.limit = limit;
-
return cloneList;
}
-
+
private double[] cloneValue(double[] array) {
double[] cloneArray = new double[array.length];
System.arraycopy(array, 0, cloneArray, 0, array.length);
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/LongTVList.java b/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/LongTVList.java
index e278d06..b0741e4 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/LongTVList.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/LongTVList.java
@@ -71,23 +71,15 @@ public class LongTVList extends TVList {
@Override
public LongTVList clone() {
LongTVList cloneList = new LongTVList();
+ cloneAs(cloneList);
if (!sorted) {
for (long[] valueArray : values) {
cloneList.values.add(cloneValue(valueArray));
}
- for (long[] timestampArray : timestamps) {
- cloneList.timestamps.add(cloneTime(timestampArray));
- }
} else {
- cloneList.sortedTimestamps = new long[size];
cloneList.sortedValues = new long[size];
- System.arraycopy(sortedTimestamps, 0, cloneList.sortedTimestamps, 0, size);
System.arraycopy(sortedValues, 0, cloneList.sortedValues, 0, size);
}
- cloneList.size = size;
- cloneList.sorted = sorted;
- cloneList.limit = limit;
-
return cloneList;
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/TVList.java b/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/TVList.java
index 782b062..cb67aff 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/TVList.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/TVList.java
@@ -125,6 +125,20 @@ public abstract class TVList {
public abstract TVList clone();
+ protected void cloneAs(TVList cloneList) {
+ if (!sorted) {
+ for (long[] timestampArray : timestamps) {
+ cloneList.timestamps.add(cloneTime(timestampArray));
+ }
+ } else {
+ cloneList.sortedTimestamps = new long[size];
+ System.arraycopy(sortedTimestamps, 0, cloneList.sortedTimestamps, 0, size);
+ }
+ cloneList.size = size;
+ cloneList.sorted = sorted;
+ cloneList.limit = limit;
+ }
+
public void reset() {
size = 0;
limit = 0;