blob: 4f148f0c6aa8766abea5d375d16d1da02736c27f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include "adwaitamm/helpers/async_callback.hpp"
#include <glibmm/exceptionhandler.h>
#include <glibmm/object.h>
#include <giomm/asyncresult.h>
#include <memory>
namespace Adwaita::helpers
{
auto async_callback(GObject *, GAsyncResult * result, void * data) noexcept -> void
{
auto slot = std::unique_ptr<Gio::SlotAsyncReady>(static_cast<Gio::SlotAsyncReady *>(data));
try
{
auto actual_result = Glib::wrap(result, true);
(*slot)(actual_result);
}
catch (...)
{
Glib::exception_handlers_invoke();
}
}
} // namespace Adwaita::helpers
|