Qt 4.8
Signals | Public Functions | Protected Functions | Private Functions | Properties | List of all members
QNlaThread Class Reference
Inheritance diagram for QNlaThread:
QThread QObject

Signals

void networksChanged ()
 
- Signals inherited from QThread
void finished ()
 This signal is emitted when the thread has finished executing. More...
 
void started ()
 This signal is emitted when the thread starts executing. More...
 
void terminated ()
 This signal is emitted when the thread is terminated. More...
 
- Signals inherited from QObject
void destroyed (QObject *=0)
 This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More...
 

Public Functions

void forceUpdate ()
 
QList< QNetworkConfigurationPrivate * > getConfigurations ()
 
 QNlaThread (QNlaEngine *parent=0)
 
 ~QNlaThread ()
 
- Public Functions inherited from QThread
void exit (int retcode=0)
 Tells the thread's event loop to exit with a return code. More...
 
bool isFinished () const
 Returns true if the thread is finished; otherwise returns false. More...
 
bool isRunning () const
 Returns true if the thread is running; otherwise returns false. More...
 
Priority priority () const
 Returns the priority for a running thread. More...
 
 QThread (QObject *parent=0)
 Constructs a new QThread to manage a new thread. More...
 
void setPriority (Priority priority)
 This function sets the priority for a running thread. More...
 
void setStackSize (uint stackSize)
 Sets the maximum stack size for the thread to stackSize. More...
 
uint stackSize () const
 Returns the maximum stack size for the thread (if set with setStackSize()); otherwise returns zero. More...
 
bool wait (unsigned long time=ULONG_MAX)
 Blocks the thread until either of these conditions is met: More...
 
 ~QThread ()
 Destroys the QThread. More...
 
- Public Functions inherited from QObject
bool blockSignals (bool b)
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More...
 
const QObjectListchildren () const
 Returns a list of child objects. More...
 
bool connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0)
 
bool disconnect (const QObject *receiver, const char *member=0)
 
void dumpObjectInfo ()
 Dumps information about signal connections, etc. More...
 
void dumpObjectTree ()
 Dumps a tree of children to the debug output. More...
 
QList< QByteArraydynamicPropertyNames () const
 Returns the names of all properties that were dynamically added to the object using setProperty(). More...
 
virtual bool event (QEvent *)
 This virtual function receives events to an object and should return true if the event e was recognized and processed. More...
 
virtual bool eventFilter (QObject *, QEvent *)
 Filters events if this object has been installed as an event filter for the watched object. More...
 
template<typename T >
findChild (const QString &aName=QString()) const
 Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More...
 
template<typename T >
QList< T > findChildren (const QString &aName=QString()) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More...
 
template<typename T >
QList< T > findChildren (const QRegExp &re) const
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More...
 
void installEventFilter (QObject *)
 Installs an event filter filterObj on this object. More...
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false. More...
 
void killTimer (int id)
 Kills the timer with timer identifier, id. More...
 
virtual const QMetaObjectmetaObject () const
 Returns a pointer to the meta-object of this object. More...
 
void moveToThread (QThread *thread)
 Changes the thread affinity for this object and its children. More...
 
QString objectName () const
 
QObjectparent () const
 Returns a pointer to the parent object. More...
 
QVariant property (const char *name) const
 Returns the value of the object's name property. More...
 
Q_INVOKABLE QObject (QObject *parent=0)
 Constructs an object with parent object parent. More...
 
void removeEventFilter (QObject *)
 Removes an event filter object obj from this object. More...
 
void setObjectName (const QString &name)
 
void setParent (QObject *)
 Makes the object a child of parent. More...
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value. More...
 
void setUserData (uint id, QObjectUserData *data)
 
bool signalsBlocked () const
 Returns true if signals are blocked; otherwise returns false. More...
 
int startTimer (int interval)
 Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More...
 
QThreadthread () const
 Returns the thread in which the object lives. More...
 
QObjectUserDatauserData (uint id) const
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects. More...
 

Protected Functions

virtual void run ()
 The starting point for the thread. More...
 
- Protected Functions inherited from QThread
int exec ()
 Enters the event loop and waits until exit() is called, returning the value that was passed to exit(). More...
 
 QThread (QThreadPrivate &dd, QObject *parent=0)
 
