Blame docs/libvirt-glib/html/Libvirt-glib-Event-loop.html

Packit Service ea0369
Packit Service ea0369
<html>
Packit Service ea0369
<head>
Packit Service ea0369
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Packit Service ea0369
<title>Event loop: Libvirt GLib Reference Manual</title>
Packit Service ea0369
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
Packit Service ea0369
<link rel="home" href="index.html" title="Libvirt GLib Reference Manual">
Packit Service ea0369
<link rel="up" href="ch01.html" title="API Reference">
Packit Service ea0369
<link rel="prev" href="Libvirt-glib-Error-reporting.html" title="Error reporting">
Packit Service ea0369
<link rel="next" href="object-tree.html" title="Object Hierarchy">
Packit Service ea0369
<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
Packit Service ea0369
<link rel="stylesheet" href="style.css" type="text/css">
Packit Service ea0369
</head>
Packit Service ea0369
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Top  | 
Packit Service ea0369
                  Description
Packit Service ea0369
Packit Service ea0369
Home
Packit Service ea0369
Up
Packit Service ea0369
Prev
Packit Service ea0369
Next
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369

Event loop

Packit Service ea0369

Event loop — Integrate libvirt with the GMain event framework

Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369

Stability Level

Packit Service ea0369
Packit Service ea0369
develop applications to these interfaces, release them, and have confidence that
Packit Service ea0369
they will run on all minor releases of the product (after the one in which the
Packit Service ea0369
interface was introduced, and within the same major release). Even at a major
Packit Service ea0369
release, incompatible changes are expected to be rare, and to have strong
Packit Service ea0369
justifications.
Packit Service ea0369
">Stable, unless otherwise indicated
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369

Functions

Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
void
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
gvir_event_register ()
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369

Includes

Packit Service ea0369
#include <libvirt-glib/libvirt-glib.h>
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369

Description

Packit Service ea0369

The libvirt API has the ability to provide applications with asynchronous

Packit Service ea0369
notifications of interesting events. To enable this functionality though,
Packit Service ea0369
applications must provide libvirt with an event loop implementation. The
Packit Service ea0369
libvirt-glib API provides such an implementation, which naturally integrates
Packit Service ea0369
with the GMain event loop framework.

Packit Service ea0369

To enable use of the GMain event loop glue, the gvir_event_register()

Packit Service ea0369
should be invoked. Once this is done, it is mandatory to have the default
Packit Service ea0369
GMain event loop run by a thread in the application, usually the primary
Packit Service ea0369
thread, eg by using gtk_main() or g_application_run()

Packit Service ea0369
Packit Service ea0369

Example 3. Registering for events with a GTK application

Packit Service ea0369
Packit Service ea0369
  
Packit Service ea0369
    
Packit Service ea0369
      
Packit Service ea0369
        
1
Packit Service ea0369
2
Packit Service ea0369
3
Packit Service ea0369
4
Packit Service ea0369
5
Packit Service ea0369
6
Packit Service ea0369
7
Packit Service ea0369
        
int main(int argc, char **argv) {
Packit Service ea0369
  ...setup...
Packit Service ea0369
  gvir_event_register();
Packit Service ea0369
  ...more setup...
Packit Service ea0369
  gtk_main();
Packit Service ea0369
  return 0;
Packit Service ea0369
}
Packit Service ea0369
      
Packit Service ea0369
    
Packit Service ea0369
  
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369

Packit Service ea0369

Example 4. Registering for events using Appplication

Packit Service ea0369
Packit Service ea0369
  
Packit Service ea0369
    
Packit Service ea0369
      
Packit Service ea0369
        
1
Packit Service ea0369
2
Packit Service ea0369
3
Packit Service ea0369
4
Packit Service ea0369
5
Packit Service ea0369
6
Packit Service ea0369
7
Packit Service ea0369
8
Packit Service ea0369
        
int main(int argc, char **argv) {
Packit Service ea0369
  ...setup...
Packit Service ea0369
  GApplication *app = ...create some impl of GApplication...
Packit Service ea0369
  gvir_event_register();
Packit Service ea0369
  ...more setup...
Packit Service ea0369
  g_application_run(app);
Packit Service ea0369
  return 0;
Packit Service ea0369
}
Packit Service ea0369
      
Packit Service ea0369
    
Packit Service ea0369
  
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369

Packit Service ea0369
Packit Service ea0369
Packit Service ea0369

Functions

Packit Service ea0369
Packit Service ea0369

gvir_event_register ()

Packit Service ea0369
void
Packit Service ea0369
gvir_event_register (void);
Packit Service ea0369

Registers a libvirt event loop implementation that is backed

Packit Service ea0369
by the default GMain context. If invoked more
Packit Service ea0369
than once this method will be a no-op. Applications should,
Packit Service ea0369
however, take care not to register any another non-GLib
Packit Service ea0369
event loop with libvirt.

Packit Service ea0369

After invoking this method, it is mandatory to run the

Packit Service ea0369
default GMain event loop. Typically this can be satisfied
Packit Service ea0369
by invoking gtk_main or g_application_run
Packit Service ea0369
in the application's main thread. Failure to run the event
Packit Service ea0369
loop will mean no libvirt events get dispatched, and the
Packit Service ea0369
libvirt keepalive timer will kill off libvirt connections
Packit Service ea0369
frequently.

Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369

Types and Values

Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369

Generated by GTK-Doc V1.29
Packit Service ea0369
</body>
Packit Service ea0369
</html>