7kia / OOD

0 stars 0 forks source link

Замечания по Weather Station #2

Open alexey-malov opened 7 years ago

alexey-malov commented 7 years ago
alexey-malov commented 7 years ago
    void RegisterObserver(ObserverType & observer, unsigned int priority = 0) override
    {
        for (auto iter = m_priority.begin(); iter != m_priority.end(); ++iter)
        {
            if (iter->second == &observer)
            {
                break;
            }
        }
        m_observers.emplace(&observer);
        m_priority.emplace(priority, &observer);
    }
alexey-malov commented 7 years ago
    void RemoveObserver(ObserverType & observer) override
    {
        auto iterObserver = std::find(m_observers.begin(), m_observers.end(), &observer);

        if (iterObserver != m_observers.end())
        {
            m_observers.erase(iterObserver);
            for (auto iter = m_priority.begin(); iter != m_priority.end(); ++iter)
            {
                if (iter->second == &observer)
                {
                    m_priority.erase(iter);
                    break;
                }
            }
        }

    }
        auto priorityIter = std::find_if(m_priority.begin()
                , m_priority.end()
                , [&](std::pair<unsigned int, ObserverType *> pair)
                {
                    if (pair.second == &observer)
                    {
                        return true;
                    }
                    return false;
                }
            );
        auto iterObserver = std::find_if(
            m_observers.begin()
            , m_observers.end()
            , [&](ObserverType * pObserver)
            {
                if (pObserver == &observer)
                {
                    return true;
                }
                return false;
            }
        );
alexey-malov commented 7 years ago
    CWeatherData(const std::string name = "")
        : m_nameStation(name)
    {

    }