Created
March 10, 2013 02:53
-
-
Save tolerious/5126896 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <gtk/gtk.h> | |
#include <sqlite3.h> | |
#include "local_machine_info.h" | |
#include <time.h> | |
#include <string.h> | |
#define NAME "luna_client.sqlite3" | |
GtkLabel *modify_time;//更新时间的label | |
GtkLabel *modify_uuid; | |
GtkLabel *modify_server_name; | |
GtkLabel *modify_server_ip; | |
sqlite3 *db; | |
sqlite3_stmt *stmt; | |
int rc; | |
const char *tail; | |
char buffer[ 50];//存放时间 | |
void set_label_value( GtkLabel *label,const char *str ); | |
void release_database_connect( ); | |
void select_data_from_database( ); | |
void Print(gpointer data ){ | |
time_t t=time( NULL ); | |
struct tm tm=*localtime( &t ); | |
int n=sprintf( buffer,"%d/%d/%d %d:%d:%d",tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec ); | |
gtk_label_set_text( modify_time,buffer ); | |
//return FALSE; | |
} | |
int main( int argc,char **argv ) | |
{ | |
GtkBuilder *builder; | |
GtkWidget *window; | |
GtkWidget *connect_condition; | |
GtkWidget *time_condition; | |
GtkWidget *server_condition; | |
GtkWidget *server_uuid_label; | |
GtkWidget *server_name_label; | |
GtkWidget *server_ip_label; | |
/*g_thread_init( NULL ); | |
gdk_threads_init( ); | |
GThread *l_th; | |
g_usleep( 2000000 ); | |
l_th=g_thread_create( select_data_from_database,NULL,TRUE,NULL );*/ | |
gtk_init( &argc,&argv ); | |
builder=gtk_builder_new( ); | |
gtk_builder_add_from_file( builder,"host-info.glade",NULL ); | |
window=GTK_WIDGET( gtk_builder_get_object( builder,"window" ) ); | |
connect_condition=GTK_WIDGET( gtk_builder_get_object( builder,"Connect_label" ) ); | |
server_condition=GTK_WIDGET( gtk_builder_get_object( builder,"Serve_label" ) ); | |
time_condition=GTK_WIDGET( gtk_builder_get_object( builder,"Time_label" ) ); | |
server_uuid_label=GTK_WIDGET( gtk_builder_get_object( builder,"UUID_label" ) ); | |
server_name_label=GTK_WIDGET( gtk_builder_get_object( builder,"Hostname_label" ) ); | |
server_ip_label=GTK_WIDGET( gtk_builder_get_object( builder,"Host_IP_label" ) ); | |
set_label_value( ( GtkLabel* )server_uuid_label,"你好" ); | |
set_label_value( ( GtkLabel* )connect_condition,"已连接" ); | |
set_label_value( ( GtkLabel* )server_condition,"忙碌" ); | |
modify_time=( GtkLabel* )time_condition; | |
modify_server_name=(GtkLabel*)server_name_label; | |
//g_timeout_add( 500,Print,NULL ); | |
g_timeout_add( 1000,select_data_from_database,NULL ); | |
gtk_builder_connect_signals( builder,NULL ); | |
g_object_unref( G_OBJECT( builder ) ); | |
gtk_widget_show_all( window ); | |
gtk_main( ); | |
//g_thread_join( l_th ); | |
return 0; | |
} | |
void | |
set_label_value( GtkLabel* label,const char* str ){//设置标签的值 | |
gtk_label_set_text( label,str ); | |
} | |
void release_database_connect( ){ | |
sqlite3_finalize( stmt) ; | |
sqlite3_close( db ); | |
} | |
void | |
select_data_from_database( ){ | |
rc=sqlite3_open( NAME,&db ); | |
rc=sqlite3_prepare_v2( db," select server_uuid from server_profiles where active_interface_id in (select active_server_profile_id from configurations)",1000,&stmt,&tail ); | |
if( rc!=SQLITE_OK ) { | |
printf( "error occurs\n" ); | |
} | |
Local_Machine_info *info; | |
info->server_uuid="feng"; | |
info->server_name="fenghe"; | |
info->server_ip="sddsf"; | |
info->server_connect_state.web_service=1; | |
info->server_connect_state.data_service=1; | |
info->server_connect_state.voice_service=1; | |
info->web_service_interface="feng"; | |
info->data_service_interface="helong"; | |
info->voice_service_interface="helong"; | |
while( sqlite3_step( stmt )==SQLITE_ROW ){ | |
printf( "server_uuid:%s\n",sqlite3_column_text( stmt,0 ) ); | |
info->server_uuid=sqlite3_column_text( stmt,0 ); | |
printf( "%s\n",info->server_uuid ); | |
printf( "process\n"); | |
} | |
release_database_connect( ); | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment