PLT-7407: Back-end plugin mechanism (#7177)

* begin backend plugin wip

* flesh out rpcplugin. everything done except for minor supervisor stubs

* done with basic plugin infrastructure

* simplify tests

* remove unused test lines
Этот коммит содержится в:
Chris
2017-08-16 17:23:38 -05:00
коммит произвёл GitHub
родитель 4f85ed985d
Коммит f80d50adbd
33 изменённых файлов: 2163 добавлений и 1 удалений

23
plugin/rpcplugin/process.go Обычный файл
Просмотреть файл

@@ -0,0 +1,23 @@
package rpcplugin
import (
"context"
"io"
)
type Process interface {
// Waits for the process to exit and returns an error if a problem occurred or the process exited
// with a non-zero status.
Wait() error
}
// NewProcess launches an RPC executable in a new process and returns an IPC that can be used to
// communicate with it.
func NewProcess(ctx context.Context, path string) (Process, io.ReadWriteCloser, error) {
return newProcess(ctx, path)
}
// When called on a process launched with NewProcess, returns the inherited IPC.
func InheritedProcessIPC() (io.ReadWriteCloser, error) {
return inheritedProcessIPC()
}