removed singleton inheritance and re implemented with thread safe

This commit is contained in:
ori agranat
2019-09-12 01:05:27 +03:00
parent 55aa11b08e
commit c5901e1ae5
4 changed files with 21 additions and 21 deletions

View File

@@ -1,9 +0,0 @@
package Classes.MetaClass;
public class Singleton {
private static Singleton single_instance = new Singleton();
public static Singleton getInstance(){
return single_instance;
}
}

View File

@@ -1,29 +1,38 @@
package Classes;
import Classes.MetaClass.Singleton;
import Objects.*;
import org.json.JSONObject;
import java.util.HashMap;
public class SettingsManager extends Singleton {
public static int x = 5; // example of how to setup variable in singleton
public class SettingsManager {
private static SettingsManager instance;
private SettingsManager() {
InitiateGeneralSettings();
InitiateCamerasInfo();
InitiateUsbCameras();
InitiateUsbCamerasSettings();
}
public static synchronized SettingsManager getInstance(){
if(instance == null){
synchronized (SettingsManager.class) {
if(instance == null){
instance = new SettingsManager();
}
}
}
return instance;
}
public static HashMap cams = new HashMap();
public static HashMap UsbCameras = new HashMap();
public static HashMap USBCamerasInfo = new HashMap();
public static DefaultGeneralSettings GeneralSettings;
public static HashMap CameraPort = new HashMap();
public static HashMap CamerasCurrentPipeline = new HashMap();
public SettingsManager(){
InitiateGeneralSettings();
InitiateCamerasInfo();
InitiateUsbCameras();
InitiateUsbCamerasSettings();
}
private void InitiateGeneralSettings(){
System.out.println("run");
}
private void InitiateCamerasInfo(){
}

View File

@@ -2,7 +2,7 @@ import Classes.SettingsManager;
import Handlers.Web.Server;
public class Main {
public static void main(String [] args) {
SettingsManager Manager = new SettingsManager();
SettingsManager manager = SettingsManager.getInstance();
Server.main(8888);
}
}