Files

29 lines
2.0 KiB
Plaintext

import interface Named;
import interface ProjectTasks;
external atom Project id "atom:project";
external atom Task id "atom:task";
package ProjectRuntime id "package:project-runtime" revision "package:project-runtime@1" {
constructor createProject id "export:project-runtime:create-project" constructs Project : unit;
operation addTask id "export:project-runtime:add-task" : string -> atom-ref<Task> mode call receiver atom Project requires {
edge tasks id "port:project-actions:tasks" : many-unique atom Task [connect];
constructor task id "port:project-actions:task-constructor" : Task;
};
operation taskCountGet id "export:project-runtime:task-count-get" : unit -> uint32 mode call receiver atom Project requires {
edge tasks id "port:project-count:tasks" : many-unique atom Task [resolve];
};
operation taskCountWatch id "export:project-runtime:task-count-watch" : unit -> watch-handle mode watch-start emits uint32 receiver atom Project requires {
edge tasks id "port:project-count:tasks" : many-unique atom Task [resolve];
};
operation taskCountWatchStop id "export:project-runtime:task-count-watch-stop" : watch-handle -> unit mode watch-stop receiver atom Project;
operation searchDocumentGet id "export:project-runtime:search-document-get" : unit -> message "org.quixos.web-studio.SearchDocument" mode call receiver atom Project requires {
interface named id "port:project-search:named" : Named;
interface tasks id "port:project-search:tasks" : ProjectTasks;
};
operation searchDocumentWatch id "export:project-runtime:search-document-watch" : unit -> watch-handle mode watch-start emits message "org.quixos.web-studio.SearchDocument" receiver atom Project requires {
interface named id "port:project-search:named" : Named;
interface tasks id "port:project-search:tasks" : ProjectTasks;
};
operation searchDocumentWatchStop id "export:project-runtime:search-document-watch-stop" : watch-handle -> unit mode watch-stop receiver atom Project;
}