chromedp/cdp/systeminfo/systeminfo.go

76 lines
2.4 KiB
Go
Raw Normal View History

2017-01-24 15:09:23 +00:00
// Package systeminfo provides the Chrome Debugging Protocol
// commands, types, and events for the Chrome SystemInfo domain.
//
// The SystemInfo domain defines methods and events for querying low-level
// system information.
//
// Generated by the chromedp-gen command.
package systeminfo
// AUTOGENERATED. DO NOT EDIT.
import (
"context"
2017-01-26 07:28:34 +00:00
cdp "github.com/knq/chromedp/cdp"
2017-01-24 15:09:23 +00:00
"github.com/mailru/easyjson"
)
// GetInfoParams returns information about the system.
type GetInfoParams struct{}
// GetInfo returns information about the system.
func GetInfo() *GetInfoParams {
return &GetInfoParams{}
}
// GetInfoReturns return values.
type GetInfoReturns struct {
Gpu *GPUInfo `json:"gpu,omitempty"` // Information about the GPUs on the system.
ModelName string `json:"modelName,omitempty"` // A platform-dependent description of the model of the machine. On Mac OS, this is, for example, 'MacBookPro'. Will be the empty string if not supported.
ModelVersion string `json:"modelVersion,omitempty"` // A platform-dependent description of the version of the machine. On Mac OS, this is, for example, '10.1'. Will be the empty string if not supported.
}
// Do executes SystemInfo.getInfo.
//
// returns:
// gpu - Information about the GPUs on the system.
// modelName - A platform-dependent description of the model of the machine. On Mac OS, this is, for example, 'MacBookPro'. Will be the empty string if not supported.
// modelVersion - A platform-dependent description of the version of the machine. On Mac OS, this is, for example, '10.1'. Will be the empty string if not supported.
2017-01-26 07:28:34 +00:00
func (p *GetInfoParams) Do(ctxt context.Context, h cdp.FrameHandler) (gpu *GPUInfo, modelName string, modelVersion string, err error) {
2017-01-24 15:09:23 +00:00
if ctxt == nil {
ctxt = context.Background()
}
// execute
2017-01-26 07:28:34 +00:00
ch := h.Execute(ctxt, cdp.CommandSystemInfoGetInfo, cdp.Empty)
2017-01-24 15:09:23 +00:00
// read response
select {
case res := <-ch:
if res == nil {
2017-01-26 07:28:34 +00:00
return nil, "", "", cdp.ErrChannelClosed
2017-01-24 15:09:23 +00:00
}
switch v := res.(type) {
case easyjson.RawMessage:
// unmarshal
var r GetInfoReturns
err = easyjson.Unmarshal(v, &r)
if err != nil {
2017-01-26 07:28:34 +00:00
return nil, "", "", cdp.ErrInvalidResult
2017-01-24 15:09:23 +00:00
}
return r.Gpu, r.ModelName, r.ModelVersion, nil
case error:
return nil, "", "", v
}
case <-ctxt.Done():
2017-01-26 07:28:34 +00:00
return nil, "", "", cdp.ErrContextDone
2017-01-24 15:09:23 +00:00
}
2017-01-26 07:28:34 +00:00
return nil, "", "", cdp.ErrUnknownResult
2017-01-24 15:09:23 +00:00
}