From 72c4b2518a77ee9952a0fa25ae671f06d8d85570 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 26 Jan 2020 22:30:00 -0500 Subject: it compiles --- rrdformat/format.go | 60 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 23 deletions(-) (limited to 'rrdformat/format.go') diff --git a/rrdformat/format.go b/rrdformat/format.go index 71bd966..8898ffd 100644 --- a/rrdformat/format.go +++ b/rrdformat/format.go @@ -1,11 +1,8 @@ package rrdformat import ( - "bytes" - "encoding" - "encoding/binary" + //"encoding" "encoding/xml" - "math" "git.lukeshu.com/go/librrd/rrdformat/rrdbinary" ) @@ -48,12 +45,12 @@ const XMLNS = "https://oss.oetiker.ch/rrdtool/rrdtool-dump.xml" type RRDValue = rrdbinary.Float type Header struct { - Cookie rrdbinary.String `rrdbinary:"size=3" xml:"-"` - Version rrdbinary.String `rrdbinary:"size=4" xml:"version"` + Cookie rrdbinary.String `rrdbinary:"size=4" xml:"-"` + Version rrdbinary.String `rrdbinary:"size=5" xml:"version"` FloatCookie rrdbinary.Float `xml:"-"` DSCnt rrdbinary.Uint `xml:"-"` RRACnt rrdbinary.Uint `xml:"-"` - DPDStep rrdbinary.Uint `xml:"step"` + PDPStep rrdbinary.Uint `xml:"step"` Parameters [10]rrdbinary.Unival `xml:"-"` } @@ -66,10 +63,10 @@ type DSDef struct { type RRADef struct { CFName rrdbinary.String `rrdbinary:"size=20"` RowCnt rrdbinary.Uint - PDPCnt rrdBinary.Uint + PDPCnt rrdbinary.Uint } -type Timestamp struct { +type Time struct { Sec rrdbinary.Time Usec rrdbinary.Int // signed, but always >= 0 } @@ -92,24 +89,41 @@ type RRDv0004 = RRDv0003 type RRDv0003 struct { Header Header - DSDefs []DSDef - RRADefs []RRADef - LastUpdated Timestamp - PDPPrep TODO - CPDPrep TODO - RRAPtr TODO - Values []RRDValue + DSDefs []DSDef // .Header.DSCnt + RRADefs []RRADef // .Header.RRACnt + LastUpdated Time + PDPPrep []PDPPrep // .Header.DSCnt + CDPPrep []CDPPrep // .Header.DSCnt * .Header.RRACnt + RRAPtr []RRAPtr // .Header.RRACnt + Values []RRDValue // Σ .RRADefs[i].RowCnt*.Header.DsCnt } type RRDv0002 = RRDv0001 type RRDv0001 struct { Header Header - DSDefs []DSDef - RRADefs []RRADef - LastUpdated rrdbinary.Timestamp - PDPPrep TODO - CPDPrep TODO - RRAPtr TODO - Values []RRDValue + DSDefs []DSDef // .Header.DSCnt + RRADefs []RRADef // .Header.RRACnt + LastUpdated rrdbinary.Time + PDPPrep []PDPPrep // .Header.DSCnt + CDPPrep []CDPPrep // .Header.DSCnt * .Header.RRACnt + RRAPtr []RRAPtr // .Header.RRACnt + Values []RRDValue // Σ .RRADefs[i].RowCnt*.Header.DsCnt } + +func (h *Header) MarshalXML(e *xml.Encoder, start xml.StartElement) error { + if err := e.EncodeElement(h.Version, xml.StartElement{Name: xml.Name{Local: "version", Space: XMLNS}}); err != nil { + return err + } + if err := e.EncodeElement(h.PDPStep, xml.StartElement{Name: xml.Name{Local: "step", Space: XMLNS}}); err != nil { + return err + } + return nil +} + +//var _ encoding.BinaryMarshaler = &Header{} +//var _ encoding.BinaryUnmarshaler = &Header{} + +var _ xml.Marshaler = &Header{} + +//var _ xml.Unmarshaler = &Header{} -- cgit v1.2.3