pidgin/pidgin

f755b10c05a3
Update the demo protocol plugin to not depend on conversation names

We're starting to phase out conversation names as they don't work well with
modern stuff. So this goes ahead and fixes the not interactions in the demo
protocol.

I also generated the echo message in the send_message_async rather than in the
callback.

Testing Done:
Ran the turtles and send some messages to Echo on the demo protocol.

Reviewed at https://reviews.imfreedom.org/r/3135/
/*
* Purple - Internet Messaging Library
* Copyright (C) Pidgin Developers <devel@pidgin.im>
*
* Purple is the legal property of its developers, whose names are too numerous
* to list here. Please refer to the COPYRIGHT file distributed with this
* source distribution.
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 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 General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this library; if not, see <https://www.gnu.org/licenses/>.
*/
#if !defined(PURPLE_GLOBAL_HEADER_INSIDE) && !defined(PURPLE_COMPILATION)
# error "only <purple.h> may be included directly"
#endif
#ifndef PURPLE_PRIVATE_H
#define PURPLE_PRIVATE_H
#include <glib.h>
#include <glib/gstdio.h>
#include "accounts.h"
#include "connection.h"
#include "purplecredentialprovider.h"
#include "purplehistoryadapter.h"
#include "purpleversion.h"
#include "xmlnode.h"
G_BEGIN_DECLS
/**
* _purple_account_to_xmlnode:
* @account: The account
*
* Get an XML description of an account.
*
* Returns: The XML description of the account.
*/
G_GNUC_INTERNAL
PurpleXmlNode *_purple_account_to_xmlnode(PurpleAccount *account);
/**
* _purple_connection_wants_to_die:
* @gc: The connection to check
*
* Checks if a connection is disconnecting, and should not attempt to reconnect.
*
* Note: This function should only be called by purple_account_set_enabled()
* in account.c.
*/
G_GNUC_INTERNAL
gboolean _purple_connection_wants_to_die(PurpleConnection *gc);
/**
* _purple_statuses_get_primitive_scores:
*
* Note: This function should only be called by
* purple_buddy_presence_compute_score() in presence.c.
*
* Returns: The primitive scores array from status.c.
*/
G_GNUC_INTERNAL
int *_purple_statuses_get_primitive_scores(void);
/**
* _purple_conversation_write_common:
* @conv: The conversation.
* @msg: The message.
*
* Writes to a conversation window.
*
* This function should not be used to write IM or chat messages. Use
* purple_conversation_write_message() instead. This function will
* most likely call this anyway, but it may do it's own formatting,
* sound playback, etc. depending on whether the conversation is a chat or an
* IM.
*
* See purple_conversation_write_message().
*/
G_GNUC_INTERNAL
void _purple_conversation_write_common(PurpleConversation *conv, PurpleMessage *msg);
/**
* purple_account_manager_startup:
*
* Starts up the account manager by creating the default instance.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_account_manager_startup(void);
/**
* purple_account_manager_shutdown:
*
* Shuts down the account manager by destroying the default instance.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_account_manager_shutdown(void);
/**
* purple_contact_manager_startup:
*
* Starts up the contact manager by creating the default instance.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_contact_manager_startup(void);
/**
* purple_contact_manager_shutdown:
*
* Shuts down the contact manager by destroying the default instance.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_contact_manager_shutdown(void);
/**
* purple_conversation_manager_startup:
*
* Starts up the conversation manager by creating the default instance.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_conversation_manager_startup(void);
/**
* purple_conversation_manager_shutdown:
*
* Shuts down the conversation manager by destroying the default instance.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_conversation_manager_shutdown(void);
/**
* purple_credential_manager_startup:
*
* Starts up the credential manager by creating the default instance.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_credential_manager_startup(void);
/**
* purple_credential_manager_shutdown:
*
* Shuts down the credential manager by destroying the default instance.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_credential_manager_shutdown(void);
/**
* purple_protocol_manager_startup:
*
* Starts up the protocol manager by creating the default instance.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_protocol_manager_startup(void);
/**
* purple_protocol_manager_shutdown:
*
* Shuts down the protocol manager by destroying the default instance.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_protocol_manager_shutdown(void);
/**
* purple_credential_provider_activate:
* @provider: The #PurpleCredentialProvider instance.
*
* Tells a @provider that it has become the active provider.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_credential_provider_activate(PurpleCredentialProvider *provider);
/**
* purple_credential_provider_deactivate:
* @provider: The #PurpleCredentialProvider instance.
*
* Tells @provider that another #PurpleCredentialProvider has become the active
* provider.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_credential_provider_deactivate(PurpleCredentialProvider *provider);
/**
* purple_history_adapter_activate:
* @adapter: The #PurpleHistoryAdapter instance.
* @error: A return address for a #GError.
*
* Asks @adapter to become the active adapter. If @adapter can not become active
* it should return %FALSE and set @error.
*
* NOTE: This is public only for tests. Do not use outside of libpurple.
*
* Returns: %TRUE on success otherwise %FALSE with @error set.
*
* Since: 3.0
*/
PURPLE_AVAILABLE_IN_3_0
gboolean purple_history_adapter_activate(PurpleHistoryAdapter *adapter, GError **error);
/**
* purple_history_adapter_deactivate:
* @adapter: The #PurpleHistoryAdapter instance.
* @error: A return address for a #GError.
*
* Asks @adapter to stop being the active adapter. If @adapter can not
* deactivate it should return %FALSE and set @error.
*
* NOTE: This is public only for tests. Do not use outside of libpurple.
*
* Returns: %TRUE on success otherwise %FALSE with @error set.
*
* Since: 3.0
*/
PURPLE_AVAILABLE_IN_3_0
gboolean purple_history_adapter_deactivate(PurpleHistoryAdapter *adapter, GError **error);
/**
* purple_media_manager_shutdown:
*
* Shuts down the media manager by destroying the default instance.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_media_manager_shutdown(void);
/**
* purple_notification_manager_startup:
*
* Starts up the notification manager by creating the default instance.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_notification_manager_startup(void);
/**
* purple_notification_manager_shutdown:
*
* Shuts down the notification manager by destroying the default instance.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_notification_manager_shutdown(void);
/**
* purple_whiteboard_manager_startup:
*
* Starts up the whiteboard manager by creating the default instance.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_whiteboard_manager_startup(void);
/**
* purple_whiteboard_manager_shutdown:
*
* Shuts down the whiteboard manager by destroying the default instance.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_whiteboard_manager_shutdown(void);
/**
* purple_account_set_enabled_plain:
* @account: The instance.
* @enabled: Whether or not the account is enabled.
*
* This is a temporary method until we overhaul serialization of accounts.
*
* This method sets the enabled state of an account without any side effects.
* Its primary usage is when loading accounts from disk, as without this, the
* account attempts to connect immediately.
*
* Since: 3.0
*/
G_GNUC_INTERNAL
void purple_account_set_enabled_plain(PurpleAccount *account, gboolean enabled);
G_END_DECLS
#endif /* PURPLE_PRIVATE_H */