diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-03-10 19:31:14 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-10 19:31:14 +0100 |
commit | a83a94b095b298c1e8cbcaf20f0744a5807df1de (patch) | |
tree | 132e6491ef4e15caa7d7296d2492dbc1f2cb41d8 /vendor/github.com/godbus/dbus/v5/call.go | |
parent | 173f430852e52a1acf69b4d9d18da20893031a79 (diff) | |
parent | 450361fc640751c2a33210a02ceff0874c9f449b (diff) | |
download | podman-a83a94b095b298c1e8cbcaf20f0744a5807df1de.tar.gz podman-a83a94b095b298c1e8cbcaf20f0744a5807df1de.tar.bz2 podman-a83a94b095b298c1e8cbcaf20f0744a5807df1de.zip |
Merge pull request #5448 from vrothberg/update-systemd
update systemd & dbus dependencies
Diffstat (limited to 'vendor/github.com/godbus/dbus/v5/call.go')
-rw-r--r-- | vendor/github.com/godbus/dbus/v5/call.go | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/vendor/github.com/godbus/dbus/v5/call.go b/vendor/github.com/godbus/dbus/v5/call.go new file mode 100644 index 000000000..2cb189012 --- /dev/null +++ b/vendor/github.com/godbus/dbus/v5/call.go @@ -0,0 +1,60 @@ +package dbus + +import ( + "context" + "errors" +) + +var errSignature = errors.New("dbus: mismatched signature") + +// Call represents a pending or completed method call. +type Call struct { + Destination string + Path ObjectPath + Method string + Args []interface{} + + // Strobes when the call is complete. + Done chan *Call + + // After completion, the error status. If this is non-nil, it may be an + // error message from the peer (with Error as its type) or some other error. + Err error + + // Holds the response once the call is done. + Body []interface{} + + // tracks context and canceler + ctx context.Context + ctxCanceler context.CancelFunc +} + +func (c *Call) Context() context.Context { + if c.ctx == nil { + return context.Background() + } + + return c.ctx +} + +func (c *Call) ContextCancel() { + if c.ctxCanceler != nil { + c.ctxCanceler() + } +} + +// Store stores the body of the reply into the provided pointers. It returns +// an error if the signatures of the body and retvalues don't match, or if +// the error status is not nil. +func (c *Call) Store(retvalues ...interface{}) error { + if c.Err != nil { + return c.Err + } + + return Store(c.Body, retvalues...) +} + +func (c *Call) done() { + c.Done <- c + c.ContextCancel() +} |