forked from rstudio/gary-uml
/
session_classes.txt
98 lines (82 loc) · 2.07 KB
/
session_classes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
@startuml
class Job {
+id : string
+name : string
+status : string
+group : string
+progress : int
+max : int
+state : JobState
+type : JobType
+autoRemove : bool
+actions : SEXP
+show : bool
+tags : [strings]
+toJson() : json::Object
{static} +fromJson()
+addOutput(string)
}
class JobsApi {
{static} -jobs : map<string, Job>
{static} -notifyClient()
{static} +addJob() : Job
{static} +jobsAsJson() : json::Object;
}
class ScriptJob {
{static} -scripts : vector<ScriptJob>;
{static} +startScriptJob(ScriptLaunchSpec) : string
{static} +stopScriptJob(string)
}
class AsyncRProcess {
}
class SessionJobs {
{static} jobState() : json::Object
{static} isSuspendable() : bool
{static} onResume()
{static} rpc_get_jobs() : json::Object
{static} rpc_job_output() : json::Array
{static} rpc_set_job_listening()
{static} rpc_run_script_job()
{static} rpc_clear_jobs()
{static} rpc_execute_job_action()
}
class SessionJobs.R {
{static} rs.api.addJob()
{static} rs.api.removeJob()
{static} rs.api.setJobProgress()
{static} rs.api.addJobProgress()
{static} rs.api.setJobStatus()
{static} rs.api.setJobState()
{static} rs.api.addJobOutput()
{static} rs.api.runScriptJob()
{static} rs.api.executeJobAction()
{static} rs.api.stopJob()
{static} rs.api.getJobs()
}
class SourceWithProgress {
{static} -emitProgress()
{static} +sourceWithProgress()
}
class SessionClientInit {
+job_state : string
}
class GwtClient #lightblue {
}
class JobLauncher #lightgreen {
}
JobLauncher ..> JobsApi
AsyncRProcess <|-- ScriptJob
ScriptJob ..> JobsApi
ScriptJob --> Job
ScriptJob ..> SessionJobs.R
JobsApi *-- "0..*" Job
SessionJobs ..> JobsApi
SessionJobs ..> GwtClient : clientevent.job_refresh
SessionClientInit ..> SessionJobs
JobsApi ..> GwtClient : clientevent.job_updated
GwtClient ..> SessionJobs
GwtClient ..> SessionClientInit
Job ..> GwtClient : clientevent.job_output
SessionJobs.R ..> SessionJobs
ScriptJob ..> SourceWithProgress
@enduml