- Protected Functions inherited from QObject
virtual void childEvent (QChildEvent *)
 This event handler can be reimplemented in a subclass to receive child events. More...
 
virtual void connectNotify (const char *signal)
 This virtual function is called when something has been connected to signal in this object. More...
 
virtual void customEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive custom events. More...
 
virtual void disconnectNotify (const char *signal)
 This virtual function is called when something has been disconnected from signal in this object. More...
 
 QObject (QObjectPrivate &dd, QObject *parent=0)
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal. More...
 
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More...
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *)
 This event handler can be reimplemented in a subclass to receive timer events for the object. More...
 

Private Functions

void fetchConfigurations ()
 
DWORD parseBlob (NLA_BLOB *blob, QNetworkConfigurationPrivate *cpPriv) const
 
QNetworkConfigurationPrivateparseQuerySet (const WSAQUERYSET *querySet) const
 
void updateConfigurations (QList< QNetworkConfigurationPrivate *> &configs)
 

Properties

bool done
 
QList< QNetworkConfigurationPrivate * > fetchedConfigurations
 
HANDLE handle
 
QMutex mutex
 

Additional Inherited Members

- Public Types inherited from QThread
enum  Priority {
  IdlePriority, LowestPriority, LowPriority, NormalPriority,
  HighPriority, HighestPriority, TimeCriticalPriority, InheritPriority
}
 This enum type indicates how the operating system should schedule newly created threads. More...
 
- Public Slots inherited from QThread
void quit ()
 Tells the thread's event loop to exit with return code 0 (success). More...
 
void start (Priority=InheritPriority)
 Begins execution of the thread by calling run(). More...
 
void terminate ()
 Terminates the execution of the thread. More...
 
- Public Slots inherited from QObject
void deleteLater ()
 Schedules this object for deletion. More...
 
- Static Public Functions inherited from QThread
static QThreadcurrentThread ()
 Returns a pointer to a QThread which manages the currently executing thread. More...
 
static Qt::HANDLE currentThreadId ()
 Returns the thread handle of the currently executing thread. More...
 
static int idealThreadCount ()
 Returns the ideal number of threads that can be run on the system. More...
 
static void yieldCurrentThread ()
 Yields execution of the current thread to another runnable thread, if any. More...
 
- Static Public Functions inherited from QObject
static bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More...
 
static bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 Disconnects signal in object sender from method in object receiver. More...
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static uint registerUserData ()
 
static QString tr (const char *sourceText, const char *comment=0, int n=-1)
 
static QString trUtf8 (const char *sourceText, const char *comment=0, int n=-1)
 
- Static Public Variables inherited from QObject
static const QMetaObject staticMetaObject
 This variable stores the meta-object for the class. More...
 
- Static Protected Functions inherited from QThread
static void msleep (unsigned long)
 Forces the current thread to sleep for msecs milliseconds. More...
 
static void setTerminationEnabled (bool enabled=true)
 Enables or disables termination of the current thread based on the enabled parameter. More...
 
static void sleep (unsigned long)
 Forces the current thread to sleep for secs seconds. More...
 
static void usleep (unsigned long)
 Forces the current thread to sleep for usecs microseconds. More...
 
- Protected Variables inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Static Protected Variables inherited from QObject
static const QMetaObject staticQtMetaObject
 

Detailed Description

Definition at line 187 of file qnlaengine.cpp.

Constructors and Destructors

◆ QNlaThread()

QNlaThread::QNlaThread ( QNlaEngine parent = 0)

Definition at line 218 of file qnlaengine.cpp.

219 : QThread(parent), handle(0), done(false)
220 {
221 }
QThread(QObject *parent=0)
Constructs a new QThread to manage a new thread.
Definition: qthread.cpp:433
HANDLE handle
Definition: qnlaengine.cpp:213

◆ ~QNlaThread()

QNlaThread::~QNlaThread ( )

Definition at line 223 of file qnlaengine.cpp.

