aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/tensorboard/components/tf-event-dashboard/dataset.ts
diff options
context:
space:
mode:
Diffstat (limited to 'tensorflow/tensorboard/components/tf-event-dashboard/dataset.ts')
-rw-r--r--tensorflow/tensorboard/components/tf-event-dashboard/dataset.ts41
1 files changed, 41 insertions, 0 deletions
diff --git a/tensorflow/tensorboard/components/tf-event-dashboard/dataset.ts b/tensorflow/tensorboard/components/tf-event-dashboard/dataset.ts
new file mode 100644
index 0000000000..de814583d3
--- /dev/null
+++ b/tensorflow/tensorboard/components/tf-event-dashboard/dataset.ts
@@ -0,0 +1,41 @@
+/// <reference path="../../typings/tsd.d.ts" />
+/// <reference path="../../bower_components/plottable/plottable.d.ts" />
+
+module TF {
+ /* An extension of Plottable.Dataset that knows how to load data from a backend.
+ */
+ export class Dataset extends Plottable.Dataset {
+ public tag: string;
+ public run: string;
+ private lastLoadTime: number;
+ private lastRequest;
+ private urlGenerator: Function;
+
+ constructor(tag: string, run: string, urlGenerator: (run: string, tag: string) => string) {
+ super([], {tag: tag, run: run});
+ this.tag = tag;
+ this.run = run;
+ this.urlGenerator = urlGenerator;
+ }
+
+ public load = _.debounce(this._load, 10);
+
+ private _load() {
+ var url = this.urlGenerator(this.tag, this.run);
+ if (this.lastRequest != null) {
+ this.lastRequest.abort();
+ }
+ this.lastRequest = d3.json(url, (error, json) => {
+ this.lastRequest = null;
+ if (error) {
+ /* tslint:disable */
+ console.log(error);
+ /* tslint:enable */
+ throw new Error("Failure loading JSON at url: \"" + url + "\"");
+ } else {
+ this.data(json);
+ }
+ });
+ }
+ }
+}