rename diff.New*Decoder to New*Parser
parent
e3593761b5
commit
05ee91f8bd
|
@ -23,6 +23,8 @@ type Element struct {
|
||||||
Rel *element.Relation
|
Rel *element.Relation
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Parser is a stream based parser for OSM diff files (.osc).
|
||||||
|
// Parsing is handled in a background goroutine.
|
||||||
type Parser struct {
|
type Parser struct {
|
||||||
reader io.Reader
|
reader io.Reader
|
||||||
elems chan Element
|
elems chan Element
|
||||||
|
@ -32,10 +34,14 @@ type Parser struct {
|
||||||
onClose func() error
|
onClose func() error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetWithMetadata enables parsing of metadata
|
||||||
func (p *Parser) SetWithMetadata(metadata bool) {
|
func (p *Parser) SetWithMetadata(metadata bool) {
|
||||||
p.metadata = metadata
|
p.metadata = metadata
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Next returns the next Element of the .osc file.
|
||||||
|
// Returns io.EOF and an empty Element if the parser
|
||||||
|
// reached the end of the .osc file.
|
||||||
func (p *Parser) Next() (Element, error) {
|
func (p *Parser) Next() (Element, error) {
|
||||||
if !p.running {
|
if !p.running {
|
||||||
p.running = true
|
p.running = true
|
||||||
|
@ -67,13 +73,15 @@ func (p *Parser) Next() (Element, error) {
|
||||||
return Element{}, nil
|
return Element{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewDecoder(r io.Reader) *Parser {
|
// NewParser returns a parser from an io.Reader
|
||||||
|
func NewParser(r io.Reader) *Parser {
|
||||||
elems := make(chan Element)
|
elems := make(chan Element)
|
||||||
errc := make(chan error)
|
errc := make(chan error)
|
||||||
return &Parser{reader: r, elems: elems, errc: errc}
|
return &Parser{reader: r, elems: elems, errc: errc}
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewOscGzDecoder(fname string) (*Parser, error) {
|
// NewOscGzParser returns a parser from a .osc.gz file
|
||||||
|
func NewOscGzParser(fname string) (*Parser, error) {
|
||||||
file, err := os.Open(fname)
|
file, err := os.Open(fname)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
@ -101,7 +101,7 @@ func Update(oscFile string, geometryLimiter *limit.Limiter, expireor expire.Expi
|
||||||
|
|
||||||
defer log.StopStep(log.StartStep(fmt.Sprintf("Processing %s", oscFile)))
|
defer log.StopStep(log.StartStep(fmt.Sprintf("Processing %s", oscFile)))
|
||||||
|
|
||||||
parser, err := diff.NewOscGzDecoder(oscFile)
|
parser, err := diff.NewOscGzParser(oscFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue