Skip to content

Instantly share code, notes, and snippets.

@tolerious
Created March 10, 2013 02:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tolerious/5126896 to your computer and use it in GitHub Desktop.
Save tolerious/5126896 to your computer and use it in GitHub Desktop.
#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