pidgin/pidgin

Add some new methods to purple tags
default tip
38 hours ago, Gary Kramlich
b45add2a840c
Add some new methods to purple tags

* purple_tags_exists is a simplier version of purple_tags_lookup.
* purple_tags_contains makes it easier to find multiple matching tags.

Testing Done:
Ran the unit tests under valgrind and had the turtles check in on things too.

Reviewed at https://reviews.imfreedom.org/r/3143/
/*
* 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_PROXY_INFO_H
#define PURPLE_PROXY_INFO_H
#include <glib.h>
#include <glib-object.h>
#include "purpleversion.h"
/**
* PurpleProxyType:
* @PURPLE_PROXY_TYPE_USE_GLOBAL: Use the global proxy information.
* @PURPLE_PROXY_TYPE_NONE: No proxy.
* @PURPLE_PROXY_TYPE_HTTP: HTTP proxy.
* @PURPLE_PROXY_TYPE_SOCKS4: SOCKS 4 proxy.
* @PURPLE_PROXY_TYPE_SOCKS5: SOCKS 5 proxy.
* @PURPLE_PROXY_TYPE_USE_ENVVAR: Use environmental settings.
* @PURPLE_PROXY_TYPE_TOR: Use a Tor proxy (SOCKS 5 really).
*
* A type of proxy connection.
*
* Since: 2.0
*/
typedef enum {
PURPLE_PROXY_TYPE_USE_GLOBAL = -1,
PURPLE_PROXY_TYPE_NONE = 0,
PURPLE_PROXY_TYPE_HTTP,
PURPLE_PROXY_TYPE_SOCKS4,
PURPLE_PROXY_TYPE_SOCKS5,
PURPLE_PROXY_TYPE_USE_ENVVAR,
PURPLE_PROXY_TYPE_TOR
} PurpleProxyType;
G_BEGIN_DECLS
#define PURPLE_TYPE_PROXY_INFO (purple_proxy_info_get_type())
/**
* PurpleProxyInfo:
*
* A representation of a proxy.
*
* Since: 2.0
*/
PURPLE_AVAILABLE_IN_3_0
G_DECLARE_FINAL_TYPE(PurpleProxyInfo, purple_proxy_info, PURPLE, PROXY_INFO,
GObject)
/**
* purple_proxy_info_new:
*
* Creates a new proxy info instance.
*
* Returns: (transfer full): The new instance.
*
* Since: 2.0
*/
PURPLE_AVAILABLE_IN_ALL
PurpleProxyInfo *purple_proxy_info_new(void);
/**
* purple_proxy_info_set_proxy_type:
* @info: The instance.
* @proxy_type: The new type.
*
* Sets the type of @info.
*
* Since: 3.0
*/
PURPLE_AVAILABLE_IN_3_0
void purple_proxy_info_set_proxy_type(PurpleProxyInfo *info, PurpleProxyType proxy_type);
/**
* purple_proxy_info_get_proxy_type:
* @info: The instance.
*
* Gets the type of the proxy.
*
* Returns: The type of the proxy.
*
* Since: 3.0
*/
PURPLE_AVAILABLE_IN_3_0
PurpleProxyType purple_proxy_info_get_proxy_type(PurpleProxyInfo *info);
/**
* purple_proxy_info_set_hostname:
* @info: The instance.
* @hostname: The new hostname.
*
* Sets the hostname for the proxy.
*
* Since: 3.0
*/
PURPLE_AVAILABLE_IN_3_0
void purple_proxy_info_set_hostname(PurpleProxyInfo *info, const gchar *hostname);
/**
* purple_proxy_info_get_hostname:
* @info: The instance.
*
* Gets the hostname of the proxy.
*
* Returns: The hostname.
*
* Since: 3.0
*/
PURPLE_AVAILABLE_IN_3_0
const gchar *purple_proxy_info_get_hostname(PurpleProxyInfo *info);
/**
* purple_proxy_info_set_port:
* @info: The instance.
* @port: The new port.
*
* Sets the port for the proxy.
*
* Since: 2.0
*/
PURPLE_AVAILABLE_IN_ALL
void purple_proxy_info_set_port(PurpleProxyInfo *info, gint port);
/**
* purple_proxy_info_get_port:
* @info: The instance.
*
* Gets the port of the proxy.
*
* Returns: The port of the proxy.
*
* Since: 2.0
*/
PURPLE_AVAILABLE_IN_ALL
gint purple_proxy_info_get_port(PurpleProxyInfo *info);
/**
* purple_proxy_info_set_username:
* @info: The instance.
* @username: The new username.
*
* Sets the username of the proxy.
*
* Since: 2.0
*/
PURPLE_AVAILABLE_IN_ALL
void purple_proxy_info_set_username(PurpleProxyInfo *info, const gchar *username);
/**
* purple_proxy_info_get_username:
* @info: The instance.
*
* Gets the username of the proxy.
*
* Returns: The username of the proxy.
*
* Since: 2.0
*/
PURPLE_AVAILABLE_IN_ALL
const gchar *purple_proxy_info_get_username(PurpleProxyInfo *info);
/**
* purple_proxy_info_set_password:
* @info: The instance.
* @password: The new password.
*
* Sets the password for the proxy.
*
* Since: 2.0
*/
PURPLE_AVAILABLE_IN_ALL
void purple_proxy_info_set_password(PurpleProxyInfo *info, const gchar *password);
/**
* purple_proxy_info_get_password:
* @info: The instance.
*
* Gets the password of the proxy.
*
* Returns: The password of the proxy.
*
* Since: 2.0
*/
PURPLE_AVAILABLE_IN_ALL
const gchar *purple_proxy_info_get_password(PurpleProxyInfo *info);
G_END_DECLS
#endif /* PURPLE_PROXY_INFO_H */