Sha256: d0fe0e8109f055e0494eb0c36678297ee769fdc44487a64c0a6781fb78e827fb

Contents?: true

Size: 1.2 KB

Versions: 16

Compression:

Stored size: 1.2 KB

Contents

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()
}

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
ruby_snowflake_client-1.3.7 ext/vendor/github.com/godbus/dbus/call.go
ruby_snowflake_client-1.3.6 ext/vendor/github.com/godbus/dbus/call.go
ruby_snowflake_client-1.3.5 ext/vendor/github.com/godbus/dbus/call.go
ruby_snowflake_client-1.3.4 ext/vendor/github.com/godbus/dbus/call.go
ruby_snowflake_client-1.3.4.pre.debug ext/vendor/github.com/godbus/dbus/call.go
ruby_snowflake_client-1.3.3.pre.debug ext/vendor/github.com/godbus/dbus/call.go
ruby_snowflake_client-1.3.2 ext/vendor/github.com/godbus/dbus/call.go
ruby_snowflake_client-1.3.1 ext/vendor/github.com/godbus/dbus/call.go
ruby_snowflake_client-1.3.0 ext/vendor/github.com/godbus/dbus/call.go
ruby_snowflake_client-1.2.1 ext/vendor/github.com/godbus/dbus/call.go
ruby_snowflake_client-1.2.0 ext/vendor/github.com/godbus/dbus/call.go
ruby_snowflake_client-1.1.1 ext/vendor/github.com/godbus/dbus/call.go
ruby_snowflake_client-1.1.0 ext/vendor/github.com/godbus/dbus/call.go
ruby_snowflake_client-1.0.2 ext/vendor/github.com/godbus/dbus/call.go
ruby_snowflake_client-1.0.1 ext/vendor/github.com/godbus/dbus/call.go
ruby_snowflake_client-1.0.0 ext/vendor/github.com/godbus/dbus/call.go