Documentation ¶
Overview ¶
Package prop provides the Properties struct which can be used to implement org.freedesktop.DBus.Properties.
Index ¶
- Constants
- Variables
- type Change
- type EmitType
- type Prop
- type Properties
- func (p *Properties) Get(iface, property string) (dbus.Variant, *dbus.Error)
- func (p *Properties) GetAll(iface string) (map[string]dbus.Variant, *dbus.Error)
- func (p *Properties) GetMust(iface, property string) interface{}
- func (p *Properties) Introspection(iface string) []introspect.Property
- func (p *Properties) Set(iface, property string, newv dbus.Variant) *dbus.Error
- func (p *Properties) SetMust(iface, property string, v interface{})
Constants ¶
const IntrospectDataString = `` /* 759-byte string literal not displayed */
The introspection data for the org.freedesktop.DBus.Properties interface, as a string.
Variables ¶
var ErrIfaceNotFound = &dbus.Error{"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.
var ErrInvalidArg = &dbus.Error{"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.
var ErrPropNotFound = &dbus.Error{"org.freedesktop.DBus.Properties.Error.PropertyNotFound", nil}
ErrPropNotFound is the error returned to peers trying to access properties that aren't found.
var ErrReadOnly = &dbus.Error{"org.freedesktop.DBus.Properties.Error.ReadOnly", nil}
ErrReadOnly is the error returned to peers trying to set a read-only property.
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.
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) 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) 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.