g_dbus_connection_call_sync
GVariant*
g_dbus_connection_call_sync (
GDBusConnection* connection,
const gchar* bus_name,
const gchar* object_path,
const gchar* interface_name,
const gchar* method_name,
GVariant* parameters,
const GVariantType* reply_type,
GDBusCallFlags flags,
gint timeout_msec,
GCancellable* cancellable,
GError** error
)
설명
bus_name이 소유한 object_path에 있는 원격 객체의 interface_name D-Bus 인터페이스에서 method_name 메서드를 동기적으로 호출합니다.
connection이 닫혀 있으면 작업은 G_IO_ERROR_CLOSED로 실패합니다. cancellable이 취소되면 작업은 G_IO_ERROR_CANCELLED로 실패합니다. parameters에 D-Bus 프로토콜과 호환되지 않는 값이 포함되어 있으면 G_IO_ERROR_INVALID_ARGUMENT로 실패합니다.
reply_type이 NULL이 아닌 경우 답변이 이 타입을 갖는지 확인하고 맞지 않으면 오류가 발생합니다. 다시 말해, reply_type을 제공하면 NULL이 아닌 반환 값은 이 타입이 됩니다.
parameters GVariant가 부동 상태인 경우 소비됩니다. 이를 통해 g_variant_new()의 편리한 '인라인' 사용이 가능합니다. 예를 들어:
g_dbus_connection_call_sync (connection,
"org.freedesktop.StringThings",
"/org/freedesktop/StringThings",
"org.freedesktop.StringThings",
"TwoStrings",
g_variant_new ("(ss)",
"Thing One",
"Thing Two"),
NULL,
G_DBUS_CALL_FLAGS_NONE,
-1,
NULL,
&error);
답변이 수신될 때까지 호출 스레드는 차단됩니다. 이 메서드의 비동기 버전은 g_dbus_connection_call()을 참조하세요.
버전 2.26부터 사용 가능합니다.
매개변수
- bus_name
- 타입: const gchar*
- 고유 또는 잘 알려진 버스 이름 또는 connection이 메시지 버스 연결이 아닌 경우 NULL.
- 인수는 NULL일 수 있습니다.
- 함수 호출자가 데이터 소유권을 가집니다.
- 값은 NULL로 종료된 UTF-8 문자열입니다.
- object_path
- 타입: const gchar*
- 원격 객체의 경로입니다.
- 함수 호출자가 데이터 소유권을 가집니다.
- 값은 NULL로 종료된 UTF-8 문자열입니다.
- interface_name
- 타입: const gchar*
- 메서드를 호출할 D-Bus 인터페이스입니다.
- 함수 호출자가 데이터 소유권을 가집니다.
- 값은 NULL로 종료된 UTF-8 문자열입니다.
- method_name
- 타입: const gchar*
- 호출할 메서드의 이름입니다.
- 함수 호출자가 데이터 소유권을 가집니다.
- 값은 NULL로 종료된 UTF-8 문자열입니다.
- parameters
- 타입: GVariant
- 메서드에 대한 매개변수를 위한 GVariant 튜플 또는 매개변수를 전달하지 않는 경우 NULL.
- 인수는 NULL일 수 있습니다.
- 함수 호출자가 데이터 소유권을 가집니다.
- reply_type
- 타입: GVariantType
- 예상되는 답변의 타입, 또는 NULL.
- 인수는 NULL일 수 있습니다.
- 함수 호출자가 데이터 소유권을 가집니다.
- flags
- 타입: GDBusCallFlags
- GDBusCallFlags 열거형의 플래그입니다.
- timeout_msec
- 타입: gint
- 밀리초 단위의 타임아웃, 기본 타임아웃을 사용하려면 -1, 타임아웃이 없는 경우 G_MAXINT.
- cancellable
- 타입: GCancellable
- GCancellable 또는 NULL.
- 인수는 NULL일 수 있습니다.
- 함수 호출자가 데이터 소유권을 가집니다.
- error
- 타입: GError **
- 복구 가능한 오류를 위한 반환 위치입니다.
- 인수는 NULL일 수 있습니다.
- 반환 위치가 NULL이 아닌 경우 NULL인 GError*로 초기화해야 합니다.
- 오류가 없는 경우 메서드에 의해 인수가 NULL로 초기화됩니다.
- 오류가 발생한 경우 인수는 새로 할당된 GError로 설정되며, 호출자가 데이터 소유권을 가지고 해제해야 합니다.
반환 값
- 타입: GVariant
- 오류가 설정된 경우 NULL. 그렇지 않으면 반환 값으로 g_variant_unref()로 해제되는 비부동 GVariant 튜플입니다.
- 메서드의 호출자가 데이터 소유권을 가지며 해제 책임이 있습니다.
g_dbus_connection_call
void
g_dbus_connection_call (
GDBusConnection* connection,
const gchar* bus_name,
const gchar* object_path,
const gchar* interface_name,
const gchar* method_name,
GVariant* parameters,
const GVariantType* reply_type,
GDBusCallFlags flags,
gint timeout_msec,
GCancellable* cancellable,
GAsyncReadyCallback callback,
gpointer user_data
)
설명
bus_name이 소유한 object_path에 있는 원격 객체의 interface_name D-Bus 인터페이스에서 method_name 메서드를 비동기적으로 호출합니다.
connection이 닫혀 있으면 작업은 G_IO_ERROR_CLOSED로 실패합니다. cancellable이 취소되면 작업은 G_IO_ERROR_CANCELLED로 실패합니다. parameters에 D-Bus 프로토콜과 호환되지 않는 값이 포함되어 있으면 G_IO_ERROR_INVALID_ARGUMENT로 실패합니다.
reply_type이 NULL이 아닌 경우 답변이 이 타입을 갖는지 확인하고 맞지 않으면 오류가 발생합니다. 다시 말해, reply_type을 제공하면 NULL이 아닌 반환 값은 이 타입이 됩니다. G_VARIANT_TYPE_UNIT이 아닌 경우, reply_type은 하나 이상의 값을 포함하는 튜플이 됩니다.
parameters GVariant가 부동 상태인 경우 소비됩니다. 이를 통해 g_variant_new()의 편리한 '인라인' 사용이 가능합니다. 예를 들어:
g_dbus_connection_call (connection,
"org.freedesktop.StringThings",
"/org/freedesktop/StringThings",
"org.freedesktop.StringThings",
"TwoStrings",
g_variant_new ("(ss)",
"Thing One",
"Thing Two"),
NULL,
G_DBUS_CALL_FLAGS_NONE,
-1,
NULL,
(GAsyncReadyCallback) two_strings_done,
NULL);
이것은 비동기적인 메서드입니다. 작업이 완료되면, callback은 이 메서드를 호출하는 스레드의 [스레드 기본 메인 컨텍스트][g-main-context-push-thread-default]에서 호출됩니다. 그 후 g_dbus_connection_call_finish()를 호출하여 작업의 결과를 얻을 수 있습니다. 이 함수의 동기 버전은 g_dbus_connection_call_sync()를 참조하세요.
callback이 NULL인 경우 D-Bus 메서드 호출 메시지는 G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED 플래그가 설정된 상태로 전송됩니다.
버전 2.26부터 사용 가능합니다.
매개변수
- bus_name
- 타입: const gchar*
- 고유 또는 잘 알려진 버스 이름 또는 connection이 메시지 버스 연결이 아닌 경우 NULL.
- 인수는 NULL일 수 있습니다.
- 함수 호출자가 데이터 소유권을 가집니다.
- 값은 NULL로 종료된 UTF-8 문자열입니다.
- object_path
- 타입: const gchar*
- 원격 객체의 경로입니다.
- 함수 호출자가 데이터 소유권을 가집니다.
- 값은 NULL로 종료된 UTF-8 문자열입니다.
- interface_name
- 타입: const gchar*
- 메서드를 호출할 D-Bus 인터페이스입니다.
- 함수 호출자가 데이터 소유권을 가집니다.
- 값은 NULL로 종료된 UTF-8 문자열입니다.
- method_name
- 타입: const gchar*
- 호출할 메서드의 이름입니다.
- 함수 호출자가 데이터 소유권을 가집니다.
- 값은 NULL로 종료된 UTF-8 문자열입니다.
- parameters
- 타입: GVariant
- 메서드에 대한 매개변수를 위한 GVariant 튜플 또는 매개변수를 전달하지 않는 경우 NULL.
- 인수는 NULL일 수 있습니다.
- 함수 호출자가 데이터 소유권을 가집니다.
- reply_type
- 타입: GVariantType
- 예상되는 답변의 타입 (튜플 형태), 또는 NULL.
- 인수는 NULL일 수 있습니다.
- 함수 호출자가 데이터 소유권을 가집니다.
- flags
- 타입: GDBusCallFlags
- GDBusCallFlags 열거형의 플래그입니다.
- timeout_msec
- 타입: gint
- 밀리초 단위의 타임아웃, 기본 타임아웃을 사용하려면 -1, 타임아웃이 없는 경우 G_MAXINT.
- cancellable
- 타입: GCancellable
- GCancellable 또는 NULL.
- 인수는 NULL일 수 있습니다.
- 함수 호출자가 데이터 소유권을 가집니다.
- callback
- 타입: GAsyncReadyCallback
- 요청이 만족될 때 호출할 GAsyncReadyCallback 또는 메서드 호출의 결과를 신경 쓰지 않는 경우 NULL.
- 인수는 NULL일 수 있습니다.
- user_data
- 타입: gpointer
- callback에 전달할 데이터입니다.
- 인수는 NULL일 수 있습니다.
- 함수 호출자가 데이터 소유권을 가집니다.