Class UnixConnection
- All Implemented Interfaces:
Proxy
,AutoCloseable
,AutoCloseable
SocketConnection
that is created
for UNIX domain sockets.
It contains functions to do some of the UNIX socket specific functionality like passing file descriptors.
Since GLib 2.72, GUnixConnection
is available on all platforms. It requires
underlying system support (such as Windows 10 with AF_UNIX
) at run time.
Before GLib 2.72, <gio/gunixconnection.h>
belonged to the UNIX-specific GIO
interfaces, thus you had to use the gio-unix-2.0.pc
pkg-config file when
using it. This is no longer necessary since GLib 2.72.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
UnixConnection.Builder<B extends UnixConnection.Builder<B>>
Inner class implementing a builder pattern to construct a GObject with properties.static class
Nested classes/interfaces inherited from class org.gnome.gio.SocketConnection
SocketConnection.SocketConnectionClass
Nested classes/interfaces inherited from class org.gnome.gio.IOStream
IOStream.IOStreamClass, IOStream.IOStreamImpl
Nested classes/interfaces inherited from class org.gnome.gobject.GObject
GObject.NotifyCallback, GObject.ObjectClass
-
Constructor Summary
ConstructorDescriptionUnixConnection
(MemorySegment address) Create a UnixConnection proxy instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionprotected UnixConnection
asParent()
Returns this instance as if it were its parent type.static UnixConnection.Builder
<? extends UnixConnection.Builder> builder()
AUnixConnection.Builder
object constructs aUnixConnection
with the specified properties.static MemoryLayout
The memory layout of the native struct.static Type
getType()
Get the GType of the UnixConnection classreceiveCredentials
(@Nullable Cancellable cancellable) Receives credentials from the sending end of the connection.void
receiveCredentialsAsync
(@Nullable Cancellable cancellable, @Nullable AsyncReadyCallback callback) Asynchronously receive credentials.receiveCredentialsFinish
(AsyncResult result) Finishes an asynchronous receive credentials operation started with g_unix_connection_receive_credentials_async().int
receiveFd
(@Nullable Cancellable cancellable) Receives a file descriptor from the sending end of the connection.boolean
sendCredentials
(@Nullable Cancellable cancellable) Passes the credentials of the current user the receiving side of the connection.void
sendCredentialsAsync
(@Nullable Cancellable cancellable, @Nullable AsyncReadyCallback callback) Asynchronously send credentials.boolean
sendCredentialsFinish
(AsyncResult result) Finishes an asynchronous send credentials operation started with g_unix_connection_send_credentials_async().boolean
sendFd
(int fd, @Nullable Cancellable cancellable) Passes a file descriptor to the receiving side of the connection.Methods inherited from class org.gnome.gio.SocketConnection
connect, connectAsync, connectFinish, factoryLookupType, factoryRegisterType, getLocalAddress, getRemoteAddress, getSocket, isConnected
Methods inherited from class org.gnome.gio.IOStream
clearPending, close, closeAsync, closeFinish, closeFn, getInputStream, getOutputStream, hasPending, isClosed, setPending, spliceAsync, spliceAsync, spliceFinish
Methods inherited from class org.gnome.gobject.GObject
addToggleRef, addWeakPointer, bindProperty, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, connect, constructed, disconnect, dispatchPropertiesChanged, dispose, dupData, dupQdata, emit, emitNotify, finalize_, forceFloating, freezeNotify, get, getData, getProperty, getProperty, getProperty, getQdata, getv, interfaceFindProperty, interfaceInstallProperty, interfaceListProperties, isFloating, newInstance, newInstance, newInstance, newInstance, newv, notify_, notify_, notifyByPspec, onNotify, ref, refSink, removeToggleRef, removeWeakPointer, replaceData, replaceQdata, runDispose, set, setData, setDataFull, setProperty, setProperty, setProperty, setQdata, setQdataFull, setv, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref, withProperties
Methods inherited from class org.gnome.gobject.TypeInstance
callParent, callParent, getPrivate, readGClass, writeGClass
Methods inherited from class io.github.jwharm.javagi.base.ProxyInstance
equals, handle, hashCode
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.github.jwharm.javagi.gio.AutoCloseable
close
-
Constructor Details
-
UnixConnection
Create a UnixConnection proxy instance for the provided memory address.- Parameters:
address
- the memory address of the native object
-
-
Method Details
-
getType
-
getMemoryLayout
The memory layout of the native struct.- Returns:
- the memory layout
-
asParent
Returns this instance as if it were its parent type. This is mostly synonymous to the Javasuper
keyword, but will set the native typeclass function pointers to the parent type. When overriding a native virtual method in Java, "chaining up" withsuper.methodName()
doesn't work, because it invokes the overridden function pointer again. To chain up, callasParent().methodName()
. This will call the native function pointer of this virtual method in the typeclass of the parent type.- Overrides:
asParent
in classSocketConnection
-
receiveCredentials
public Credentials receiveCredentials(@Nullable @Nullable Cancellable cancellable) throws GErrorException Receives credentials from the sending end of the connection. The sending end has to call g_unix_connection_send_credentials() (or similar) for this to work.As well as reading the credentials this also reads (and discards) a single byte from the stream, as this is required for credentials passing to work on some implementations.
This method can be expected to be available on the following platforms:
- Linux since GLib 2.26
- FreeBSD since GLib 2.26
- GNU/kFreeBSD since GLib 2.36
- Solaris, Illumos and OpenSolaris since GLib 2.40
- GNU/Hurd since GLib 2.40
Other ways to exchange credentials with a foreign peer includes the
GUnixCredentialsMessage
type and g_socket_get_credentials() function.- Parameters:
cancellable
- AGCancellable
ornull
.- Returns:
- Received credentials on success (free with
g_object_unref()),
null
iferror
is set. - Throws:
GErrorException
- seeGError
-
receiveCredentialsAsync
public void receiveCredentialsAsync(@Nullable @Nullable Cancellable cancellable, @Nullable @Nullable AsyncReadyCallback callback) Asynchronously receive credentials.For more details, see g_unix_connection_receive_credentials() which is the synchronous version of this call.
When the operation is finished,
callback
will be called. You can then call g_unix_connection_receive_credentials_finish() to get the result of the operation.- Parameters:
cancellable
- optionalGCancellable
object,null
to ignore.callback
- aGAsyncReadyCallback
to call when the request is satisfied
-
receiveCredentialsFinish
Finishes an asynchronous receive credentials operation started with g_unix_connection_receive_credentials_async().- Parameters:
result
- aGAsyncResult
.- Returns:
- a
GCredentials
, ornull
on error. Free the returned object with g_object_unref(). - Throws:
GErrorException
- seeGError
-
receiveFd
Receives a file descriptor from the sending end of the connection. The sending end has to call g_unix_connection_send_fd() for this to work.As well as reading the fd this also reads a single byte from the stream, as this is required for fd passing to work on some implementations.
- Parameters:
cancellable
- optionalGCancellable
object,null
to ignore- Returns:
- a file descriptor on success, -1 on error.
- Throws:
GErrorException
- seeGError
-
sendCredentials
Passes the credentials of the current user the receiving side of the connection. The receiving end has to call g_unix_connection_receive_credentials() (or similar) to accept the credentials.As well as sending the credentials this also writes a single NUL byte to the stream, as this is required for credentials passing to work on some implementations.
This method can be expected to be available on the following platforms:
- Linux since GLib 2.26
- FreeBSD since GLib 2.26
- GNU/kFreeBSD since GLib 2.36
- Solaris, Illumos and OpenSolaris since GLib 2.40
- GNU/Hurd since GLib 2.40
Other ways to exchange credentials with a foreign peer includes the
GUnixCredentialsMessage
type and g_socket_get_credentials() function.- Parameters:
cancellable
- AGCancellable
ornull
.- Returns:
true
on success,false
iferror
is set.- Throws:
GErrorException
- seeGError
-
sendCredentialsAsync
public void sendCredentialsAsync(@Nullable @Nullable Cancellable cancellable, @Nullable @Nullable AsyncReadyCallback callback) Asynchronously send credentials.For more details, see g_unix_connection_send_credentials() which is the synchronous version of this call.
When the operation is finished,
callback
will be called. You can then call g_unix_connection_send_credentials_finish() to get the result of the operation.- Parameters:
cancellable
- optionalGCancellable
object,null
to ignore.callback
- aGAsyncReadyCallback
to call when the request is satisfied
-
sendCredentialsFinish
Finishes an asynchronous send credentials operation started with g_unix_connection_send_credentials_async().- Parameters:
result
- aGAsyncResult
.- Returns:
true
if the operation was successful, otherwisefalse
.- Throws:
GErrorException
- seeGError
-
sendFd
Passes a file descriptor to the receiving side of the connection. The receiving end has to call g_unix_connection_receive_fd() to accept the file descriptor.As well as sending the fd this also writes a single byte to the stream, as this is required for fd passing to work on some implementations.
- Parameters:
fd
- a file descriptorcancellable
- optionalGCancellable
object,null
to ignore.- Returns:
- a
true
on success,null
on error. - Throws:
GErrorException
- seeGError
-
builder
AUnixConnection.Builder
object constructs aUnixConnection
with the specified properties. Use the variousset...()
methods to set properties, and finish construction withUnixConnection.Builder.build()
.
-