- Timestamp:
- May 30, 2018 10:39:13 PM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 122858
- Location:
- trunk/src/VBox/Main/src-server
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/src-server/HostDnsService.cpp
r72394 r72395 82 82 { 83 83 Data(bool aThreaded) 84 : uLastExtraDataPoll(0), 84 : proxy(NULL), 85 uLastExtraDataPoll(0), 85 86 fLaxComparison(0), 86 87 fThreaded(aThreaded), … … 88 89 {} 89 90 90 std::vector<PCHostDnsMonitorProxy> proxies;91 HostDnsMonitorProxy *proxy; 91 92 HostDnsInformation info; 92 93 uint64_t uLastExtraDataPoll; … … 100 101 struct HostDnsMonitorProxy::Data 101 102 { 102 Data( constHostDnsMonitor *aMonitor, VirtualBox *aParent)103 Data(HostDnsMonitor *aMonitor, VirtualBox *aParent) 103 104 : info(NULL) 104 105 , virtualbox(aParent) … … 118 119 HostDnsInformation *info; 119 120 VirtualBox *virtualbox; 120 constHostDnsMonitor *monitor;121 HostDnsMonitor *monitor; 121 122 bool fModified; 122 123 }; … … 138 139 } 139 140 140 constHostDnsMonitor *HostDnsMonitor::getHostDnsMonitor(VirtualBox *aParent)141 HostDnsMonitor *HostDnsMonitor::getHostDnsMonitor(VirtualBox *aParent) 141 142 { 142 143 /* XXX: Moved initialization from HostImpl.cpp */ … … 164 165 } 165 166 166 void HostDnsMonitor:: addMonitorProxy(PCHostDnsMonitorProxy proxy) const167 void HostDnsMonitor::setMonitorProxy(HostDnsMonitorProxy *proxy) 167 168 { 168 169 RTCLock grab(m_LockMtx); 169 m->proxies.push_back(proxy); 170 Assert(m != NULL && m->proxy == NULL); 171 m->proxy = proxy; 170 172 proxy->notify(); 171 }172 173 void HostDnsMonitor::releaseMonitorProxy(PCHostDnsMonitorProxy proxy) const174 {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);183 173 } 184 174 … … 225 215 } 226 216 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(); 230 219 } 231 220 … … 329 318 if (m) 330 319 { 331 if (m->monitor) 332 m->monitor->releaseMonitorProxy(this); 320 /* XXX: m->monitor */ 333 321 delete m; 334 322 m = NULL; … … 338 326 void HostDnsMonitorProxy::init(VirtualBox* aParent) 339 327 { 340 constHostDnsMonitor *mon = HostDnsMonitor::getHostDnsMonitor(aParent);328 HostDnsMonitor *mon = HostDnsMonitor::getHostDnsMonitor(aParent); 341 329 Assert(mon != NULL); 342 330 343 331 m = new HostDnsMonitorProxy::Data(mon, aParent); 344 m->monitor-> addMonitorProxy(this);332 m->monitor->setMonitorProxy(this); 345 333 updateInfo(); 346 334 } -
trunk/src/VBox/Main/src-server/HostDnsService.h
r72394 r72395 53 53 { 54 54 public: 55 static constHostDnsMonitor *getHostDnsMonitor(VirtualBox *virtualbox);55 static HostDnsMonitor *getHostDnsMonitor(VirtualBox *virtualbox); 56 56 static void shutdown(); 57 57 58 void addMonitorProxy(PCHostDnsMonitorProxy) const; 59 void releaseMonitorProxy(PCHostDnsMonitorProxy) const; 58 void setMonitorProxy(HostDnsMonitorProxy *proxy); 60 59 const HostDnsInformation &getInfo() const; 61 60 /* @note: method will wait till client call
Note:
See TracChangeset
for help on using the changeset viewer.