| … | … | @@ -1,6 +1,6 @@ |
| 1 | 1 | ; |
| 2 | 2 | ; Opencog cogserver module |
| 3 | | ; This is a convenience wrapper around the CogSewrverNode |
| 3 | ; This is a convenience wrapper around the CogServerNode |
| 4 | 4 | ; |
| 5 | 5 | |
| 6 | 6 | (define-module (opencog cogserver)) |
| … | … | @@ -41,10 +41,13 @@ |
| 41 | 41 | uses the ESC char, which is written as \\x1b in guile. |
| 42 | 42 | |
| 43 | 43 | To stop the cogserver, just say stop-cogserver. |
| 44 | |
| 45 | Returns the CogServerNode that was created. |
| 44 | 46 | " |
| 45 | 47 | (if (string? port) (set! port (string->number port))) |
| 46 | 48 | |
| 47 | | (define csn (CogServerNode "cogserver")) |
| 49 | (define name (format #f "cogserver://~a:~a:~a" port web mcp)) |
| 50 | (define csn (CogServerNode name)) |
| 48 | 51 | (cog-set-value! csn (Predicate "*-telnet-port-*") (FloatValue port)) |
| 49 | 52 | (cog-set-value! csn (Predicate "*-web-port-*") (FloatValue web)) |
| 50 | 53 | (cog-set-value! csn (Predicate "*-mcp-port-*") (FloatValue mcp)) |
| … | … | @@ -52,18 +55,30 @@ |
| 52 | 55 | (cog-set-value! csn (Predicate "*-ansi-prompt-*") (StringValue prompt)) |
| 53 | 56 | (cog-set-value! csn (Predicate "*-ansi-scm-prompt-*") (StringValue scmprompt)) |
| 54 | 57 | (cog-set-value! csn (Predicate "*-start-*") (VoidValue)) |
| 58 | csn |
| 55 | 59 | ) |
| 56 | 60 | |
| 57 | | ; Similar to above |
| 58 | | (define (stop-cogserver) |
| 61 | (define* (stop-cogserver #:optional csn) |
| 59 | 62 | " |
| 60 | 63 | stop-cogserver |
| 64 | stop-cogserver CSN |
| 61 | 65 | |
| 62 | | Stop the cogserver. |
| 66 | Stop the cogserver. If a CogServerNode is provided, stop that specific |
| 67 | server. If no argument is given, find all running CogServerNodes. If |
| 68 | there is exactly one, stop it. If there are multiple, throw an error. |
| 63 | 69 | |
| 64 | 70 | See also: start-cogserver |
| 65 | 71 | " |
| 66 | | (define csn (CogServerNode "cogserver")) |
| 72 | (if (not csn) |
| 73 | (let ((servers (cog-get-atoms 'CogServerNode))) |
| 74 | (cond |
| 75 | ((null? servers) |
| 76 | (throw 'cogserver-error "No CogServerNode found")) |
| 77 | ((= 1 (length servers)) |
| 78 | (set! csn (car servers))) |
| 79 | (else |
| 80 | (throw 'cogserver-error |
| 81 | "Multiple CogServerNodes found; specify which one to stop"))))) |
| 67 | 82 | (cog-set-value! csn (Predicate "*-stop-*") (VoidValue)) |
| 68 | 83 | ) |
| 69 | 84 | |