コード例 #1
0
ファイル: wi-sqlite3.c プロジェクト: ProfDrLuigi/zanka
wi_sqlite3_statement_t * wi_sqlite3_prepare_statement(wi_sqlite3_database_t *database, wi_string_t *query, ...) {
	wi_sqlite3_statement_t		*statement;
	va_list						ap;
	
	statement				= wi_autorelease(wi_runtime_create_instance(_wi_sqlite3_statement_runtime_id, sizeof(wi_sqlite3_statement_t)));
	statement->query		= wi_retain(query);
	
	wi_recursive_lock_lock(database->lock);
	
	if(
#ifdef HAVE_SQLITE3_PREPARE_V2
	   sqlite3_prepare_v2
#else
	   sqlite3_prepare
#endif
	   (database->database, wi_string_cstring(query), wi_string_length(query), &statement->statement, NULL) == SQLITE_OK) {
		va_start(ap, query);
		_wi_sqlite3_bind_statement(statement, ap);
		va_end(ap);
	} else {
		wi_error_set_sqlite3_error_with_description(database->database, wi_description(statement));
		
		statement = NULL;
	}
	
	wi_recursive_lock_unlock(database->lock);
	
	return statement;
}
コード例 #2
0
ファイル: wi-sqlite3.c プロジェクト: ProfDrLuigi/zanka
wi_sqlite3_database_t * wi_sqlite3_open_database_with_path(wi_string_t *path) {
	wi_sqlite3_database_t		*database;
	
	database			= wi_autorelease(wi_runtime_create_instance(_wi_sqlite3_database_runtime_id, sizeof(wi_sqlite3_database_t)));
	database->lock		= wi_recursive_lock_init(wi_recursive_lock_alloc());
	
	if(sqlite3_open(wi_string_cstring(path), &database->database) == SQLITE_OK) {
		sqlite3_busy_handler(database->database, _wi_sqlite3_busy_handler, NULL);
	} else {
		if(database->database) {
			wi_error_set_sqlite3_error(database->database);
			
			sqlite3_close(database->database);
			database->database = NULL;
		} else {
			wi_error_set_errno(ENOMEM);
		}
		
		database = NULL;
	}
	
	return database;
}
コード例 #3
0
ファイル: wi-process.c プロジェクト: Patater/libwired
static wi_process_t * _wi_process_alloc(void) {
	return wi_runtime_create_instance(_wi_process_runtime_id, sizeof(wi_process_t));
}
コード例 #4
0
ファイル: wi-socket.c プロジェクト: ProfDrLuigi/zanka
wi_socket_t * wi_socket_alloc(void) {
	return wi_runtime_create_instance(_wi_socket_runtime_id, sizeof(wi_socket_t));
}
コード例 #5
0
ファイル: users.c プロジェクト: ProfDrLuigi/wired
static wd_client_info_t * wd_client_info_alloc(void) {
	return wi_runtime_create_instance(wd_client_info_runtime_id, sizeof(wd_client_info_t));
}
コード例 #6
0
ファイル: wi-error.c プロジェクト: ProfDrLuigi/zanka
static wi_error_t * _wi_error_alloc(void) {
	return wi_runtime_create_instance(_wi_error_runtime_id, sizeof(wi_error_t));
}
コード例 #7
0
ファイル: wi-settings.c プロジェクト: ProfDrLuigi/zanka
wi_settings_t * wi_settings_alloc(void) {
	return wi_runtime_create_instance(_wi_settings_runtime_id, sizeof(wi_settings_t));
}
コード例 #8
0
ファイル: wi-thread.c プロジェクト: ProfDrLuigi/zanka
static wi_thread_t * _wi_thread_alloc(void) {
	return wi_runtime_create_instance(_wi_thread_runtime_id, sizeof(wi_thread_t));
}
コード例 #9
0
ファイル: wi-lock.c プロジェクト: ProfDrLuigi/zanka
wi_recursive_lock_t * wi_recursive_lock_alloc(void) {
	return wi_runtime_create_instance(_wi_recursive_lock_runtime_id, sizeof(wi_recursive_lock_t));
}
コード例 #10
0
ファイル: command.c プロジェクト: ProfDrLuigi/wirebot
wb_command_t * wb_command_alloc(void) {
	return wi_runtime_create_instance(wb_command_runtime_id, sizeof(wb_command_t));
}
コード例 #11
0
ファイル: banlist.c プロジェクト: ProfDrLuigi/zanka
static wd_tempban_t * wd_tempban_alloc(void) {
	return wi_runtime_create_instance(wd_tempban_runtime_id, sizeof(wd_tempban_t));
}
コード例 #12
0
ファイル: wi-array.c プロジェクト: ProfDrLuigi/zanka
wi_array_t * wi_array_alloc(void) {
	return wi_runtime_create_instance(_wi_array_runtime_id, sizeof(wi_array_t));
}
コード例 #13
0
wi_speed_calculator_t * wi_speed_calculator_alloc(void) {
	return wi_runtime_create_instance(_wi_speed_calculator_runtime_id, sizeof(wi_speed_calculator_t));
}
コード例 #14
0
ファイル: chats.c プロジェクト: ProfDrLuigi/zanka
wr_chat_t * wr_chat_alloc(void) {
	return wi_runtime_create_instance(wr_chat_runtime_id, sizeof(wr_chat_t));
}
コード例 #15
0
ファイル: wi-x509.c プロジェクト: ProfDrLuigi/zanka
wi_x509_t * wi_x509_alloc(void) {
	return wi_runtime_create_instance(_wi_x509_runtime_id, sizeof(wi_x509_t));
}
コード例 #16
0
ファイル: wi-fsenumerator.c プロジェクト: Patater/libwired
wi_fsenumerator_t * wi_fsenumerator_alloc(void) {
	return wi_runtime_create_instance(_wi_fsenumerator_runtime_id, sizeof(wi_fsenumerator_t));
}
コード例 #17
0
ファイル: wi-crypto.c プロジェクト: ProfDrLuigi/zanka
wi_cipher_t * wi_cipher_alloc(void) {
	return wi_runtime_create_instance(_wi_cipher_runtime_id, sizeof(wi_cipher_t));
}
コード例 #18
0
ファイル: server.c プロジェクト: ProfDrLuigi/wirebot
wr_server_t * wr_server_alloc(void) {
	return wi_runtime_create_instance(wr_server_runtime_id, sizeof(wr_server_t));
}
コード例 #19
0
ファイル: wi-lock.c プロジェクト: ProfDrLuigi/zanka
wi_condition_lock_t * wi_condition_lock_alloc(void) {
	return wi_runtime_create_instance(_wi_condition_lock_runtime_id, sizeof(wi_condition_lock_t));
}
コード例 #20
0
ファイル: wi-config.c プロジェクト: asvitkine/phxd
wi_config_t * wi_config_alloc(void) {
	return wi_runtime_create_instance(_wi_config_runtime_id, sizeof(wi_config_t));
}
コード例 #21
0
ファイル: windows.c プロジェクト: ProfDrLuigi/zanka
wr_window_t * wr_window_alloc(void) {
	return wi_runtime_create_instance(wr_window_runtime_id, sizeof(wr_window_t));
}
コード例 #22
0
ファイル: wi-terminal.c プロジェクト: ProfDrLuigi/zanka
wi_terminal_buffer_t * wi_terminal_buffer_alloc(void) {
	return wi_runtime_create_instance(_wi_terminal_buffer_runtime_id, sizeof(wi_terminal_buffer_t));
}
コード例 #23
0
ファイル: wi-p7-message.c プロジェクト: ProfDrLuigi/zanka
wi_p7_message_t * wi_p7_message_alloc(void) {
    return wi_runtime_create_instance(_wi_p7_message_runtime_id, sizeof(wi_p7_message_t));
}
コード例 #24
0
wi_string_encoding_t * wi_string_encoding_alloc(void) {
    return wi_runtime_create_instance(_wi_string_encoding_runtime_id, sizeof(wi_string_encoding_t));
}
コード例 #25
0
ファイル: users.c プロジェクト: ProfDrLuigi/zanka
static wd_user_t * wd_user_alloc(void) {
	return wi_runtime_create_instance(wd_user_runtime_id, sizeof(wd_user_t));
}
コード例 #26
0
ファイル: topic.c プロジェクト: ProfDrLuigi/wirebot
wr_topic_t * wr_topic_alloc(void) {
	return wi_runtime_create_instance(wr_topic_runtime_id, sizeof(wr_topic_t));
}