224 {
225  mutex.lock();
226 
227  done = true;
228 
229  if (handle) {
230  /* cancel completion event */
231  if (WSALookupServiceEnd(handle) == SOCKET_ERROR) {
232 #ifdef BEARER_MANAGEMENT_DEBUG
233  qDebug("WSALookupServiceEnd error %d", WSAGetLastError());
234 #endif
235  }
236  }
237  mutex.unlock();
238 
239  wait();
240 }
void lock()
Locks the mutex.
Definition: qmutex.cpp:151
Q_CORE_EXPORT void qDebug(const char *,...)
HANDLE handle
Definition: qnlaengine.cpp:213
void unlock()
Unlocks the mutex.
Definition: qmutex.cpp:296
bool wait(unsigned long time=ULONG_MAX)
Blocks the thread until either of these conditions is met:
QMutex mutex
Definition: qnlaengine.cpp:212

Functions

◆ fetchConfigurations()

void QNlaThread::fetchConfigurations ( )
private

Definition at line 448 of file qnlaengine.cpp.

Referenced by run().

449 {
450  QList<QNetworkConfigurationPrivate *> foundConfigurations;
451 
452  WSAQUERYSET qsRestrictions;
453  HANDLE hLookup = 0;
454 
455  memset(&qsRestrictions, 0, sizeof(qsRestrictions));
456  qsRestrictions.dwSize = sizeof(qsRestrictions);
457  qsRestrictions.dwNameSpace = NS_NLA;
458 
459  int result = WSALookupServiceBegin(&qsRestrictions, LUP_RETURN_ALL | LUP_DEEP, &hLookup);
460  if (result == SOCKET_ERROR) {
461  mutex.lock();
463  mutex.unlock();
464  }
465 
466  char buffer[0x10000];
467  while (result == 0) {
468  DWORD bufferLength = sizeof(buffer);
469  result = WSALookupServiceNext(hLookup, LUP_RETURN_ALL,
470  &bufferLength, reinterpret_cast<WSAQUERYSET *>(buffer));
471 
472  if (result == SOCKET_ERROR)
473  break;
474 
476  parseQuerySet(reinterpret_cast<WSAQUERYSET *>(buffer));
477 
478  foundConfigurations.append(cpPriv);
479  }
480 
481  if (hLookup) {
482  result = WSALookupServiceEnd(hLookup);
483  if (result == SOCKET_ERROR) {
484 #ifdef BEARER_MANAGEMENT_DEBUG
485  qDebug("WSALookupServiceEnd error %d", WSAGetLastError());
486 #endif
487  }
488  }
489 
490  updateConfigurations(foundConfigurations);
491 }
void updateConfigurations(QList< QNetworkConfigurationPrivate *> &configs)
Definition: qnlaengine.cpp:338
void lock()
Locks the mutex.
Definition: qmutex.cpp:151
QNetworkConfigurationPrivate * parseQuerySet(const WSAQUERYSET *querySet) const
Definition: qnlaengine.cpp:396
QList< QNetworkConfigurationPrivate * > fetchedConfigurations
Definition: qnlaengine.cpp:215
Q_CORE_EXPORT void qDebug(const char *,...)
void append(const T &t)
Inserts value at the end of the list.
Definition: qlist.h:507
void clear()
Removes all items from the list.
Definition: qlist.h:764
void * HANDLE
Definition: qnamespace.h:1671
void unlock()
Unlocks the mutex.
Definition: qmutex.cpp:296
#define NS_NLA
The QList class is a template class that provides lists.
Definition: qdatastream.h:62
QMutex mutex
Definition: qnlaengine.cpp:212

◆ forceUpdate()

void QNlaThread::forceUpdate ( )

Definition at line 252 of file qnlaengine.cpp.

Referenced by QNlaEngine::requestUpdate().

253 {
254  mutex.lock();
255 
256  if (handle) {
257  /* cancel completion event */
258  if (WSALookupServiceEnd(handle) == SOCKET_ERROR) {
259 #ifdef BEARER_MANAGEMENT_DEBUG
260  qDebug("WSALookupServiceEnd error %d", WSAGetLastError());
261 #endif
262  }
263  handle = 0;
264  }
265  mutex.unlock();
266 }
void lock()
Locks the mutex.
Definition: qmutex.cpp:151
Q_CORE_EXPORT void qDebug(const char *,...)
HANDLE handle
Definition: qnlaengine.cpp:213
void unlock()
Unlocks the mutex.
Definition: qmutex.cpp:296
QMutex mutex
Definition: qnlaengine.cpp:212

