diff options
Diffstat (limited to 'vendor/github.com/hashicorp/go-plugin/protocol.go')
-rw-r--r-- | vendor/github.com/hashicorp/go-plugin/protocol.go | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/vendor/github.com/hashicorp/go-plugin/protocol.go b/vendor/github.com/hashicorp/go-plugin/protocol.go new file mode 100644 index 0000000..0cfc19e --- /dev/null +++ b/vendor/github.com/hashicorp/go-plugin/protocol.go | |||
@@ -0,0 +1,45 @@ | |||
1 | package plugin | ||
2 | |||
3 | import ( | ||
4 | "io" | ||
5 | "net" | ||
6 | ) | ||
7 | |||
8 | // Protocol is an enum representing the types of protocols. | ||
9 | type Protocol string | ||
10 | |||
11 | const ( | ||
12 | ProtocolInvalid Protocol = "" | ||
13 | ProtocolNetRPC Protocol = "netrpc" | ||
14 | ProtocolGRPC Protocol = "grpc" | ||
15 | ) | ||
16 | |||
17 | // ServerProtocol is an interface that must be implemented for new plugin | ||
18 | // protocols to be servers. | ||
19 | type ServerProtocol interface { | ||
20 | // Init is called once to configure and initialize the protocol, but | ||
21 | // not start listening. This is the point at which all validation should | ||
22 | // be done and errors returned. | ||
23 | Init() error | ||
24 | |||
25 | // Config is extra configuration to be outputted to stdout. This will | ||
26 | // be automatically base64 encoded to ensure it can be parsed properly. | ||
27 | // This can be an empty string if additional configuration is not needed. | ||
28 | Config() string | ||
29 | |||
30 | // Serve is called to serve connections on the given listener. This should | ||
31 | // continue until the listener is closed. | ||
32 | Serve(net.Listener) | ||
33 | } | ||
34 | |||
35 | // ClientProtocol is an interface that must be implemented for new plugin | ||
36 | // protocols to be clients. | ||
37 | type ClientProtocol interface { | ||
38 | io.Closer | ||
39 | |||
40 | // Dispense dispenses a new instance of the plugin with the given name. | ||
41 | Dispense(string) (interface{}, error) | ||
42 | |||
43 | // Ping checks that the client connection is still healthy. | ||
44 | Ping() error | ||
45 | } | ||