2013-09-16 15:24:21 +02:00
|
|
|
package org.kde.kdeconnect.Backends;
|
2013-06-17 12:23:08 +02:00
|
|
|
|
2013-09-05 01:37:59 +02:00
|
|
|
import org.kde.kdeconnect.NetworkPackage;
|
2013-06-17 12:23:08 +02:00
|
|
|
|
2013-09-16 17:36:26 +02:00
|
|
|
import java.security.PrivateKey;
|
|
|
|
import java.security.PublicKey;
|
2013-06-17 12:23:08 +02:00
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
|
|
|
2013-09-16 17:36:26 +02:00
|
|
|
public abstract class BaseLink {
|
2013-06-17 12:23:08 +02:00
|
|
|
|
2014-03-29 01:47:15 +01:00
|
|
|
private final BaseLinkProvider linkProvider;
|
|
|
|
private final String deviceId;
|
|
|
|
private final ArrayList<PackageReceiver> receivers = new ArrayList<PackageReceiver>();
|
2013-09-16 17:36:26 +02:00
|
|
|
protected PrivateKey privateKey;
|
2013-07-23 16:11:54 +02:00
|
|
|
|
2013-09-16 17:36:26 +02:00
|
|
|
protected BaseLink(String deviceId, BaseLinkProvider linkProvider) {
|
2013-07-23 16:11:54 +02:00
|
|
|
this.linkProvider = linkProvider;
|
2013-08-07 10:44:52 +02:00
|
|
|
this.deviceId = deviceId;
|
2013-07-23 16:11:54 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public String getDeviceId() {
|
|
|
|
return deviceId;
|
|
|
|
}
|
|
|
|
|
2013-09-16 17:36:26 +02:00
|
|
|
public void setPrivateKey(PrivateKey key) {
|
|
|
|
privateKey = key;
|
|
|
|
}
|
|
|
|
|
2013-07-23 16:11:54 +02:00
|
|
|
public BaseLinkProvider getLinkProvider() {
|
|
|
|
return linkProvider;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2013-07-23 17:50:09 +02:00
|
|
|
public interface PackageReceiver {
|
|
|
|
public void onPackageReceived(NetworkPackage np);
|
|
|
|
}
|
2013-06-17 12:23:08 +02:00
|
|
|
|
2013-07-23 17:50:09 +02:00
|
|
|
public void addPackageReceiver(PackageReceiver pr) {
|
2013-06-17 12:23:08 +02:00
|
|
|
receivers.add(pr);
|
|
|
|
}
|
2013-07-23 17:50:09 +02:00
|
|
|
public void removePackageReceiver(PackageReceiver pr) {
|
2013-06-17 12:23:08 +02:00
|
|
|
receivers.remove(pr);
|
|
|
|
}
|
|
|
|
|
2013-06-18 03:05:32 +02:00
|
|
|
//Should be called from a background thread listening to packages
|
2013-07-23 17:50:09 +02:00
|
|
|
protected void packageReceived(NetworkPackage np) {
|
|
|
|
for(PackageReceiver pr : receivers) {
|
|
|
|
pr.onPackageReceived(np);
|
2013-06-17 12:23:08 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-10-05 17:25:59 +02:00
|
|
|
//TO OVERRIDE, should be sync
|
2013-08-19 19:57:29 +02:00
|
|
|
public abstract boolean sendPackage(NetworkPackage np);
|
2013-09-16 17:36:26 +02:00
|
|
|
public abstract boolean sendPackageEncrypted(NetworkPackage np, PublicKey key);
|
2013-06-17 12:23:08 +02:00
|
|
|
|
|
|
|
}
|