Lines Matching defs:monitor

53 	node_monitor		*monitor;
128 virtual const char* Name() { return "node monitor"; }
131 void _RemoveMonitor(node_monitor *monitor, uint32 flags);
140 monitor_listener *_MonitorListenerFor(node_monitor* monitor,
143 node_monitor* monitor, uint32 flags,
171 size_t Hash(node_monitor *monitor) const
172 { return _Hash(monitor->device, monitor->node); }
174 bool Compare(monitor_hash_key* key, node_monitor *monitor) const
176 return key->device == monitor->device
177 && key->node == monitor->node;
180 node_monitor*& GetLink(node_monitor* monitor) const
181 { return monitor->hash_link; }
197 size_t Hash(node_monitor *monitor) const
198 { return _Hash(monitor->device); }
200 bool Compare(dev_t key, node_monitor *monitor) const
202 return key == monitor->device;
205 node_monitor*& GetLink(node_monitor* monitor) const
206 { return monitor->hash_link; }
269 recursive_lock_init(&fRecursiveLock, "node monitor");
291 NodeMonitorService::_RemoveMonitor(node_monitor *monitor, uint32 flags)
294 fVolumeMonitors.Remove(monitor);
296 fMonitors.Remove(monitor);
297 delete monitor;
312 // get the monitor for this device/node pair
313 node_monitor *monitor = _MonitorFor(device, node, isVolumeListener);
314 if (monitor == NULL)
318 monitor_listener* listener = _MonitorListenerFor(monitor,
338 node_monitor *monitor = listener->monitor;
341 monitor->listeners.Remove(listener);
352 if (monitor->listeners.IsEmpty())
353 _RemoveMonitor(monitor, flags);
357 /*! Returns the monitor that matches the specified device/node pair.
374 /*! Returns the monitor that matches the specified device/node pair.
375 If the monitor does not exist yet, it will be created.
382 node_monitor* monitor = _MonitorFor(device, node, isVolumeListener);
383 if (monitor != NULL) {
384 *_monitor = monitor;
397 // create new monitor
398 monitor = new(std::nothrow) node_monitor;
399 if (monitor == NULL)
402 // initialize monitor
403 monitor->device = device;
404 monitor->node = node;
408 status = fVolumeMonitors.Insert(monitor);
410 status = fMonitors.Insert(monitor);
412 delete monitor;
416 *_monitor = monitor;
425 NodeMonitorService::_MonitorListenerFor(node_monitor* monitor,
429 = monitor->listeners.GetIterator();
443 node_monitor* monitor, uint32 flags,
448 // no memory for the listener, so remove the monitor as well if needed
449 if (monitor->listeners.IsEmpty())
450 _RemoveMonitor(monitor, flags);
458 listener->monitor = monitor;
460 monitor->listeners.Add(listener);
477 node_monitor *monitor;
478 status_t status = _GetMonitor(context, device, node, true, &monitor,
485 return _AddMonitorListener(context, monitor, flags, notificationListener);
499 node_monitor *monitor;
500 status_t status = _GetMonitor(context, device, node, false, &monitor,
505 MonitorListenerList::Iterator iterator = monitor->listeners.GetIterator();
546 // get the monitor for the node
547 node_monitor *monitor = _MonitorFor(device, node, false);
548 if (monitor == NULL)
552 MonitorListenerList::Iterator iterator = monitor->listeners.GetIterator();
570 // get the monitor for the node
571 node_monitor *monitor = _MonitorFor(device, -1, true);
572 if (monitor == NULL)
576 MonitorListenerList::Iterator iterator = monitor->listeners.GetIterator();
1056 node_monitor *monitor;
1057 status_t status = _GetMonitor(context, device, node, true, &monitor,
1062 MonitorListenerList::Iterator iterator = monitor->listeners.GetIterator();
1073 if (monitor->listeners.IsEmpty())
1074 _RemoveMonitor(monitor, flags);
1078 status = _AddMonitorListener(context, monitor, flags, *copiedListener);
1103 panic("initializing node monitor failed\n");
1309 // associated monitor listeners when a port is transferred/deleted.