◆ getConfigurations()

QList< QNetworkConfigurationPrivate * > QNlaThread::getConfigurations ( )

Definition at line 242 of file qnlaengine.cpp.

Referenced by QNlaEngine::networksChanged().

243 {
244  QMutexLocker locker(&mutex);
245 
248 
249  return foundConfigurations;
250 }
QList< QNetworkConfigurationPrivate * > fetchedConfigurations
Definition: qnlaengine.cpp:215
void clear()
Removes all items from the list.
Definition: qlist.h:764
The QMutexLocker class is a convenience class that simplifies locking and unlocking mutexes...
Definition: qmutex.h:101
The QList class is a template class that provides lists.
Definition: qdatastream.h:62
QMutex mutex
Definition: qnlaengine.cpp:212

◆ networksChanged

void QNlaThread::networksChanged ( )
signal

Referenced by updateConfigurations().

◆ parseBlob()

DWORD QNlaThread::parseBlob ( NLA_BLOB blob,
QNetworkConfigurationPrivate cpPriv 
) const
private

Definition at line 352 of file qnlaengine.cpp.

Referenced by parseQuerySet().

353 {
354 #ifdef BEARER_MANAGEMENT_DEBUG
355  printBlob(blob);
356 #endif
357 
358  switch (blob->header.type) {
359  case NLA_RAW_DATA:
360 #ifdef BEARER_MANAGEMENT_DEBUG
361  qDebug("%s: unhandled header type NLA_RAW_DATA", __FUNCTION__);
362 #endif
363  break;
364  case NLA_INTERFACE:
366  if (QNlaEngine *engine = qobject_cast<QNlaEngine *>(parent())) {
367  engine->configurationInterface[cpPriv->id.toUInt()] =
368  QString::fromLatin1(blob->data.interfaceData.adapterName);
369  }
370  break;
371  case NLA_802_1X_LOCATION:
372 #ifdef BEARER_MANAGEMENT_DEBUG
373  qDebug("%s: unhandled header type NLA_802_1X_LOCATION", __FUNCTION__);
374 #endif
375  break;
376  case NLA_CONNECTIVITY:
377 #ifdef BEARER_MANAGEMENT_DEBUG
378  qDebug("%s: unhandled header type NLA_CONNECTIVITY", __FUNCTION__);
379 #endif
380  break;
381  case NLA_ICS:
382 #ifdef BEARER_MANAGEMENT_DEBUG
383  qDebug("%s: unhandled header type NLA_ICS", __FUNCTION__);
384 #endif
385  break;
386  default:
387 #ifdef BEARER_MANAGEMENT_DEBUG
388  qDebug("%s: unhandled header type %d", __FUNCTION__, blob->header.type);
389 #endif
390  ;
391  }
392 
393  return blob->header.nextOffset;
394 }
QNetworkConfiguration::StateFlags state
DWORD nextOffset
NLA_BLOB_DATA_TYPE type
Q_CORE_EXPORT void qDebug(const char *,...)
struct NLA_BLOB::@336::@337 interfaceData
union NLA_BLOB::@336 data
struct NLA_BLOB::@335 header
static QString fromLatin1(const char *, int size=-1)
Returns a QString initialized with the first size characters of the Latin-1 string str...
Definition: qstring.cpp:4188
QObject * parent() const
Returns a pointer to the parent object.
Definition: qobject.h:273
uint toUInt(bool *ok=0, int base=10) const
Returns the string converted to an unsigned int using base base, which is 10 by default and must be b...
Definition: qstring.cpp:6120

◆ parseQuerySet()

QNetworkConfigurationPrivate * QNlaThread::parseQuerySet ( const WSAQUERYSET *  querySet) const
private

Definition at line 396 of file qnlaengine.cpp.

Referenced by fetchConfigurations().

