@@ -4,9 +4,7 @@ qx.Class.define("qxapp.data.Store", {
4
4
type : "singleton",
5
5
6
6
events: {
7
- "builtInServicesRegistered": "qx.event.type.Event",
8
- "servicesRegistered": "qx.event.type.Event",
9
- "interactiveServicesRegistered": "qx.event.type.Event"
7
+ "servicesRegistered": "qx.event.type.Event"
10
8
},
11
9
12
10
statics: {
@@ -23,9 +21,7 @@ qx.Class.define("qxapp.data.Store", {
23
21
},
24
22
25
23
members: {
26
- __servicesCacheBuiltIn: null,
27
- __servicesCacheComputational: null,
28
- __servicesCacheInteractive: null,
24
+ __servicesCache: null,
29
25
30
26
__getMimeType: function(type) {
31
27
let match = type.match(/^data:([^/\s]+\/[^/;\s])/);
@@ -71,6 +67,9 @@ qx.Class.define("qxapp.data.Store", {
71
67
let metaData = {};
72
68
if (key && version) {
73
69
const nodeImageId = key + "-" + version;
70
+ if (nodeImageId in this.__servicesCache) {
71
+ return this.__servicesCache[nodeImageId];
72
+ }
74
73
metaData = this.getFakeServices()[nodeImageId];
75
74
if (metaData === undefined) {
76
75
metaData = this.getBuiltInServices()[nodeImageId];
@@ -820,25 +819,6 @@ qx.Class.define("qxapp.data.Store", {
820
819
return builtInServices;
821
820
},
822
821
823
- getBuiltInServicesAsync: function() {
824
- let builtInServices = [];
825
- let builtInServicesMap = this.getBuiltInServices();
826
- for (const mapKey in builtInServicesMap) {
827
- builtInServices.push(builtInServicesMap[mapKey]);
828
- }
829
-
830
- console.log("builtInServicesRegistered", builtInServices);
831
- let services = [];
832
- for (const key in builtInServices) {
833
- const repoData = builtInServices[key];
834
- let newMetaData = qxapp.data.Converters.registryToMetaData(repoData);
835
- services.push(newMetaData);
836
- }
837
- // this.fireDataEvent("builtInServicesRegistered", builtInServices);
838
- this.__servicesCacheBuiltIn = services;
839
- this.fireDataEvent("builtInServicesRegistered", services);
840
- },
841
-
842
822
getFakeServices: function() {
843
823
let services = {};
844
824
services = Object.assign(services, this.getBuiltInServices());
@@ -852,6 +832,7 @@ qx.Class.define("qxapp.data.Store", {
852
832
url: "/get_services",
853
833
method: "GET"
854
834
});
835
+
855
836
req.addListener("success", function(e) {
856
837
let requ = e.getTarget();
857
838
const {
@@ -860,77 +841,38 @@ qx.Class.define("qxapp.data.Store", {
860
841
} = requ.getResponse();
861
842
if (status >= 200 && status <= 299) {
862
843
const listOfRepositories = data;
863
- console.log("listOfServices", listOfRepositories);
864
844
let services = Object.assign({}, this.getBuiltInServices());
865
845
for (const key in listOfRepositories) {
866
846
const repoData = listOfRepositories[key];
867
- services[key] = qxapp.data.Converters.registryToMetaData(repoData);
847
+ const nodeImageId = repoData.key + "-" + repoData.version;
848
+ services[nodeImageId] = repoData;
868
849
}
850
+ if (this.__servicesCache === null) {
851
+ this.__servicesCache = {};
852
+ }
853
+ this.__servicesCache = Object.assign(this.__servicesCache, services);
869
854
this.fireDataEvent("servicesRegistered", services);
870
855
} else {
871
856
// error
872
857
console.error("Error retrieving services: ", data);
873
858
}
874
859
}, this);
875
- req.send();
876
- },
877
860
878
- getComputationalServices: function() {
879
- let req = new qx.io.request.Xhr();
880
- req.set({
881
- url: "/get_computational_services",
882
- method: "GET"
883
- });
884
- req.addListener("success", function(e) {
861
+ req.addListener("fail", function(e) {
885
862
let requ = e.getTarget();
886
863
const {
887
864
data,
888
865
status
889
866
} = requ.getResponse();
890
- if (status >= 200 && status <= 299) {
891
- const listOfRepositories = data;
892
- console.log("listOfServices", listOfRepositories);
893
- let services = [];
894
- for (const key in listOfRepositories) {
895
- const repoData = listOfRepositories[key];
896
- let newMetaData = qxapp.data.Converters.registryToMetaData(repoData);
897
- services.push(newMetaData);
898
- }
899
- this.__servicesCacheComputational = services;
900
- this.fireDataEvent("servicesRegistered", services);
901
- } else {
902
- // error
903
- console.error("Error retrieving services: ", data);
867
+ console.log("getServices failed", data, status);
868
+ let services = this.getFakeServices();
869
+ if (this.__servicesCache === null) {
870
+ this.__servicesCache = {};
904
871
}
872
+ this.__servicesCache = Object.assign(this.__servicesCache, services);
873
+ this.fireDataEvent("servicesRegistered", services);
905
874
}, this);
906
875
req.send();
907
- },
908
-
909
- getInteractiveServices: function() {
910
- let socket = qxapp.wrappers.WebSocket.getInstance();
911
- socket.removeSlot("getInteractiveServices");
912
- socket.on("getInteractiveServices", function(e) {
913
- const {
914
- data,
915
- status
916
- } = e;
917
- if (status >= 200 && status <= 299) {
918
- let listOfInteractiveServices = data;
919
- console.log("listOfInteractiveServices", listOfInteractiveServices);
920
- let services = [];
921
- for (const key in listOfInteractiveServices) {
922
- const repoData = listOfInteractiveServices[key];
923
- let newMetaData = qxapp.data.Converters.registryToMetaData(repoData);
924
- services.push(newMetaData);
925
- }
926
- this.__servicesCacheInteractive = services;
927
- this.fireDataEvent("interactiveServicesRegistered", services);
928
- } else {
929
- // error
930
- console.error("Error retrieving services: ", data);
931
- }
932
- }, this);
933
- socket.emit("getInteractiveServices");
934
876
}
935
877
}
936
878
});
0 commit comments