Skip to content

Commit

Permalink
eclipse-leshan#1228 Removed excessive DataSenderManager API methods
Browse files Browse the repository at this point in the history
  • Loading branch information
adamsero committed Jun 10, 2022
1 parent 234d23b commit 0ca5200
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import org.eclipse.leshan.core.response.ReadCompositeResponse;
import org.eclipse.leshan.core.response.ResponseCallback;
import org.eclipse.leshan.core.response.SendResponse;
import org.eclipse.leshan.core.util.Validate;

import java.util.*;

Expand All @@ -34,21 +33,6 @@ public DataSenderManager(Map<String, DataSender> dataSenders, LwM2mRootEnabler r
this.dataSenders.values().forEach(sender -> sender.setDataSenderManager(this));
}

public void collectDataManually(String senderName, List<LwM2mPath> paths) {
Validate.notEmpty(paths);
ManualDataSender dataSender = getDataSender(senderName, ManualDataSender.class);
dataSender.collectData(paths);
}

public void sendDataManually(List<String> senderNames, ServerIdentity serverIdentity, ContentFormat format,
long timeoutInMs, boolean noFlush) {
Validate.notEmpty(senderNames);
// Here we send data one sender at a time if user provides multiple, I wonder if we should aggregate data and
// send it one time
senderNames.stream().map(sender -> getDataSender(sender, ManualDataSender.class))
.forEach(sender -> sender.sendCollectedData(serverIdentity, format, timeoutInMs, noFlush));
}

public Map<LwM2mPath, LwM2mNode> getCurrentValue(ServerIdentity server, List<LwM2mPath> paths)
throws NoDataException {
ReadCompositeResponse response = rootEnabler.read(server,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import java.util.Map;

import org.eclipse.leshan.client.californium.LeshanClient;
import org.eclipse.leshan.client.datacollector.DataSenderManager;
import org.eclipse.leshan.client.datacollector.ManualDataSender;
import org.eclipse.leshan.client.demo.MyLocation;
import org.eclipse.leshan.client.demo.cli.interactive.InteractiveCommands.CreateCommand;
import org.eclipse.leshan.client.demo.cli.interactive.InteractiveCommands.CollectCommand;
Expand Down Expand Up @@ -218,8 +220,9 @@ public void run() {
ErrorCallback errorCallback = (e) -> LOG.warn("Unable to send data to {}.", server, e);
if (senderNames != null) {
// for now noFlush is always false, but we can change that
parent.client.getDataSenderManager().sendDataManually(senderNames, server, contentFormat,
timeoutInMs, false);
DataSenderManager dataSenderManager = parent.client.getDataSenderManager();
senderNames.stream().map(sender -> dataSenderManager.getDataSender(sender, ManualDataSender.class))
.forEach(sender -> sender.sendCollectedData(server, contentFormat, timeoutInMs, false));
} else {
parent.client.sendData(server, contentFormat, paths, timeoutInMs, responseCallback, errorCallback);
}
Expand Down Expand Up @@ -249,7 +252,9 @@ static class CollectCommand implements Runnable {

@Override
public void run() {
parent.client.getDataSenderManager().collectDataManually(senderName, LwM2mPath.getLwM2mPathList(paths));
DataSenderManager dataSenderManager = parent.client.getDataSenderManager();
dataSenderManager.getDataSender(senderName, ManualDataSender.class)
.collectData(LwM2mPath.getLwM2mPathList(paths));
}
}

Expand Down

0 comments on commit 0ca5200

Please sign in to comment.