This is an automated email from the ASF dual-hosted git repository.
justinchen pushed a commit to branch client-opc
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/client-opc by this push:
new ef67611077b trilog
ef67611077b is described below
commit ef67611077b77dba33111f61a5c27d338741d829
Author: Caideyipi <[email protected]>
AuthorDate: Mon Dec 22 17:06:16 2025 +0800
trilog
---
.../protocol/opcua/client/IoTDBOpcUaClient.java | 4 +---
.../sink/protocol/opcua/server/OpcUaNameSpace.java | 25 ++++++++++++++++------
2 files changed, 20 insertions(+), 9 deletions(-)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua/client/IoTDBOpcUaClient.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua/client/IoTDBOpcUaClient.java
index cc6651338da..d7f02d1ddd0 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua/client/IoTDBOpcUaClient.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua/client/IoTDBOpcUaClient.java
@@ -76,9 +76,7 @@ public class IoTDBOpcUaClient {
}
// Only support tree model & client-server
- public void transfer(final Tablet tablet, final OpcUaSink sink) throws
UaException {
-
- }
+ public void transfer(final Tablet tablet, final OpcUaSink sink) throws
UaException {}
/////////////////////////////// Getter ///////////////////////////////
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua/server/OpcUaNameSpace.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua/server/OpcUaNameSpace.java
index 6a4581dec46..c60680a1f1e 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua/server/OpcUaNameSpace.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua/server/OpcUaNameSpace.java
@@ -98,14 +98,18 @@ public class OpcUaNameSpace extends
ManagedNamespaceWithLifecycle {
public void transfer(final Tablet tablet, final boolean isTableModel, final
OpcUaSink sink)
throws UaException {
if (sink.isClientServerModel()) {
- transferTabletForClientServerModel(tablet, isTableModel, sink);
+ transferTabletForClientServerModel(
+ tablet, isTableModel, sink,
this::transferTabletRowForClientServerModel);
} else {
transferTabletForPubSubModel(tablet, isTableModel, sink);
}
}
- private void transferTabletForClientServerModel(
- final Tablet tablet, final boolean isTableModel, final OpcUaSink sink) {
+ public static void transferTabletForClientServerModel(
+ final Tablet tablet,
+ final boolean isTableModel,
+ final OpcUaSink sink,
+ final TabletRowConsumer consumer) {
final List<IMeasurementSchema> schemas = tablet.getSchemas();
final List<IMeasurementSchema> newSchemas = new ArrayList<>();
if (!isTableModel) {
@@ -126,8 +130,7 @@ public class OpcUaNameSpace extends
ManagedNamespaceWithLifecycle {
}
}
- transferTabletRowForClientServerModel(
- tablet.getDeviceId().split("\\."), newSchemas, timestamps, values,
sink);
+ consumer.accept(tablet.getDeviceId().split("\\."), newSchemas,
timestamps, values, sink);
} else {
new PipeTableModelTabletEventSorter(tablet).sortByTimestampIfNecessary();
@@ -150,7 +153,7 @@ public class OpcUaNameSpace extends
ManagedNamespaceWithLifecycle {
}
final int finalI = i;
- transferTabletRowForClientServerModel(
+ consumer.accept(
folderSegments,
newSchemas,
Collections.singletonList(tablet.getTimestamp(i)),
@@ -167,6 +170,16 @@ public class OpcUaNameSpace extends
ManagedNamespaceWithLifecycle {
}
}
+ @FunctionalInterface
+ public interface TabletRowConsumer {
+ void accept(
+ final String[] segments,
+ final List<IMeasurementSchema> measurementSchemas,
+ final List<Long> timestamps,
+ final List<Object> values,
+ final OpcUaSink sink);
+ }
+
private void transferTabletRowForClientServerModel(
final String[] segments,
final List<IMeasurementSchema> measurementSchemas,