Synchronizer.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. package de.tudarmstadt.informatik.hostage.sync;
  2. /**
  3. * Created by Julien on 08.12.2014.
  4. */
  5. import java.net.ServerSocket;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. import de.tudarmstadt.informatik.hostage.logging.NetworkRecord;
  9. import de.tudarmstadt.informatik.hostage.logging.SyncDevice;
  10. import de.tudarmstadt.informatik.hostage.logging.SyncRecord;
  11. import de.tudarmstadt.informatik.hostage.persistence.HostageDBOpenHelper;
  12. import de.tudarmstadt.informatik.hostage.system.Device;
  13. public class Synchronizer {
  14. private HostageDBOpenHelper dbh;
  15. public Synchronizer(HostageDBOpenHelper dbh){
  16. super();
  17. this.dbh = dbh;
  18. }
  19. public void pullNetworks(ServerSocket serverSocket){
  20. ArrayList<String> myNetworks = this.dbh.getAllBSSIDS();
  21. ArrayList<NetworkRecord> others = this.getOtherNetworkInformation(serverSocket, myNetworks);
  22. if (others != null && others.size() > 0){
  23. this.dbh.updateNetworkInformation(others);
  24. }
  25. }
  26. public void pullNewDevices(ServerSocket serverSocket){
  27. ArrayList<String> myDevices = this.dbh.getAllDevicesIds();
  28. ArrayList<String> otherDeviceIds = this.getOtherDevies(serverSocket, myDevices);
  29. ArrayList<SyncDevice> otherDevices = new ArrayList<SyncDevice>();
  30. for (String deviceId : otherDeviceIds){
  31. SyncDevice device = new SyncDevice();
  32. device.setDeviceID(deviceId);
  33. device.setHighest_attack_id(-1);
  34. device.setLast_sync_timestamp(0);
  35. otherDevices.add(device);
  36. }
  37. if (otherDevices != null && otherDevices.size() > 0)
  38. this.dbh.updateSyncDevices(otherDevices);
  39. }
  40. public void pullAttacks(ServerSocket serverSocket){
  41. ArrayList<SyncDevice> myState = this.dbh.getSyncDevices();
  42. ArrayList<SyncRecord> updates = this.getChanges(serverSocket, myState);
  43. if (updates != null && updates.size() > 0)
  44. this.dbh.insertSyncRecords(updates);
  45. }
  46. public void pushNetworkInformation(ServerSocket serverSocket){
  47. ArrayList<String> otherIDs = null;
  48. if (otherIDs != null){
  49. ArrayList<String> missingIds = this.dbh.getMissingDeviceIds(otherIDs);
  50. this.sendMissingDeviceIds(serverSocket, missingIds);
  51. }
  52. }
  53. public void pushUnsyncedRecords(ServerSocket serverSocket){
  54. ArrayList<SyncDevice> otherDeviceState = null;
  55. if (otherDeviceState != null){
  56. ArrayList<SyncRecord> unsynced = this.dbh.getUnsyncedAttacksFor(otherDeviceState, false);
  57. this.sendUnsyncedRecords(serverSocket, unsynced);
  58. }
  59. }
  60. public void pushDeviceIds(ServerSocket serverSocket){
  61. ArrayList<String> otherBSSIDs = null;
  62. if (otherBSSIDs != null){
  63. ArrayList<NetworkRecord> missings = this.dbh.getMissingNetworkRecords(otherBSSIDs);
  64. this.sendMissingNetworkRecords(serverSocket, missings);
  65. }
  66. }
  67. private ArrayList<String> getOtherDevies(ServerSocket serverSocket, ArrayList<String> ownDevices){
  68. return null;
  69. }
  70. private ArrayList<NetworkRecord> getOtherNetworkInformation(ServerSocket serverSocket, List<String> records){
  71. return null;
  72. }
  73. private ArrayList<SyncRecord> getChanges(ServerSocket serverSocket, ArrayList<SyncDevice> ownState){
  74. return null;
  75. }
  76. private void sendMissingNetworkRecords(ServerSocket serverSocket, ArrayList<NetworkRecord> m){
  77. }
  78. private void sendMissingDeviceIds(ServerSocket serverSocket, ArrayList<String> missingIds){
  79. }
  80. private void sendUnsyncedRecords(ServerSocket serverSocket, ArrayList<SyncRecord> unsynced){
  81. }
  82. }