Function: ob-session-async-org-babel-R-evaluate-session

ob-session-async-org-babel-R-evaluate-session is a byte-compiled function defined in ob-R.el.gz.

Signature

(ob-session-async-org-babel-R-evaluate-session SESSION BODY RESULT-TYPE COLUMN-NAMES-P ROW-NAMES-P)

Documentation

Asynchronously evaluate BODY in SESSION.

Returns a placeholder string for insertion, to later be replaced by org-babel-comint-async-filter.

Source Code

;; Defined in /usr/src/emacs/lisp/org/ob-R.el.gz
(defun ob-session-async-org-babel-R-evaluate-session
    (session body result-type column-names-p row-names-p)
  "Asynchronously evaluate BODY in SESSION.
Returns a placeholder string for insertion, to later be replaced
by `org-babel-comint-async-filter'."
  (org-babel-comint-async-register
   session (current-buffer)
   "^\\(?:[>.+] \\)*\\[1\\] \"ob_comint_async_R_\\(start\\|end\\|file\\)_\\(.+\\)\"$"
   'org-babel-chomp
   'ob-session-async-R-value-callback
   'disable-prompt-filtering)
  (cl-case result-type
    (value
     (let ((tmp-file (org-babel-temp-file "R-")))
       (with-temp-buffer
         (insert
          (org-babel-chomp body))
         (let ((ess-local-process-name
                (process-name (get-buffer-process session))))
           (ess-eval-buffer nil)))
       (with-temp-buffer
	 (insert
	  (mapconcat
           'org-babel-chomp
           (list (format org-babel-R-write-object-command
                         (if row-names-p "TRUE" "FALSE")
                         (if column-names-p
                             (if row-names-p "NA" "TRUE")
                           "FALSE")
                         ".Last.value"
                         (org-babel-process-file-name tmp-file 'noquote))
                 (format ob-session-async-R-indicator
                         "file" tmp-file))
           "\n"))
	 (let ((ess-local-process-name
		(process-name (get-buffer-process session))))
	   (ess-eval-buffer nil)))
       tmp-file))
    (output
     (let ((uuid (org-id-uuid))
           (ess-local-process-name
            (process-name (get-buffer-process session)))
           (ess-eval-visibly-p nil))
       (with-temp-buffer
         (insert (format ob-session-async-R-indicator
			 "start" uuid))
         (insert "\n")
         (insert body)
         (insert "\n")
         (insert (format ob-session-async-R-indicator
			 "end" uuid))
         (ess-eval-buffer nil ))
       uuid))))