Attempt to tidy generated documentation.
This commit is contained in:
parent
38405bcf8d
commit
92b4aac9bb
@ -34,48 +34,32 @@ type {{$srvIdent}} struct {
|
|||||||
|
|
||||||
{{range .SCPD.Actions}}{{/* loops over *SCPDWithURN values */}}
|
{{range .SCPD.Actions}}{{/* loops over *SCPDWithURN values */}}
|
||||||
|
|
||||||
|
{{$inargs := .InputArguments}}{{$outargs := .OutputArguments}}
|
||||||
// {{.Name}} action.
|
// {{.Name}} action.
|
||||||
// Arguments:
|
|
||||||
//{{range .Arguments}}{{if .IsInput}}
|
|
||||||
// * {{.Name}}: {{$v := $srv.SCPD.GetStateVariable .RelatedStateVariable}}
|
|
||||||
{{if $v}}// (related state variable: {{$v.Name}})
|
|
||||||
// - {{if $v.AllowedValueRange}}allowed range: {{$v.AllowedValueRange.Minimum}} to {{$v.AllowedValueRange.Maximum}}{{end}}
|
|
||||||
// - {{if $v.AllowedValues}}allowed values:
|
|
||||||
// {{range $i, $val := $v.AllowedValues}}{{if $i}}|{{end}}{{$val}}{{end}}{{end}}
|
|
||||||
//{{else}}
|
|
||||||
// (unknown){{end}}
|
|
||||||
//{{end}}{{end}}
|
|
||||||
//
|
//
|
||||||
// Return values:
|
// {{if $inargs}}Arguments:{{range $inargs}}{{$argWrap := $srv.WrapArgument .}}
|
||||||
//{{range .Arguments}}{{if .IsOutput}}
|
// * {{.Name}}: {{$argWrap.Document}}
|
||||||
// * {{.Name}}: {{$v := $srv.SCPD.GetStateVariable .RelatedStateVariable}}
|
|
||||||
{{if $v}}// (related state variable: {{$v.Name}})
|
|
||||||
// - {{if $v.AllowedValueRange}}allowed range: {{$v.AllowedValueRange.Minimum}} to {{$v.AllowedValueRange.Maximum}}{{end}}
|
|
||||||
// - {{if $v.AllowedValues}}allowed values:
|
|
||||||
// {{range $i, $val := $v.AllowedValues}}{{if $i}}|{{end}}{{$val}}{{end}}{{end}}
|
|
||||||
//{{else}}
|
|
||||||
// (unknown){{end}}
|
|
||||||
//{{end}}{{end}}
|
//{{end}}{{end}}
|
||||||
func (client *{{$srvIdent}}) {{.Name}}({{range .Arguments}}{{if .IsInput}}
|
// {{if $outargs}}Return values:{{range $outargs}}{{$argWrap := $srv.WrapArgument .}}
|
||||||
{{$argWrap := $srv.Argument .}}{{$argWrap.AsParameter}},{{end}}{{end}}
|
// * {{.Name}}: {{$argWrap.Document}}
|
||||||
) ({{range .Arguments}}{{if .IsOutput}}
|
//{{end}}{{end}}
|
||||||
{{$argWrap := $srv.Argument .}}{{$argWrap.AsParameter}},{{end}}{{end}}
|
func (client *{{$srvIdent}}) {{.Name}}({{range $inargs}}{{/*
|
||||||
err error,
|
*/}}{{$argWrap := $srv.WrapArgument .}}{{$argWrap.AsParameter}}, {{end}}{{/*
|
||||||
) {
|
*/}}) ({{range $outargs}}{{/*
|
||||||
|
*/}}{{$argWrap := $srv.WrapArgument .}}{{$argWrap.AsParameter}}, {{end}} err error) {
|
||||||
// Request structure.
|
// Request structure.
|
||||||
var request struct {{"{"}}{{range .Arguments}}{{if .IsInput}}{{.Name}} string
|
var request struct {{"{"}}{{range .Arguments}}{{if .IsInput}}{{.Name}} string
|
||||||
{{end}}{{end}}}
|
{{end}}{{end}}}
|
||||||
// BEGIN Marshal arguments into request.
|
// BEGIN Marshal arguments into request.
|
||||||
{{range .Arguments}}{{if .IsInput}}{{$argWrap := $srv.Argument .}}
|
{{range $inargs}}{{$argWrap := $srv.WrapArgument .}}
|
||||||
if request.{{.Name}}, err = {{$argWrap.Marshal}}; err != nil {
|
if request.{{.Name}}, err = {{$argWrap.Marshal}}; err != nil {
|
||||||
return
|
return
|
||||||
}
|
}{{end}}
|
||||||
{{end}}{{end}}
|
|
||||||
// END Marshal arguments into request.
|
// END Marshal arguments into request.
|
||||||
|
|
||||||
// Response structure.
|
// Response structure.
|
||||||
var response struct {{"{"}}{{range .Arguments}}{{if .IsOutput}}{{.Name}} string
|
var response struct {{"{"}}{{range $outargs}}{{.Name}} string
|
||||||
{{end}}{{end}}}
|
{{end}}}
|
||||||
|
|
||||||
// Perform the SOAP call.
|
// Perform the SOAP call.
|
||||||
if err = client.SOAPClient.PerformAction({{$srv.URNParts.Const}}, "{{.Name}}", &request, &response); err != nil {
|
if err = client.SOAPClient.PerformAction({{$srv.URNParts.Const}}, "{{.Name}}", &request, &response); err != nil {
|
||||||
@ -83,11 +67,10 @@ func (client *{{$srvIdent}}) {{.Name}}({{range .Arguments}}{{if .IsInput}}
|
|||||||
}
|
}
|
||||||
|
|
||||||
// BEGIN Unmarshal arguments from response.
|
// BEGIN Unmarshal arguments from response.
|
||||||
{{range .Arguments}}{{if .IsOutput}}{{$argWrap := $srv.Argument .}}
|
{{range $outargs}}{{$argWrap := $srv.WrapArgument .}}
|
||||||
if {{.Name}}, err = {{$argWrap.Unmarshal "response"}}; err != nil {
|
if {{.Name}}, err = {{$argWrap.Unmarshal "response"}}; err != nil {
|
||||||
return
|
return
|
||||||
}
|
}{{end}}
|
||||||
{{end}}{{end}}
|
|
||||||
// END Unmarshal arguments from response.
|
// END Unmarshal arguments from response.
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -215,7 +215,7 @@ type SCPDWithURN struct {
|
|||||||
SCPD *scpd.SCPD
|
SCPD *scpd.SCPD
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SCPDWithURN) Argument(arg scpd.Argument) (*argumentWrapper, error) {
|
func (s *SCPDWithURN) WrapArgument(arg scpd.Argument) (*argumentWrapper, error) {
|
||||||
relVar := s.SCPD.GetStateVariable(arg.RelatedStateVariable)
|
relVar := s.SCPD.GetStateVariable(arg.RelatedStateVariable)
|
||||||
if relVar == nil {
|
if relVar == nil {
|
||||||
return nil, fmt.Errorf("no such state variable: %q, for argument %q", arg.RelatedStateVariable, arg.Name)
|
return nil, fmt.Errorf("no such state variable: %q, for argument %q", arg.RelatedStateVariable, arg.Name)
|
||||||
@ -241,6 +241,27 @@ func (arg *argumentWrapper) AsParameter() string {
|
|||||||
return fmt.Sprintf("%s %s", arg.Name, arg.conv.ExtType)
|
return fmt.Sprintf("%s %s", arg.Name, arg.conv.ExtType)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (arg *argumentWrapper) Document() string {
|
||||||
|
relVar := arg.relVar
|
||||||
|
if rng := relVar.AllowedValueRange; rng != nil {
|
||||||
|
var parts []string
|
||||||
|
if rng.Minimum != "" {
|
||||||
|
parts = append(parts, fmt.Sprintf("minimum=%s", rng.Minimum))
|
||||||
|
}
|
||||||
|
if rng.Maximum != "" {
|
||||||
|
parts = append(parts, fmt.Sprintf("maximum=%s", rng.Maximum))
|
||||||
|
}
|
||||||
|
if rng.Step != "" {
|
||||||
|
parts = append(parts, fmt.Sprintf("step=%s", rng.Step))
|
||||||
|
}
|
||||||
|
return "allowed value range: " + strings.Join(parts, ", ")
|
||||||
|
}
|
||||||
|
if len(relVar.AllowedValues) != 0 {
|
||||||
|
return "allowed values: " + strings.Join(relVar.AllowedValues, ", ")
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
func (arg *argumentWrapper) Marshal() string {
|
func (arg *argumentWrapper) Marshal() string {
|
||||||
return fmt.Sprintf("soap.Marshal%s(%s)", arg.conv.FuncSuffix, arg.Name)
|
return fmt.Sprintf("soap.Marshal%s(%s)", arg.conv.FuncSuffix, arg.Name)
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
22
scpd/scpd.go
22
scpd/scpd.go
@ -66,6 +66,28 @@ func (action *Action) clean() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (action *Action) InputArguments() []*Argument {
|
||||||
|
var result []*Argument
|
||||||
|
for i := range action.Arguments {
|
||||||
|
arg := &action.Arguments[i]
|
||||||
|
if arg.IsInput() {
|
||||||
|
result = append(result, arg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
func (action *Action) OutputArguments() []*Argument {
|
||||||
|
var result []*Argument
|
||||||
|
for i := range action.Arguments {
|
||||||
|
arg := &action.Arguments[i]
|
||||||
|
if arg.IsOutput() {
|
||||||
|
result = append(result, arg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
type Argument struct {
|
type Argument struct {
|
||||||
Name string `xml:"name"`
|
Name string `xml:"name"`
|
||||||
Direction string `xml:"direction"` // in|out
|
Direction string `xml:"direction"` // in|out
|
||||||
|
Loading…
x
Reference in New Issue
Block a user