VirtualBox

Changeset 72395 in vbox for trunk


Ignore:
Timestamp:
May 30, 2018 10:39:13 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
122858
Message:

HostDnsService: don't pretend there can be multiple proxies.
while here, drop some bogus const.

Location:
trunk/src/VBox/Main/src-server
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-server/HostDnsService.cpp

    r72394 r72395  
    8282{
    8383    Data(bool aThreaded)
    84       : uLastExtraDataPoll(0),
     84      : proxy(NULL),
     85        uLastExtraDataPoll(0),
    8586        fLaxComparison(0),
    8687        fThreaded(aThreaded),
     
    8889    {}
    8990
    90     std::vector<PCHostDnsMonitorProxy> proxies;
     91    HostDnsMonitorProxy *proxy;
    9192    HostDnsInformation info;
    9293    uint64_t uLastExtraDataPoll;
     
    100101struct HostDnsMonitorProxy::Data
    101102{
    102     Data(const HostDnsMonitor *aMonitor, VirtualBox *aParent)
     103    Data(HostDnsMonitor *aMonitor, VirtualBox *aParent)
    103104      : info(NULL)
    104105      , virtualbox(aParent)
     
    118119    HostDnsInformation *info;
    119120    VirtualBox *virtualbox;
    120     const HostDnsMonitor *monitor;
     121    HostDnsMonitor *monitor;
    121122    bool fModified;
    122123};
     
    138139}
    139140
    140 const HostDnsMonitor *HostDnsMonitor::getHostDnsMonitor(VirtualBox *aParent)
     141HostDnsMonitor *HostDnsMonitor::getHostDnsMonitor(VirtualBox *aParent)
    141142{
    142143    /* XXX: Moved initialization from HostImpl.cpp */
     
    164165}
    165166
    166 void HostDnsMonitor::addMonitorProxy(PCHostDnsMonitorProxy proxy) const
     167void HostDnsMonitor::setMonitorProxy(HostDnsMonitorProxy *proxy)
    167168{
    168169    RTCLock grab(m_LockMtx);
    169     m->proxies.push_back(proxy);
     170    Assert(m != NULL && m->proxy == NULL);
     171    m->proxy = proxy;
    170172    proxy->notify();
    171 }
    172 
    173 void HostDnsMonitor::releaseMonitorProxy(PCHostDnsMonitorProxy proxy) const
    174 {
    175     RTCLock grab(m_LockMtx);
    176     std::vector<PCHostDnsMonitorProxy>::iterator it;
    177     it = std::find(m->proxies.begin(), m->proxies.end(), proxy);
    178 
    179     if (it == m->proxies.end())
    180         return;
    181 
    182     m->proxies.erase(it);
    183173}
    184174
     
    225215    }
    226216
    227     std::vector<PCHostDnsMonitorProxy>::const_iterator it;
    228     for (it = m->proxies.begin(); it != m->proxies.end(); ++it)
    229         (*it)->notify();
     217    if (m->proxy != NULL)
     218        m->proxy->notify();
    230219}
    231220
     
    329318    if (m)
    330319    {
    331         if (m->monitor)
    332             m->monitor->releaseMonitorProxy(this);
     320        /* XXX: m->monitor */
    333321        delete m;
    334322        m = NULL;
     
    338326void HostDnsMonitorProxy::init(VirtualBox* aParent)
    339327{
    340     const HostDnsMonitor *mon = HostDnsMonitor::getHostDnsMonitor(aParent);
     328    HostDnsMonitor *mon = HostDnsMonitor::getHostDnsMonitor(aParent);
    341329    Assert(mon != NULL);
    342330
    343331    m = new HostDnsMonitorProxy::Data(mon, aParent);
    344     m->monitor->addMonitorProxy(this);
     332    m->monitor->setMonitorProxy(this);
    345333    updateInfo();
    346334}
  • trunk/src/VBox/Main/src-server/HostDnsService.h

    r72394 r72395  
    5353{
    5454  public:
    55     static const HostDnsMonitor *getHostDnsMonitor(VirtualBox *virtualbox);
     55    static HostDnsMonitor *getHostDnsMonitor(VirtualBox *virtualbox);
    5656    static void shutdown();
    5757
    58     void addMonitorProxy(PCHostDnsMonitorProxy) const;
    59     void releaseMonitorProxy(PCHostDnsMonitorProxy) const;
     58    void setMonitorProxy(HostDnsMonitorProxy *proxy);
    6059    const HostDnsInformation &getInfo() const;
    6160    /* @note: method will wait till client call
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette