728x90

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일 수 있습니다.
    • 함수 호출자가 데이터 소유권을 가집니다.
728x90

+ Recent posts