397 {
399 
400  cpPriv->name = QString::fromWCharArray(querySet->lpszServiceInstanceName);
401  cpPriv->isValid = true;
402  cpPriv->id = QString::number(qHash(QLatin1String("NLA:") + cpPriv->name));
405 
406 #ifdef BEARER_MANAGEMENT_DEBUG
407  qDebug() << "size:" << querySet->dwSize;
408  qDebug() << "service instance name:" << QString::fromUtf16(querySet->lpszServiceInstanceName);
409  qDebug() << "service class id:" << querySet->lpServiceClassId;
410  qDebug() << "version:" << querySet->lpVersion;
411  qDebug() << "comment:" << QString::fromUtf16(querySet->lpszComment);
412  qDebug() << "namespace:" << querySet->dwNameSpace;
413  qDebug() << "namespace provider id:" << querySet->lpNSProviderId;
414  qDebug() << "context:" << QString::fromUtf16(querySet->lpszContext);
415  qDebug() << "number of protocols:" << querySet->dwNumberOfProtocols;
416  qDebug() << "protocols:" << querySet->lpafpProtocols;
417  qDebug() << "query string:" << QString::fromUtf16(querySet->lpszQueryString);
418  qDebug() << "number of cs addresses:" << querySet->dwNumberOfCsAddrs;
419  qDebug() << "cs addresses:" << querySet->lpcsaBuffer;
420  qDebug() << "output flags:" << querySet->dwOutputFlags;
421 #endif
422 
423  if (querySet->lpBlob) {
424 #ifdef BEARER_MANAGEMENT_DEBUG
425  qDebug() << "blob size:" << querySet->lpBlob->cbSize;
426  qDebug() << "blob data:" << querySet->lpBlob->pBlobData;
427 #endif
428 
429  DWORD offset = 0;
430  do {
431  NLA_BLOB *blob = reinterpret_cast<NLA_BLOB *>(querySet->lpBlob->pBlobData + offset);
432  DWORD nextOffset = parseBlob(blob, cpPriv);
433  if (nextOffset == offset)
434  break;
435  else
436  offset = nextOffset;
437  } while (offset != 0 && offset < querySet->lpBlob->cbSize);
438  }
439 
440  if (QNlaEngine *engine = qobject_cast<QNlaEngine *>(parent())) {
441  const QString interface = engine->getInterfaceFromId(cpPriv->id);
442  cpPriv->bearerType = qGetInterfaceType(interface);
443  }
444 
445  return cpPriv;
446 }
static QString number(int, int base=10)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: qstring.cpp:6448
static QString fromWCharArray(const wchar_t *, int size=-1)
Returns a copy of the string, where the encoding of string depends on the size of wchar...
Definition: qstring.cpp:1019
uint qHash(const QProcEnvKey &key)
Definition: qprocess_p.h:96
QNetworkConfiguration::StateFlags state
DWORD parseBlob(NLA_BLOB *blob, QNetworkConfigurationPrivate *cpPriv) const
Definition: qnlaengine.cpp:352
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
The QString class provides a Unicode character string.
Definition: qstring.h:83
static QNetworkConfiguration::BearerType qGetInterfaceType(const QString &interface)
Definition: qnlaengine.cpp:122
QNetworkConfiguration::BearerType bearerType
Q_CORE_EXPORT void qDebug(const char *,...)
QNetworkConfiguration::Type type
QObject * parent() const
Returns a pointer to the parent object.
Definition: qobject.h:273
static QString fromUtf16(const ushort *, int size=-1)
Returns a QString initialized with the first size characters of the Unicode string unicode (ISO-10646...
Definition: qstring.cpp:4329

◆ run()

void QNlaThread::run ( void  )
protectedvirtual

The starting point for the thread.

After calling start(), the newly created thread calls this function. The default implementation simply calls exec().

You can reimplement this function to facilitate advanced thread management. Returning from this method will end the execution of the thread.

See also
start() wait()

Reimplemented from QThread.

Definition at line 268 of file qnlaengine.cpp.

269 {
270  WSAEVENT changeEvent = WSACreateEvent();
271  if (changeEvent == WSA_INVALID_EVENT)
272  return;
273 
274  while (true) {
276 
277  WSAQUERYSET qsRestrictions;
278 
279  memset(&qsRestrictions, 0, sizeof(qsRestrictions));
280  qsRestrictions.dwSize = sizeof(qsRestrictions);
281  qsRestrictions.dwNameSpace = NS_NLA;
282 
283  mutex.lock();
284  if (done) {
285  mutex.unlock();
286  break;
287  }
288  int result = WSALookupServiceBegin(&qsRestrictions, LUP_RETURN_ALL, &handle);
289  mutex.unlock();
290 
291  if (result == SOCKET_ERROR)
292  break;
293 
294  WSACOMPLETION completion;
295  WSAOVERLAPPED overlapped;
296 
297  memset(&overlapped, 0, sizeof(overlapped));
298  overlapped.hEvent = changeEvent;
299 
300  memset(&completion, 0, sizeof(completion));
301  completion.Type = NSP_NOTIFY_EVENT;
302  completion.Parameters.Event.lpOverlapped = &overlapped;
303 
304  DWORD bytesReturned = 0;
305  result = WSANSPIoctl(handle, SIO_NSP_NOTIFY_CHANGE, 0, 0, 0, 0,
306  &bytesReturned, &completion);
307  if (result == SOCKET_ERROR) {
308  if (WSAGetLastError() != WSA_IO_PENDING)
309  break;
310  }
311 
312 #ifndef Q_OS_WINCE
313  // Not interested in unrelated IO completion events
314  // although we also don't want to block them
315  while (WaitForSingleObjectEx(changeEvent, WSA_INFINITE, true) != WAIT_IO_COMPLETION &&
316  handle)
317  {
318  }
319 #else
320  WaitForSingleObject(changeEvent, WSA_INFINITE);
321 #endif
322 
323  mutex.lock();
324  if (handle) {
325  result = WSALookupServiceEnd(handle);
326  if (result == SOCKET_ERROR) {
327  mutex.unlock();
328  break;
329  }
330  handle = 0;
331  }
332  mutex.unlock();
333  }
334 
335  WSACloseEvent(changeEvent);
336 }
void lock()
Locks the mutex.
Definition: qmutex.cpp:151
HANDLE handle
Definition: qnlaengine.cpp:213
void unlock()
Unlocks the mutex.
Definition: qmutex.cpp:296
void fetchConfigurations()
Definition: qnlaengine.cpp:448
#define NS_NLA
QMutex mutex
Definition: qnlaengine.cpp:212

◆ updateConfigurations()

void QNlaThread::updateConfigurations ( QList< QNetworkConfigurationPrivate *> &  configs)
private

Definition at line 338 of file qnlaengine.cpp.

Referenced by fetchConfigurations().

339 {
340  mutex.lock();
341 
342  while (!fetchedConfigurations.isEmpty())
344 
345  fetchedConfigurations = configs;
346 
347  mutex.unlock();
348 
350 }
void lock()
Locks the mutex.
Definition: qmutex.cpp:151
bool isEmpty() const
Returns true if the list contains no items; otherwise returns false.
Definition: qlist.h:152
QList< QNetworkConfigurationPrivate * > fetchedConfigurations
Definition: qnlaengine.cpp:215
T takeFirst()
Removes the first item in the list and returns it.
Definition: qlist.h:489
#define emit
Definition: qobjectdefs.h:76
void unlock()
Unlocks the mutex.
Definition: qmutex.cpp:296
void networksChanged()
QMutex mutex
Definition: qnlaengine.cpp:212

Properties

◆ done

bool QNlaThread::done
private

Definition at line 214 of file qnlaengine.cpp.

Referenced by run(), and ~QNlaThread().

◆ fetchedConfigurations

QList<QNetworkConfigurationPrivate *> QNlaThread::fetchedConfigurations
private

Definition at line 215 of file qnlaengine.cpp.

Referenced by fetchConfigurations(), getConfigurations(), and updateConfigurations().

◆ handle

HANDLE QNlaThread::handle
private

Definition at line 213 of file qnlaengine.cpp.

Referenced by forceUpdate(), run(), and ~QNlaThread().

◆ mutex

QMutex QNlaThread::mutex
private

The documentation for this class was generated from the following file: