package manager import "strings" func (m *Manager) initTopic() { m.topicMap = map[string]string{} } func (m *Manager) GetChannels() (channels []string) { channels = []string{} for name, _ := range m.topicMap { channels = append(channels, name) } return } func (m *Manager) GetTopic(channel string) (retval string) { channel = strings.ToLower(channel) m.topicStateLock.RLock() defer m.topicStateLock.RUnlock() retval, _ = m.topicMap[channel] return } func (m *Manager) SaveTopic(channel string, topic string) { channel = strings.ToLower(channel) m.topicStateLock.Lock() defer m.topicStateLock.Unlock() m.topicMap[channel] = topic } func (m *Manager) DeleteTopic(channel string) { channel = strings.ToLower(channel) m.topicStateLock.Lock() defer m.topicStateLock.Unlock() delete(m.topicMap, channel) }