X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=internal.h;h=950fd0531c21c132cc1fd1607a4a26d8eb7925e7;hb=0e605c0d34447f049f14dfd96ace73fb1c0cffaf;hp=b512fc37030baeb22dd52b524205c29d0f84cd09;hpb=7e9794277b619bb232ffc874ee7efa4ead8ddb8e;p=ovirt-viewer.git diff --git a/internal.h b/internal.h index b512fc3..950fd05 100644 --- a/internal.h +++ b/internal.h @@ -50,6 +50,9 @@ extern gboolean debug; #define STRCASENEQLEN(a,b,n) (strncasecmp((a),(b),(n)) != 0) #define STRPREFIX(a,b) (strncmp((a),(b),strlen((b))) == 0) +extern const char *cainfo; +extern gboolean check_cert; + /* Communications between the main thread and the WUI thread. For * an explanation of the threading model, please see the comment in * main(). @@ -58,6 +61,12 @@ extern gboolean debug; extern void start_wui_thread (void); extern void stop_wui_thread (void); +extern void assert_is_main_thread (const char *, int); +extern void assert_is_wui_thread (const char *, int); + +#define ASSERT_IS_MAIN_THREAD() assert_is_main_thread(__FILE__,__LINE__) +#define ASSERT_IS_WUI_THREAD() assert_is_wui_thread(__FILE__,__LINE__) + /* These are messages (instructions) which can be sent from the main * thread to the WUI thread. */ @@ -80,16 +89,37 @@ extern void wui_thread_send_refresh_vm_list (void); /* Retrieve the list of VMs. * + * wui_thread_get_vmlist returns TRUE if there was a valid list of + * VMs (even if it is empty), or FALSE if we don't have a valid list + * of VMs to return. + * * NB: Caller must call free_vmlist once it is done with the list. * - * This can return NULL if the WUI thread doesn't have a valid - * list of VMs to return to the caller. In the case of a valid, - * empty list, you will get a non-NULL GSList pointer to an empty - * list. */ -extern GSList *wui_thread_get_vmlist (void); +extern gboolean wui_thread_get_vmlist (GSList **ret); extern void free_vmlist (GSList *vmlist); +struct vm { + char *description; + int hostid; + int id; + int vnc_port; + int forward_vnc_port; + char *uuid; /* Printable UUID. */ + + /* Only the fields above this point are required. The remainder may + * be NULL / -1 to indicate they were missing in the data we got + * back from the WUI. + */ + + long mem_allocated; /* Kbytes */ + long mem_used; /* Kbytes */ + int vcpus_allocated; + int vcpus_used; + char *state; + char *mac_addr; /* Printable MAC addr. */ +}; + /* Returns true if the WUI thread thinks it is connected to a remote * WUI. REST is connectionless so really this means that we * successfully made an HTTP/HTTPS request "recently", and we haven't @@ -114,4 +144,39 @@ extern gboolean wui_thread_has_valid_vmlist (void); */ extern gboolean wui_thread_is_busy (void); +/* Callbacks from the WUI thread to the main thread. The WUI thread + * adds these to the Glib main loop using g_idle_add, which means they + * actually get executed in the context of the main thread. + */ + +/* The WUI thread has changed its state to connected. */ +extern gboolean main_connected (gpointer); + +/* The WUI thread has changed its state to disconnected. */ +extern gboolean main_disconnected (gpointer); + +/* The WUI thread has changed its state to logged in. */ +extern gboolean main_logged_in (gpointer); + +/* The WUI thread has changed its state to logged out. */ +extern gboolean main_logged_out (gpointer); + +/* The WUI thread has changed its state to busy. */ +extern gboolean main_busy (gpointer); + +/* The WUI thread has changed its state to idle. */ +extern gboolean main_idle (gpointer); + +/* The WUI thread had a connection problem. */ +extern gboolean main_connection_error (gpointer str); + +/* The WUI thread had a login problem. */ +extern gboolean main_login_error (gpointer str); + +/* The WUI thread reports a general status error. */ +extern gboolean main_status_error (gpointer str); + +/* The WUI thread has updated the vm list. */ +extern gboolean main_vmlist_updated (gpointer); + #endif /* OVIRT_VIEWER_INTERNAL_H */