prometheusmetricshost-metricsmachine-metricsnode-metricsprocfsprometheus-exportersystem-informationsystem-metrics
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
3.3 KiB
89 lines
3.3 KiB
package dbus |
|
|
|
// Terminator allows a handler to implement a shutdown mechanism that |
|
// is called when the connection terminates. |
|
type Terminator interface { |
|
Terminate() |
|
} |
|
|
|
// Handler is the representation of a D-Bus Application. |
|
// |
|
// The Handler must have a way to lookup objects given |
|
// an ObjectPath. The returned object must implement the |
|
// ServerObject interface. |
|
type Handler interface { |
|
LookupObject(path ObjectPath) (ServerObject, bool) |
|
} |
|
|
|
// ServerObject is the representation of an D-Bus Object. |
|
// |
|
// Objects are registered at a path for a given Handler. |
|
// The Objects implement D-Bus interfaces. The semantics |
|
// of Interface lookup is up to the implementation of |
|
// the ServerObject. The ServerObject implementation may |
|
// choose to implement empty string as a valid interface |
|
// represeting all methods or not per the D-Bus specification. |
|
type ServerObject interface { |
|
LookupInterface(name string) (Interface, bool) |
|
} |
|
|
|
// An Interface is the representation of a D-Bus Interface. |
|
// |
|
// Interfaces are a grouping of methods implemented by the Objects. |
|
// Interfaces are responsible for routing method calls. |
|
type Interface interface { |
|
LookupMethod(name string) (Method, bool) |
|
} |
|
|
|
// A Method represents the exposed methods on D-Bus. |
|
type Method interface { |
|
// Call requires that all arguments are decoded before being passed to it. |
|
Call(args ...interface{}) ([]interface{}, error) |
|
NumArguments() int |
|
NumReturns() int |
|
// ArgumentValue returns a representative value for the argument at position |
|
// it should be of the proper type. reflect.Zero would be a good mechanism |
|
// to use for this Value. |
|
ArgumentValue(position int) interface{} |
|
// ReturnValue returns a representative value for the return at position |
|
// it should be of the proper type. reflect.Zero would be a good mechanism |
|
// to use for this Value. |
|
ReturnValue(position int) interface{} |
|
} |
|
|
|
// An Argument Decoder can decode arguments using the non-standard mechanism |
|
// |
|
// If a method implements this interface then the non-standard |
|
// decoder will be used. |
|
// |
|
// Method arguments must be decoded from the message. |
|
// The mechanism for doing this will vary based on the |
|
// implementation of the method. A normal approach is provided |
|
// as part of this library, but may be replaced with |
|
// any other decoding scheme. |
|
type ArgumentDecoder interface { |
|
// To decode the arguments of a method the sender and message are |
|
// provided incase the semantics of the implementer provides access |
|
// to these as part of the method invocation. |
|
DecodeArguments(conn *Conn, sender string, msg *Message, args []interface{}) ([]interface{}, error) |
|
} |
|
|
|
// A SignalHandler is responsible for delivering a signal. |
|
// |
|
// Signal delivery may be changed from the default channel |
|
// based approach by Handlers implementing the SignalHandler |
|
// interface. |
|
type SignalHandler interface { |
|
DeliverSignal(iface, name string, signal *Signal) |
|
} |
|
|
|
// A DBusError is used to convert a generic object to a D-Bus error. |
|
// |
|
// Any custom error mechanism may implement this interface to provide |
|
// a custom encoding of the error on D-Bus. By default if a normal |
|
// error is returned, it will be encoded as the generic |
|
// "org.freedesktop.DBus.Error.Failed" error. By implementing this |
|
// interface as well a custom encoding may be provided. |
|
type DBusError interface { |
|
DBusError() (string, []interface{}) |
|
}
|
|
|