本文整理汇总了Golang中github.com/godbus/dbus.Store函数的典型用法代码示例。如果您正苦于以下问题:Golang Store函数的具体用法?Golang Store怎么用?Golang Store使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Store函数的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: DisableUnitFiles
// DisableUnitFiles() may be used to disable one or more units in the system (by
// removing symlinks to them from /etc or /run).
//
// It takes a list of unit files to disable (either just file names or full
// absolute paths if the unit files are residing outside the usual unit
// search paths), and one boolean: whether the unit was enabled for runtime
// only (true, /run), or persistently (false, /etc).
//
// This call returns an array with the changes made. The changes list
// consists of structures with three strings: the type of the change (one of
// symlink or unlink), the file name of the symlink and the destination of the
// symlink.
func (c *Conn) DisableUnitFiles(files []string, runtime bool) ([]DisableUnitFileChange, error) {
result := make([][]interface{}, 0)
err := c.sysobj.Call("org.freedesktop.systemd1.Manager.DisableUnitFiles", 0, files, runtime).Store(&result)
if err != nil {
return nil, err
}
resultInterface := make([]interface{}, len(result))
for i := range result {
resultInterface[i] = result[i]
}
changes := make([]DisableUnitFileChange, len(result))
changesInterface := make([]interface{}, len(changes))
for i := range changes {
changesInterface[i] = &changes[i]
}
err = dbus.Store(resultInterface, changesInterface...)
if err != nil {
return nil, err
}
return changes, nil
}
开发者ID:geeks-dev,项目名称:go-systemd,代码行数:37,代码来源:methods.go
示例2: ListUnitFiles
// ListFileUnits returns an array -> `systemctl list-unit-files`.
func (c *Conn) ListUnitFiles() ([]UnitFileStatus, error) {
result := make([][]interface{}, 0)
err := c.sysobj.Call("org.freedesktop.systemd1.Manager.ListUnitFiles", 0).Store(&result)
if err != nil {
return nil, err
}
resultInterface := make([]interface{}, len(result))
for i := range result {
resultInterface[i] = result[i]
}
status := make([]UnitFileStatus, len(result))
statusInterface := make([]interface{}, len(status))
for i := range status {
statusInterface[i] = &status[i]
}
err = dbus.Store(resultInterface, statusInterface...)
if err != nil {
return nil, err
}
return status, nil
}
开发者ID:geeks-dev,项目名称:go-systemd,代码行数:26,代码来源:methods.go
示例3: EnableUnitFiles
// EnableUnitFiles() may be used to enable one or more units in the system (by
// creating symlinks to them in /etc or /run).
//
// It takes a list of unit files to enable (either just file names or full
// absolute paths if the unit files are residing outside the usual unit
// search paths), and two booleans: the first controls whether the unit shall
// be enabled for runtime only (true, /run), or persistently (false, /etc).
// The second one controls whether symlinks pointing to other units shall
// be replaced if necessary.
//
// This call returns one boolean and an array with the changes made. The
// boolean signals whether the unit files contained any enablement
// information (i.e. an [Install]) section. The changes list consists of
// structures with three strings: the type of the change (one of symlink
// or unlink), the file name of the symlink and the destination of the
// symlink.
func (c *Conn) EnableUnitFiles(files []string, runtime bool, force bool) (bool, []EnableUnitFileChange, error) {
var carries_install_info bool
result := make([][]interface{}, 0)
err := c.sysobj.Call("org.freedesktop.systemd1.Manager.EnableUnitFiles", 0, files, runtime, force).Store(&carries_install_info, &result)
if err != nil {
return false, nil, err
}
resultInterface := make([]interface{}, len(result))
for i := range result {
resultInterface[i] = result[i]
}
changes := make([]EnableUnitFileChange, len(result))
changesInterface := make([]interface{}, len(changes))
for i := range changes {
changesInterface[i] = &changes[i]
}
err = dbus.Store(resultInterface, changesInterface...)
if err != nil {
return false, nil, err
}
return carries_install_info, changes, nil
}
开发者ID:geeks-dev,项目名称:go-systemd,代码行数:43,代码来源:methods.go
示例4: listUnitsInternal
func (c *Conn) listUnitsInternal(f storeFunc) ([]UnitStatus, error) {
result := make([][]interface{}, 0)
err := f(&result)
if err != nil {
return nil, err
}
resultInterface := make([]interface{}, len(result))
for i := range result {
resultInterface[i] = result[i]
}
status := make([]UnitStatus, len(result))
statusInterface := make([]interface{}, len(status))
for i := range status {
statusInterface[i] = &status[i]
}
err = dbus.Store(resultInterface, statusInterface...)
if err != nil {
return nil, err
}
return status, nil
}
开发者ID:crosbymichael,项目名称:runc,代码行数:25,代码来源:methods.go
示例5: listUnitFilesInternal
func (c *Conn) listUnitFilesInternal(f storeFunc) ([]UnitFile, error) {
result := make([][]interface{}, 0)
err := f(&result)
if err != nil {
return nil, err
}
resultInterface := make([]interface{}, len(result))
for i := range result {
resultInterface[i] = result[i]
}
files := make([]UnitFile, len(result))
fileInterface := make([]interface{}, len(files))
for i := range files {
fileInterface[i] = &files[i]
}
err = dbus.Store(resultInterface, fileInterface...)
if err != nil {
return nil, err
}
return files, nil
}
开发者ID:crosbymichael,项目名称:runc,代码行数:25,代码来源:methods.go
示例6: ListUnitFiles
// ListUnitFiles returns an array of all available units on disk.
func (c *Conn) ListUnitFiles() ([]UnitFile, error) {
result := make([][]interface{}, 0)
err := c.sysobj.Call("org.freedesktop.systemd1.Manager.ListUnitFiles", 0).Store(&result)
if err != nil {
return nil, err
}
resultInterface := make([]interface{}, len(result))
for i := range result {
resultInterface[i] = result[i]
}
files := make([]UnitFile, len(result))
fileInterface := make([]interface{}, len(files))
for i := range files {
fileInterface[i] = &files[i]
}
err = dbus.Store(resultInterface, fileInterface...)
if err != nil {
return nil, err
}
return files, nil
}
开发者ID:kjplatz,项目名称:vic,代码行数:26,代码来源:methods.go
示例7: listSessions
func (c *logindDbus) listSessions() ([]logindSessionEntry, error) {
var result [][]interface{}
err := c.object.Call(dbusObject+".Manager.ListSessions", 0).Store(&result)
if err != nil {
return nil, err
}
resultInterface := make([]interface{}, len(result))
for i := range result {
resultInterface[i] = result[i]
}
sessions := make([]logindSessionEntry, len(result))
sessionsInterface := make([]interface{}, len(sessions))
for i := range sessions {
sessionsInterface[i] = &sessions[i]
}
err = dbus.Store(resultInterface, sessionsInterface...)
if err != nil {
return nil, err
}
return sessions, nil
}
开发者ID:Jean-Daniel,项目名称:node_exporter,代码行数:25,代码来源:logind_linux.go
示例8: listSeats
func (c *logindDbus) listSeats() ([]string, error) {
var result [][]interface{}
err := c.object.Call(dbusObject+".Manager.ListSeats", 0).Store(&result)
if err != nil {
return nil, err
}
resultInterface := make([]interface{}, len(result))
for i := range result {
resultInterface[i] = result[i]
}
seats := make([]logindSeatEntry, len(result))
seatsInterface := make([]interface{}, len(seats))
for i := range seats {
seatsInterface[i] = &seats[i]
}
err = dbus.Store(resultInterface, seatsInterface...)
if err != nil {
return nil, err
}
ret := make([]string, len(seats)+1)
for i := range seats {
ret[i] = seats[i].SeatId
}
// Always add the empty seat, which is used for remote sessions like SSH
ret[len(seats)] = ""
return ret, nil
}
开发者ID:Jean-Daniel,项目名称:node_exporter,代码行数:32,代码来源:logind_linux.go
示例9: containsDevice
// Check whether the InterfacesAdded signal contains deviceInterface
// See http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager
func containsDevice(s *dbus.Signal) bool {
var dict map[string]map[string]dbus.Variant
err := dbus.Store(s.Body[1:2], &dict)
if err != nil {
return false
}
return dict[deviceInterface] != nil
}
开发者ID:ecc1,项目名称:ble,代码行数:10,代码来源:discover.go
示例10: watch
func (m *unitMonitor) watch() error {
conn, err := dbus.SystemBus()
if err != nil {
return err
}
m.path = m.getUnitPath()
// subscribe the props changes signal
props := fmt.Sprintf("type='signal',path='%s',interface='org.freedesktop.DBus.Properties'", m.path)
call := conn.BusObject().Call("org.freedesktop.DBus.AddMatch", 0, props)
if call != nil && call.Err != nil {
return call.Err
}
// unsubscribe on return
defer func() {
conn.BusObject().Call("org.freedesktop.DBus.RemoveMatch", 0, props)
}()
signal := make(chan *dbus.Signal, 10)
defer close(signal)
conn.Signal(signal)
log.Printf("watching for %s @%s\n", m.name, m.path)
for {
select {
case ev := <-signal:
switch ev.Name {
case propertiesChanged:
var iName string
var changedProps map[string]dbus.Variant
var invProps []string
if ev.Path == m.path {
if err := dbus.Store(ev.Body, &iName, &changedProps, &invProps); err != nil {
log.Println(err.Error())
log.Println("aku dead")
continue
}
if iName == "org.freedesktop.systemd1.Unit" {
m.chanPub <- m.generateStatus()
}
}
}
case <-m.done:
return nil
}
}
return nil
}
开发者ID:bayupermadi,项目名称:sysdagent,代码行数:58,代码来源:main.go
示例11: jobComplete
func (c *Conn) jobComplete(signal *dbus.Signal) {
var id uint32
var job dbus.ObjectPath
var unit string
var result string
dbus.Store(signal.Body, &id, &job, &unit, &result)
c.jobListener.Lock()
out, ok := c.jobListener.jobs[job]
if ok {
out <- result
}
c.jobListener.Unlock()
}
开发者ID:jwhonce,项目名称:go-systemd,代码行数:13,代码来源:methods.go
示例12: applyHandler
func applyHandler(s *dbus.Signal) {
handler := notifyHandler[s.Path]
if handler == nil {
log.Printf("%s: no notify handler", s.Path)
return
}
// Reflection used by dbus.Store() requires explicit type here.
var changed map[string]dbus.Variant
dbus.Store(s.Body[1:2], &changed)
keys := []string{}
for k, _ := range changed {
keys = append(keys, k)
}
data, ok := changed["Value"].Value().([]byte)
if ok {
go handler(data)
}
}
开发者ID:ecc1,项目名称:ble,代码行数:18,代码来源:notify.go
示例13: Store
// Store is part of the Call interface
func (call *fakeCall) Store(retvalues ...interface{}) error {
if call.err != nil {
return call.err
}
return godbus.Store(call.ret, retvalues...)
}
开发者ID:Clarifai,项目名称:kubernetes,代码行数:7,代码来源:fake_dbus.go
注:本文中的github.com/godbus/dbus.Store函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论