/* LIBPIKA - The PIKA Library
 * Copyright (C) 1995-2003 Peter Mattis and Spencer Kimball
 *
 * pikaplugin-private.h
 * Copyright (C) 2019 Michael Natterer <mitch@gimp.org>
 *
 * This library is free software: you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 3 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library.  If not, see
 * <https://www.gnu.org/licenses/>.
 */

#ifndef __PIKA_PLUG_IN_PRIVATE_H__
#define __PIKA_PLUG_IN_PRIVATE_H__

G_BEGIN_DECLS


void            _pika_plug_in_query                  (PikaPlugIn      *plug_in);
void            _pika_plug_in_init                   (PikaPlugIn      *plug_in);
void            _pika_plug_in_run                    (PikaPlugIn      *plug_in);
void            _pika_plug_in_quit                   (PikaPlugIn      *plug_in);

GIOChannel    * _pika_plug_in_get_read_channel       (PikaPlugIn      *plug_in);
GIOChannel    * _pika_plug_in_get_write_channel      (PikaPlugIn      *plug_in);

void            _pika_plug_in_read_expect_msg        (PikaPlugIn      *plug_in,
                                                      PikaWireMessage *msg,
                                                      gint             type);

gboolean        _pika_plug_in_set_i18n               (PikaPlugIn      *plug_in,
                                                      const gchar     *procedure_name,
                                                      gchar          **gettext_domain,
                                                      gchar          **catalog_dir);

PikaProcedure * _pika_plug_in_create_procedure       (PikaPlugIn      *plug_in,
                                                      const gchar     *procedure_name);

PikaProcedure * _pika_plug_in_get_procedure          (PikaPlugIn      *plug_in);

PikaDisplay   * _pika_plug_in_get_display            (PikaPlugIn      *plug_in,
                                                      gint32           display_id);
PikaImage     * _pika_plug_in_get_image              (PikaPlugIn      *plug_in,
                                                      gint32           image_id);
PikaItem      * _pika_plug_in_get_item               (PikaPlugIn      *plug_in,
                                                      gint32           item_id);
PikaResource  * _pika_plug_in_get_resource           (PikaPlugIn      *plug_in,
                                                      gint32           resource_id);

gboolean        _pika_plug_in_manage_memory_manually (PikaPlugIn      *plug_in);


G_END_DECLS

#endif /* __PIKA_PLUG_IN_PRIVATE_H__ */
