e3bd84fa57
Safer encode/decode variant.
75 lines
3 KiB
XML
75 lines
3 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="PacketPeer" inherits="Reference" category="Core" version="3.2">
|
|
<brief_description>
|
|
Abstraction and base class for packet-based protocols.
|
|
</brief_description>
|
|
<description>
|
|
PacketPeer is an abstraction and base class for packet-based protocols (such as UDP). It provides an API for sending and receiving packets both as raw data or variables. This makes it easy to transfer data over a protocol, without having to encode data as low level bytes or having to worry about network ordering.
|
|
</description>
|
|
<tutorials>
|
|
</tutorials>
|
|
<demos>
|
|
</demos>
|
|
<methods>
|
|
<method name="get_available_packet_count" qualifiers="const">
|
|
<return type="int">
|
|
</return>
|
|
<description>
|
|
Return the number of packets currently available in the ring-buffer.
|
|
</description>
|
|
</method>
|
|
<method name="get_packet">
|
|
<return type="PoolByteArray">
|
|
</return>
|
|
<description>
|
|
Get a raw packet.
|
|
</description>
|
|
</method>
|
|
<method name="get_packet_error" qualifiers="const">
|
|
<return type="int" enum="Error">
|
|
</return>
|
|
<description>
|
|
Return the error state of the last packet received (via [method get_packet] and [method get_var]).
|
|
</description>
|
|
</method>
|
|
<method name="get_var">
|
|
<return type="Variant">
|
|
</return>
|
|
<argument index="0" name="allow_objects" type="bool" default="false">
|
|
</argument>
|
|
<description>
|
|
Get a Variant. When [code]allow_objects[/code] (or [member allow_object_decoding]) is [code]true[/code] decoding objects is allowed.
|
|
[b]WARNING:[/b] Deserialized object can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats (remote code execution).
|
|
</description>
|
|
</method>
|
|
<method name="put_packet">
|
|
<return type="int" enum="Error">
|
|
</return>
|
|
<argument index="0" name="buffer" type="PoolByteArray">
|
|
</argument>
|
|
<description>
|
|
Send a raw packet.
|
|
</description>
|
|
</method>
|
|
<method name="put_var">
|
|
<return type="int" enum="Error">
|
|
</return>
|
|
<argument index="0" name="var" type="Variant">
|
|
</argument>
|
|
<argument index="1" name="full_objects" type="bool" default="false">
|
|
</argument>
|
|
<description>
|
|
Send a Variant as a packet. When [code]full_objects[/code] (or [member allow_object_decoding]) is [code]true[/code] encoding objects is allowed (and can potentially include code).
|
|
</description>
|
|
</method>
|
|
</methods>
|
|
<members>
|
|
<member name="allow_object_decoding" type="bool" setter="set_allow_object_decoding" getter="is_object_decoding_allowed">
|
|
Deprecated. Use [code]get_var[/code] and [code]put_var[/code] parameters instead.
|
|
If [code]true[/code] the PacketPeer will allow encoding and decoding of object via [method get_var] and [method put_var].
|
|
[b]WARNING:[/b] Deserialized object can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats (remote code execution).
|
|
</member>
|
|
</members>
|
|
<constants>
|
|
</constants>
|
|
</class>
|