Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
tpzker

OETF #18 Open Inter-Process Communication

Recommended Posts

This is a draft. Examples of software will be coded later.

Concepts

  • Socket: A file on the system which links two programs' communications.
  • OC: Abbreviation for "OpenComputers"
  • OS: Abbreviation for "Operating System"
  • OpenOS: The stock OS for OC computers.
  • Socket: a medium for communication between two or more programs

Rationale

To standardize any possible IPC implementations

Basic Concepts

  • Background programs (or daemons) can be started with a simple wrapper, such as this example code:
thread.create(function()
	shell.execute(ENV, "/bin/daemon.lua")
end)
  • Programs can communicate with sockets through the signals defined in this document
  • These signals can be created with "computer.pushSignal(name: string, [...])"
  • They can be received with "event.pull([timeout: number], [name:string], ...)" or "event.listen(event: string, callback: function)", or on a low-level basis with "computer.pullSignal([timeout: number])"

Signals

oipc_sock_comms(socketID: string, <... (message)>) -- OIPC Socket Communications
-- message must be of type nil, boolean, number, string, table (tables and other messages MUST NOT contain threads and functions due to the limitations of computer.pushSignal())

Notes

Please note that OIPC will only work with OSes which pass signals to all subprocesses instead of simply consuming the signal on "computer.pullSignal", "event.pull", or similar functions to wait for/listen for signals.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.