prop

package
v4.1.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 18, 2017 License: BSD-2-Clause Imports: 3 Imported by: 0

Documentation

Overview

Package prop provides the Properties struct which can be used to implement org.freedesktop.DBus.Properties.

Index

Constants

View Source
const IntrospectDataString = `` /* 755-byte string literal not displayed */

The introspection data for the org.freedesktop.DBus.Properties interface, as a string.

Variables

View Source
var ErrIfaceNotFound = dbus.NewError("org.freedesktop.DBus.Properties.Error.InterfaceNotFound", nil)

ErrIfaceNotFound is the error returned to peers who try to access properties on interfaces that aren't found.

View Source
var ErrInvalidArg = dbus.NewError("org.freedesktop.DBus.Properties.Error.InvalidArg", nil)

ErrInvalidArg is returned to peers if the type of the property that is being changed and the argument don't match.

View Source
var ErrPropNotFound = dbus.NewError("org.freedesktop.DBus.Properties.Error.PropertyNotFound", nil)

ErrPropNotFound is the error returned to peers trying to access properties that aren't found.

View Source
var ErrReadOnly = dbus.NewError("org.freedesktop.DBus.Properties.Error.ReadOnly", nil)

ErrReadOnly is the error returned to peers trying to set a read-only property.

View Source
var IntrospectData = introspect.Interface{
	Name: "org.freedesktop.DBus.Properties",
	Methods: []introspect.Method{
		{
			Name: "Get",
			Args: []introspect.Arg{
				{"interface", "s", "in"},
				{"property", "s", "in"},
				{"value", "v", "out"},
			},
		},
		{
			Name: "GetAll",
			Args: []introspect.Arg{
				{"interface", "s", "in"},
				{"props", "a{sv}", "out"},
			},
		},
		{
			Name: "Set",
			Args: []introspect.Arg{
				{"interface", "s", "in"},
				{"property", "s", "in"},
				{"value", "v", "in"},
			},
		},
	},
	Signals: []introspect.Signal{
		{
			Name: "PropertiesChanged",
			Args: []introspect.Arg{
				{"interface", "s", "out"},
				{"changed_properties", "a{sv}", "out"},
				{"invalidates_properties", "as", "out"},
			},
		},
	},
}

The introspection data for the org.freedesktop.DBus.Properties interface.

Functions

This section is empty.

Types

type Change

type Change struct {
	Props *Properties
	Iface string
	Name  string
	Value interface{}
}

Change represents a change of a property by a call to Set.

type EmitType

type EmitType byte

EmitType controls how org.freedesktop.DBus.Properties.PropertiesChanged is emitted for a property. If it is EmitTrue, the signal is emitted. If it is EmitInvalidates, the signal is also emitted, but the new value of the property is not disclosed.

const (
	EmitFalse EmitType = iota
	EmitTrue
	EmitInvalidates
)

type Prop

type Prop struct {
	// Initial value. Must be a DBus-representable type.
	Value interface{}

	// If true, the value can be modified by calls to Set.
	Writable bool

	// Controls how org.freedesktop.DBus.Properties.PropertiesChanged is
	// emitted if this property changes.
	Emit EmitType

	// If not nil, anytime this property is changed by Set, this function is
	// called with an appropiate Change as its argument. If the returned error
	// is not nil, it is sent back to the caller of Set and the property is not
	// changed.
	Callback func(*Change) *dbus.Error
}

Prop represents a single property. It is used for creating a Properties value.

type Properties

type Properties struct {
	// contains filtered or unexported fields
}

Properties is a set of values that can be made available to the message bus using the org.freedesktop.DBus.Properties interface. It is safe for concurrent use by multiple goroutines.

func New

func New(conn *dbus.Conn, path dbus.ObjectPath, props map[string]map[string]*Prop) *Properties

New returns a new Properties structure that manages the given properties. The key for the first-level map of props is the name of the interface; the second-level key is the name of the property. The returned structure will be exported as org.freedesktop.DBus.Properties on path.

func (*Properties) Get

func (p *Properties) Get(iface, property string) (dbus.Variant, *dbus.Error)

Get implements org.freedesktop.DBus.Properties.Get.

func (*Properties) GetAll

func (p *Properties) GetAll(iface string) (map[string]dbus.Variant, *dbus.Error)

GetAll implements org.freedesktop.DBus.Properties.GetAll.

func (*Properties) GetMust

func (p *Properties) GetMust(iface, property string) interface{}

GetMust returns the value of the given property and panics if either the interface or the property name are invalid.

func (*Properties) Introspection

func (p *Properties) Introspection(iface string) []introspect.Property

Introspection returns the introspection data that represents the properties of iface.

func (*Properties) Set

func (p *Properties) Set(iface, property string, newv dbus.Variant) *dbus.Error

Set implements org.freedesktop.Properties.Set.

func (*Properties) SetMust

func (p *Properties) SetMust(iface, property string, v interface{})

SetMust sets the value of the given property and panics if the interface or the property name are invalid.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL