2 import "Serialization"
\r
7 "org.rosuda.REngine.Rserve.RConnection"
\r
9 importJava "org.simantics.r.scl.RSessionConfiguration" where
\r
10 data SessionConfiguration =
\r
11 @FieldNames [host, port, username, password]
\r
12 SessionConfiguration String Integer String String
\r
14 importJava "org.simantics.r.scl.RSession" where
\r
16 syncExec :: Session -> (<R> a) -> <Proc> a
\r
17 asyncExec :: Session -> (<R> a) -> <Proc> ()
\r
19 sessionIdOf :: Session -> String
\r
21 closeSession :: Session -> <Proc> ()
\r
22 @JavaName refreshVariablesSync
\r
23 refreshVariables :: Session -> <Proc> ()
\r
25 importJava "org.simantics.r.scl.RSessionManager" where
\r
26 @JavaName getSession
\r
27 sessionById :: String -> <Proc> Maybe Session
\r
28 createSession :: SessionConfiguration -> <Proc> Session
\r
29 withConfiguration :: SessionConfiguration-> (<R,e> a) -> <Proc,e> a
\r
30 getOrCreateSession :: SessionConfiguration -> String -> <Proc> Session
\r
32 importJava "org.rosuda.REngine.Rserve.RConnection" where
\r
34 evalRExp:: String -> <R> RExp
\r
36 evalR_ :: String -> <R> ()
\r
38 evalRS_ :: String -> <R> String
\r
40 assignRExp :: String -> RExp -> <R> ()
\r
41 @JavaName createFile
\r
42 createFileR :: String -> <R> OutputStream
\r
44 openFileR :: String -> <R> InputStream
\r
46 evalR :: RCompatible a => String -> <R> a
\r
47 evalR = fromRExp . evalRExp
\r
49 assignR :: RCompatible a => String -> a -> <R> ()
\r
50 assignR name = assignRExp name . toRExp
\r
52 readFileAsStringR :: String -> <R> String
\r
53 readFileAsStringR name = runProc (readAllString (openFileR name))
\r
56 conf = SessionConfiguration "130.188.198.138" 6311 "simupedia" "simupedia"
\r
57 session = createSession conf
\r
58 print $ syncExec session (evalR "1+1")
\r