<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="sd_bus_message_copy" xmlns:xi="http://www.w3.org/2001/XInclude">

  <refentryinfo>
    <title>sd_bus_message_copy</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>sd_bus_message_copy</refentrytitle>
    <manvolnum>3</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>sd_bus_message_copy</refname>

    <refpurpose>Copy the contents of one message to another</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <funcsynopsis>
      <funcsynopsisinfo>#include &lt;systemd/sd-bus.h&gt;</funcsynopsisinfo>

      <funcprototype>
        <funcdef>int sd_bus_message_copy</funcdef>
        <paramdef>sd_bus_message *<parameter>m</parameter></paramdef>
        <paramdef>sd_bus_message *<parameter>source</parameter></paramdef>
        <paramdef>int <parameter>all</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para><function>sd_bus_message_copy()</function> copies the contents from
    message <parameter>source</parameter> to <parameter>m</parameter>. If
    <parameter>all</parameter> is false, a single complete type is copied
    (basic or container). If <parameter>all</parameter> is true, the contents
    are copied until the end of the currently open container or the end
    of <parameter>source</parameter>.</para>
  </refsect1>

  <refsect1>
    <title>Return Value</title>

    <para>On success, this call returns true if anything was copied, and false if
    there was nothing to copy. On failure, it returns a negative errno-style error
    code.</para>

    <refsect2 id='errors'>
      <title>Errors</title>

      <para>Returned errors may indicate the following problems:</para>

      <variablelist>

        <varlistentry>
          <term><constant>-EINVAL</constant></term>

          <listitem><para><parameter>source</parameter> or <parameter>m</parameter> are
          <constant>NULL</constant>.</para></listitem>
        </varlistentry>

        <varlistentry>
          <term><constant>-EPERM</constant></term>

          <listitem><para>Message <parameter>m</parameter> has been sealed or <parameter>source</parameter>
          has <emphasis>not</emphasis> been sealed.  </para></listitem>
        </varlistentry>

        <varlistentry>
          <term><constant>-ESTALE</constant></term>

          <listitem><para>Destination message is in invalid state.
          </para></listitem>
        </varlistentry>

        <varlistentry>
          <term><constant>-ENXIO</constant></term>

          <listitem><para>Destination message cannot be appended to.
          </para></listitem>
        </varlistentry>

        <varlistentry>
          <term><constant>-ENOMEM</constant></term>

          <listitem><para>Memory allocation failed.</para></listitem>
        </varlistentry>
      </variablelist>
    </refsect2>
  </refsect1>

  <xi:include href="libsystemd-pkgconfig.xml" />

  <refsect1>
    <title>See Also</title>

    <para>
      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>sd_bus_message_append</refentrytitle><manvolnum>3</manvolnum></citerefentry>
    </para>
  </refsect1>

</refentry>
