func (db *dbusImpl) SystemBus() (Connection, error) {
	if db.systemBus == nil {
		bus, err := godbus.SystemBus()
		if err != nil {
			return nil, err
		}
		db.systemBus = &connImpl{bus}
	}
	return db.systemBus, nil
}
SystemBus is part of Interface
package dbus
import (
	godbus "github.com/godbus/dbus"
)
type Interface interface {
	SystemBus() (Connection, error)
	SessionBus() (Connection, error)
}
type Connection interface {
	BusObject() Object
	Object(name, path string) Object
	Signal(ch chan<- *godbus.Signal)
}
type Object interface {
	Call(method string, flags godbus.Flags, args ...interface{}) Call
}
type Call interface {
	Store(retvalues ...interface{}) error
}
type dbusImpl struct {
	systemBus  *connImpl
	sessionBus *connImpl
}
type connImpl struct {
	conn *godbus.Conn
}
type objectImpl struct {
	object godbus.BusObject
}
type callImpl struct {
	call *godbus.Call
}
func New() Interface {
	return &dbusImpl{}
}