Skip to content
Snippets Groups Projects
Commit 8773a7d3 authored by scott's avatar scott
Browse files

Fix interest url slice-> map

parent 603c1b93
No related branches found
No related tags found
No related merge requests found
......@@ -34,17 +34,20 @@ import (
)
type dataListener struct {
interestedURL []*common.URL
interestedURL map[string]*common.URL
listener config_center.ConfigurationListener
}
// NewRegistryDataListener ...
func NewRegistryDataListener(listener config_center.ConfigurationListener) *dataListener {
return &dataListener{listener: listener, interestedURL: []*common.URL{}}
return &dataListener{listener: listener, interestedURL: make(map[string]*common.URL, 16)}
}
func (l *dataListener) AddInterestedURL(url *common.URL) {
l.interestedURL = append(l.interestedURL, url)
if _, ok := l.interestedURL[url.String()]; ok {
return
}
l.interestedURL[url.String()] = url
}
func (l *dataListener) DataChange(eventType remoting.Event) bool {
......@@ -56,20 +59,18 @@ func (l *dataListener) DataChange(eventType remoting.Event) bool {
return false
}
for _, v := range l.interestedURL {
if serviceURL.URLEqual(*v) {
l.listener.Process(
&config_center.ConfigChangeEvent{
Key: eventType.Path,
Value: serviceURL,
ConfigType: eventType.Action,
},
)
return true
}
if _, ok := l.interestedURL[serviceURL.String()]; !ok {
return false
}
return false
l.listener.Process(
&config_center.ConfigChangeEvent{
Key: eventType.Path,
Value: serviceURL,
ConfigType: eventType.Action,
},
)
return true
}
type configurationListener struct {
......
......@@ -34,17 +34,21 @@ import (
)
type dataListener struct {
interestedURL []*common.URL
interestedURL map[string]*common.URL
listener config_center.ConfigurationListener
}
// NewRegistryDataListener ...
func NewRegistryDataListener(listener config_center.ConfigurationListener) *dataListener {
return &dataListener{listener: listener}
return &dataListener{listener: listener, interestedURL: make(map[string]*common.URL, 16)}
}
func (l *dataListener) AddInterestedURL(url *common.URL) {
l.interestedURL = append(l.interestedURL, url)
if _, ok := l.interestedURL[url.String()]; ok {
return
}
l.interestedURL[url.String()] = url
}
func (l *dataListener) DataChange(eventType remoting.Event) bool {
......@@ -56,20 +60,19 @@ func (l *dataListener) DataChange(eventType remoting.Event) bool {
return false
}
for _, v := range l.interestedURL {
if serviceURL.URLEqual(*v) {
l.listener.Process(
&config_center.ConfigChangeEvent{
Key: eventType.Path,
Value: serviceURL,
ConfigType: eventType.Action,
},
)
return true
}
if _, ok := l.interestedURL[serviceURL.String()]; !ok {
return false
}
return false
l.listener.Process(
&config_center.ConfigChangeEvent{
Key: eventType.Path,
Value: serviceURL,
ConfigType: eventType.Action,
},
)
return true
}
type configurationListener struct {
......
......@@ -37,18 +37,21 @@ import (
// RegistryDataListener ...
type RegistryDataListener struct {
interestedURL []*common.URL
interestedURL map[string]*common.URL
listener config_center.ConfigurationListener
}
// NewRegistryDataListener ...
func NewRegistryDataListener(listener config_center.ConfigurationListener) *RegistryDataListener {
return &RegistryDataListener{listener: listener, interestedURL: []*common.URL{}}
return &RegistryDataListener{listener: listener, interestedURL: make(map[string]*common.URL, 16)}
}
// AddInterestedURL ...
func (l *RegistryDataListener) AddInterestedURL(url *common.URL) {
l.interestedURL = append(l.interestedURL, url)
if _, ok := l.interestedURL[url.String()]; ok {
return
}
l.interestedURL[url.String()] = url
}
// DataChange ...
......@@ -65,14 +68,19 @@ func (l *RegistryDataListener) DataChange(eventType remoting.Event) bool {
logger.Errorf("Listen NewURL(r{%s}) = error{%v} eventType.Path={%v}", url, err, eventType.Path)
return false
}
for _, v := range l.interestedURL {
if serviceURL.URLEqual(*v) {
l.listener.Process(&config_center.ConfigChangeEvent{Value: serviceURL, ConfigType: eventType.Action})
return true
}
if _, ok := l.interestedURL[serviceURL.String()]; !ok {
return false
}
return false
l.listener.Process(
&config_center.ConfigChangeEvent{
Key: eventType.Path,
Value: serviceURL,
ConfigType: eventType.Action,
},
)
return true
}
// RegistryConfigurationListener ...
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment