This repository has been archived by the owner on Jun 8, 2021. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 62
Initial GMainLoop/GMainContext bindings #194
Merged
Merged
Changes from 5 commits
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
6548289
Initial GMainLoop/GMainContext bindings
sdroege 2fa07f6
Add source::unix_signal_add()
sdroege 8b10549
Add source::child_watch_add()
sdroege 5b47a35
Add various wrappers for creating Sources
sdroege 3ee1d32
Add MainContext::invoke() and ::invoke_with_priority()
sdroege 02f7de9
Export everything from source::* at the crate level
sdroege eb965f8
Update gir submodule
sdroege f376ae0
Renegerate with latest gir
sdroege 1ce0b70
Rename source::Id to SourceId
sdroege 3a1e912
Add manual implementation for MainContext::find_source_by_id() becaus…
sdroege File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
// This file was generated by gir (f43f563) from gir-files (71d73f0) | ||
// DO NOT EDIT | ||
|
||
use Source; | ||
use ffi; | ||
use translate::*; | ||
|
||
glib_wrapper! { | ||
pub struct MainContext(Shared<ffi::GMainContext>); | ||
|
||
match fn { | ||
ref => |ptr| ffi::g_main_context_ref(ptr), | ||
unref => |ptr| ffi::g_main_context_unref(ptr), | ||
} | ||
} | ||
|
||
impl MainContext { | ||
pub fn new() -> MainContext { | ||
unsafe { | ||
from_glib_full(ffi::g_main_context_new()) | ||
} | ||
} | ||
|
||
pub fn acquire(&self) -> bool { | ||
unsafe { | ||
from_glib(ffi::g_main_context_acquire(self.to_glib_none().0)) | ||
} | ||
} | ||
|
||
//pub fn add_poll(&self, fd: /*Ignored*/&mut PollFD, priority: i32) { | ||
// unsafe { TODO: call ffi::g_main_context_add_poll() } | ||
//} | ||
|
||
//pub fn check(&self, max_priority: i32, fds: /*Ignored*/&[&PollFD]) -> i32 { | ||
// unsafe { TODO: call ffi::g_main_context_check() } | ||
//} | ||
|
||
pub fn dispatch(&self) { | ||
unsafe { | ||
ffi::g_main_context_dispatch(self.to_glib_none().0); | ||
} | ||
} | ||
|
||
//pub fn find_source_by_funcs_user_data<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, funcs: /*Ignored*/&mut SourceFuncs, user_data: P) -> Option<Source> { | ||
// unsafe { TODO: call ffi::g_main_context_find_source_by_funcs_user_data() } | ||
//} | ||
|
||
pub fn find_source_by_id(&self, source_id: u32) -> Option<Source> { | ||
unsafe { | ||
from_glib_none(ffi::g_main_context_find_source_by_id(self.to_glib_none().0, source_id)) | ||
} | ||
} | ||
|
||
//pub fn find_source_by_user_data<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, user_data: P) -> Option<Source> { | ||
// unsafe { TODO: call ffi::g_main_context_find_source_by_user_data() } | ||
//} | ||
|
||
//pub fn get_poll_func(&self) -> /*Unknown conversion*//*Unimplemented*/PollFunc { | ||
// unsafe { TODO: call ffi::g_main_context_get_poll_func() } | ||
//} | ||
|
||
//pub fn invoke<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, function: /*Unknown conversion*//*Unimplemented*/SourceFunc, data: P) { | ||
// unsafe { TODO: call ffi::g_main_context_invoke() } | ||
//} | ||
|
||
//pub fn invoke_full<'a, P: Into<Option</*Unimplemented*/Fundamental: Pointer>>, Q: Into<Option<&'a /*Unimplemented*/DestroyNotify>>>(&self, priority: i32, function: /*Unknown conversion*//*Unimplemented*/SourceFunc, data: P, notify: Q) { | ||
// unsafe { TODO: call ffi::g_main_context_invoke_full() } | ||
//} | ||
|
||
pub fn is_owner(&self) -> bool { | ||
unsafe { | ||
from_glib(ffi::g_main_context_is_owner(self.to_glib_none().0)) | ||
} | ||
} | ||
|
||
pub fn iteration(&self, may_block: bool) -> bool { | ||
unsafe { | ||
from_glib(ffi::g_main_context_iteration(self.to_glib_none().0, may_block.to_glib())) | ||
} | ||
} | ||
|
||
pub fn pending(&self) -> bool { | ||
unsafe { | ||
from_glib(ffi::g_main_context_pending(self.to_glib_none().0)) | ||
} | ||
} | ||
|
||
pub fn pop_thread_default(&self) { | ||
unsafe { | ||
ffi::g_main_context_pop_thread_default(self.to_glib_none().0); | ||
} | ||
} | ||
|
||
pub fn push_thread_default(&self) { | ||
unsafe { | ||
ffi::g_main_context_push_thread_default(self.to_glib_none().0); | ||
} | ||
} | ||
|
||
//pub fn query(&self, max_priority: i32, fds: /*Unimplemented*/Vec<PollFD>) -> (i32, i32) { | ||
// unsafe { TODO: call ffi::g_main_context_query() } | ||
//} | ||
|
||
pub fn release(&self) { | ||
unsafe { | ||
ffi::g_main_context_release(self.to_glib_none().0); | ||
} | ||
} | ||
|
||
//pub fn remove_poll(&self, fd: /*Ignored*/&mut PollFD) { | ||
// unsafe { TODO: call ffi::g_main_context_remove_poll() } | ||
//} | ||
|
||
//pub fn set_poll_func(&self, func: /*Unknown conversion*//*Unimplemented*/PollFunc) { | ||
// unsafe { TODO: call ffi::g_main_context_set_poll_func() } | ||
//} | ||
|
||
//pub fn wait(&self, cond: /*Ignored*/&mut Cond, mutex: /*Ignored*/&mut Mutex) -> bool { | ||
// unsafe { TODO: call ffi::g_main_context_wait() } | ||
//} | ||
|
||
pub fn wakeup(&self) { | ||
unsafe { | ||
ffi::g_main_context_wakeup(self.to_glib_none().0); | ||
} | ||
} | ||
|
||
pub fn default() -> Option<MainContext> { | ||
unsafe { | ||
from_glib_none(ffi::g_main_context_default()) | ||
} | ||
} | ||
|
||
pub fn get_thread_default() -> Option<MainContext> { | ||
unsafe { | ||
from_glib_none(ffi::g_main_context_get_thread_default()) | ||
} | ||
} | ||
|
||
pub fn ref_thread_default() -> Option<MainContext> { | ||
unsafe { | ||
from_glib_full(ffi::g_main_context_ref_thread_default()) | ||
} | ||
} | ||
} | ||
|
||
unsafe impl Send for MainContext {} | ||
unsafe impl Sync for MainContext {} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
// This file was generated by gir (f43f563) from gir-files (71d73f0) | ||
// DO NOT EDIT | ||
|
||
use MainContext; | ||
use ffi; | ||
use translate::*; | ||
|
||
glib_wrapper! { | ||
pub struct MainLoop(Shared<ffi::GMainLoop>); | ||
|
||
match fn { | ||
ref => |ptr| ffi::g_main_loop_ref(ptr), | ||
unref => |ptr| ffi::g_main_loop_unref(ptr), | ||
} | ||
} | ||
|
||
impl MainLoop { | ||
pub fn new<'a, P: Into<Option<&'a MainContext>>>(context: P, is_running: bool) -> MainLoop { | ||
let context = context.into(); | ||
let context = context.to_glib_none(); | ||
unsafe { | ||
from_glib_full(ffi::g_main_loop_new(context.0, is_running.to_glib())) | ||
} | ||
} | ||
|
||
pub fn get_context(&self) -> Option<MainContext> { | ||
unsafe { | ||
from_glib_none(ffi::g_main_loop_get_context(self.to_glib_none().0)) | ||
} | ||
} | ||
|
||
pub fn is_running(&self) -> bool { | ||
unsafe { | ||
from_glib(ffi::g_main_loop_is_running(self.to_glib_none().0)) | ||
} | ||
} | ||
|
||
pub fn quit(&self) { | ||
unsafe { | ||
ffi::g_main_loop_quit(self.to_glib_none().0); | ||
} | ||
} | ||
|
||
pub fn run(&self) { | ||
unsafe { | ||
ffi::g_main_loop_run(self.to_glib_none().0); | ||
} | ||
} | ||
} | ||
|
||
unsafe impl Send for MainLoop {} | ||
unsafe impl Sync for MainLoop {} |
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
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since we bound
Source
, why is this ignored?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah nevermind...