Package ch.bailu.gtk.gio
Class SocketControlMessage
java.lang.Object
ch.bailu.gtk.type.Type
ch.bailu.gtk.type.Pointer
ch.bailu.gtk.gobject.Object
ch.bailu.gtk.gio.SocketControlMessage
- All Implemented Interfaces:
PointerInterface
- Direct Known Subclasses:
UnixCredentialsMessage
,UnixFDMessage
A #GSocketControlMessage is a special-purpose utility message that
can be sent to or received from a #GSocket. These types of
messages are often called "ancillary data".
The message can represent some sort of special instruction to or
information from the socket or can represent a special kind of
transfer to the peer (for example, sending a file descriptor over
a UNIX socket).
These messages are sent with g_socket_send_message() and received
with g_socket_receive_message().
To extend the set of control message that can be sent, subclass this
class and override the get_size, get_level, get_type and serialize
methods.
To extend the set of control messages that can be received, subclass
this class and implement the deserialize method. Also, make sure your
class is registered with the GType typesystem before calling
g_socket_receive_message() to read such a message.
can be sent to or received from a #GSocket. These types of
messages are often called "ancillary data".
The message can represent some sort of special instruction to or
information from the socket or can represent a special kind of
transfer to the peer (for example, sending a file descriptor over
a UNIX socket).
These messages are sent with g_socket_send_message() and received
with g_socket_receive_message().
To extend the set of control message that can be sent, subclass this
class and override the get_size, get_level, get_type and serialize
methods.
To extend the set of control messages that can be received, subclass
this class and implement the deserialize method. Also, make sure your
class is registered with the GType typesystem before calling
g_socket_receive_message() to read such a message.
-
Nested Class Summary
Nested classes/interfaces inherited from class ch.bailu.gtk.gobject.Object
Object.OnBindingTransformFunc, Object.OnDestroyNotify, Object.OnDuplicateFunc, Object.OnNotify, Object.OnToggleNotify, Object.OnWeakNotify
-
Field Summary
Fields inherited from class ch.bailu.gtk.gobject.Object
SIGNAL_ON_NOTIFY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic SocketControlMessage
deserialize
(int level, int type, long size, Pointer data) Tries to deserialize a socket control message of a given
@level and @type.static ClassHandler
static int
int
getLevel()
Returns the "level" (i.e. the originating protocol) of the control message.int
Returns the protocol specific type of the control message.static long
static TypeSystem.TypeSize
long
getSize()
Returns the space required for the control message, not including
headers or alignment.static long
static TypeSystem.TypeSize
void
Converts the data in the message to bytes placed in the
message.Methods inherited from class ch.bailu.gtk.gobject.Object
addToggleRef, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, disconnect, disconnect, dupData, dupData, dupQdata, forceFloating, freezeNotify, get, get, getData, getData, getProperty, getProperty, getQdata, interfaceFindProperty, interfaceInstallProperty, isFloating, notify, notify, notifyByPspec, onNotify, ref, refSink, removeToggleRef, replaceData, replaceData, replaceQdata, runDispose, set, set, setData, setData, setDataFull, setDataFull, setProperty, setProperty, setQdata, setQdataFull, stealData, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref
Methods inherited from class ch.bailu.gtk.type.Pointer
asCPointer, cast, connectSignal, disconnectSignals, disconnectSignals, equals, hashCode, throwIfNull, throwNullPointerException, toString, unregisterCallbacks, unregisterCallbacks
Methods inherited from class ch.bailu.gtk.type.Type
asCPointer, asCPointer, asCPointerNotNull, asJnaPointer, asJnaPointer, asPointer, asPointer, cast, cast, throwIfNull
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface ch.bailu.gtk.type.PointerInterface
asCPointerNotNull, asJnaPointer, asPointer, isNotNull, isNull
-
Constructor Details
-
SocketControlMessage
-
-
Method Details
-
getClassHandler
-
getLevel
public int getLevel()Returns the "level" (i.e. the originating protocol) of the control message.
This is often SOL_SOCKET.- Returns:
- an integer describing the level
-
getMsgType
public int getMsgType()Returns the protocol specific type of the control message.
For instance, for UNIX fd passing this would be SCM_RIGHTS.- Returns:
- an integer describing the type of control message
-
getSize
public long getSize()Returns the space required for the control message, not including
headers or alignment.- Returns:
- The number of bytes required.
-
serialize
Converts the data in the message to bytes placed in the
message.
@data is guaranteed to have enough space to fit the size
returned by g_socket_control_message_get_size() on this
object.- Parameters:
data
- A buffer to write data to
-
deserialize
public static SocketControlMessage deserialize(int level, int type, long size, @Nonnull Pointer data) Tries to deserialize a socket control message of a given
@level and @type. This will ask all known (to GType) subclasses
of #GSocketControlMessage if they can understand this kind
of message and if so deserialize it into a #GSocketControlMessage.
If there is no implementation for this kind of control message, %NULL
will be returned.- Parameters:
level
- a socket leveltype
- a socket control message type for the given @levelsize
- the size of the data in bytesdata
- pointer to the message data- Returns:
- the deserialized message or %NULL
-
getTypeID
public static long getTypeID() -
getParentTypeID
public static long getParentTypeID() -
getTypeSize
-
getParentTypeSize
-
getInstanceSize
public static int getInstanceSize()
-