libpurple/connection.h

branch
soc.2013.gobjectification.plugins
changeset 37040
91119588bc3a
parent 37037
c391f5d677e4
parent 35397
31fa3a1aeff5
child 37054
79721d976ad0
--- a/libpurple/connection.h	Fri Jan 31 19:42:12 2014 +0530
+++ b/libpurple/connection.h	Fri Jan 31 20:07:33 2014 +0530
@@ -36,106 +36,129 @@
 
 #define PURPLE_TYPE_CONNECTION_ERROR_INFO  (purple_connection_error_info_get_type())
 
-/** @copydoc _PurpleConnection */
 typedef struct _PurpleConnection PurpleConnection;
-/** @copydoc _PurpleConnectionClass */
 typedef struct _PurpleConnectionClass PurpleConnectionClass;
 
 /**
+ * PurpleConnectionFlags:
+ * @PURPLE_CONNECTION_FLAG_HTML: Connection sends/receives in 'HTML'
+ * @PURPLE_CONNECTION_FLAG_NO_BGCOLOR: Connection does not send/receive
+ *                                     background colors
+ * @PURPLE_CONNECTION_FLAG_AUTO_RESP: Send auto responses when away
+ * @PURPLE_CONNECTION_FLAG_FORMATTING_WBFO: The text buffer must be formatted
+ *                                          as a whole
+ * @PURPLE_CONNECTION_FLAG_NO_NEWLINES: No new lines are allowed in outgoing
+ *                                      messages
+ * @PURPLE_CONNECTION_FLAG_NO_FONTSIZE: Connection does not send/receive font
+ *                                      sizes
+ * @PURPLE_CONNECTION_FLAG_NO_URLDESC: Connection does not support descriptions
+ *                                     with links
+ * @PURPLE_CONNECTION_FLAG_NO_IMAGES: Connection does not support sending of
+ *                                    images
+ * @PURPLE_CONNECTION_FLAG_ALLOW_CUSTOM_SMILEY: Connection supports sending
+ *                                              and receiving custom smileys
+ * @PURPLE_CONNECTION_FLAG_SUPPORT_MOODS: Connection supports setting moods
+ * @PURPLE_CONNECTION_FLAG_SUPPORT_MOOD_MESSAGES: Connection supports setting
+ *                                                a message on moods
+ *
  * Flags to change behavior of the client for a given connection.
  */
 typedef enum /*< flags >*/
 {
-	PURPLE_CONNECTION_FLAG_HTML       = 0x0001, /**< Connection sends/receives in 'HTML' */
-	PURPLE_CONNECTION_FLAG_NO_BGCOLOR = 0x0002, /**< Connection does not send/receive background colors */
-	PURPLE_CONNECTION_FLAG_AUTO_RESP  = 0x0004, /**< Send auto responses when away */
-	PURPLE_CONNECTION_FLAG_FORMATTING_WBFO = 0x0008, /**< The text buffer must be formatted as a whole */
-	PURPLE_CONNECTION_FLAG_NO_NEWLINES = 0x0010, /**< No new lines are allowed in outgoing messages */
-	PURPLE_CONNECTION_FLAG_NO_FONTSIZE = 0x0020, /**< Connection does not send/receive font sizes */
-	PURPLE_CONNECTION_FLAG_NO_URLDESC = 0x0040, /**< Connection does not support descriptions with links */
-	PURPLE_CONNECTION_FLAG_NO_IMAGES = 0x0080, /**< Connection does not support sending of images */
-	PURPLE_CONNECTION_FLAG_ALLOW_CUSTOM_SMILEY = 0x0100, /**< Connection supports sending and receiving custom smileys */
-	PURPLE_CONNECTION_FLAG_SUPPORT_MOODS = 0x0200, /**< Connection supports setting moods */
-	PURPLE_CONNECTION_FLAG_SUPPORT_MOOD_MESSAGES = 0x0400 /**< Connection supports setting a message on moods */
+	PURPLE_CONNECTION_FLAG_HTML       = 0x0001,
+	PURPLE_CONNECTION_FLAG_NO_BGCOLOR = 0x0002,
+	PURPLE_CONNECTION_FLAG_AUTO_RESP  = 0x0004,
+	PURPLE_CONNECTION_FLAG_FORMATTING_WBFO = 0x0008,
+	PURPLE_CONNECTION_FLAG_NO_NEWLINES = 0x0010,
+	PURPLE_CONNECTION_FLAG_NO_FONTSIZE = 0x0020,
+	PURPLE_CONNECTION_FLAG_NO_URLDESC = 0x0040,
+	PURPLE_CONNECTION_FLAG_NO_IMAGES = 0x0080,
+	PURPLE_CONNECTION_FLAG_ALLOW_CUSTOM_SMILEY = 0x0100,
+	PURPLE_CONNECTION_FLAG_SUPPORT_MOODS = 0x0200,
+	PURPLE_CONNECTION_FLAG_SUPPORT_MOOD_MESSAGES = 0x0400
 } PurpleConnectionFlags;
 
+/**
+ * PurpleConnectionState:
+ * @PURPLE_CONNECTION_DISCONNECTED: Disconnected.
+ * @PURPLE_CONNECTION_CONNECTED:    Connected.
+ * @PURPLE_CONNECTION_CONNECTING:   Connecting.
+ */
 typedef enum
 {
-	PURPLE_CONNECTION_DISCONNECTED = 0, /**< Disconnected. */
-	PURPLE_CONNECTION_CONNECTED,        /**< Connected.    */
-	PURPLE_CONNECTION_CONNECTING        /**< Connecting.   */
-
+	PURPLE_CONNECTION_DISCONNECTED = 0,
+	PURPLE_CONNECTION_CONNECTED,
+	PURPLE_CONNECTION_CONNECTING
 } PurpleConnectionState;
 
 /**
+ * PurpleConnectionError:
+ * @PURPLE_CONNECTION_ERROR_NETWORK_ERROR: There was an error sending or
+ *         receiving on the network socket, or there was some protocol error
+ *         (such as the server sending malformed data).
+ * @PURPLE_CONNECTION_ERROR_INVALID_USERNAME: The username supplied was not
+ *         valid.
+ * @PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED: The username, password or
+ *         some other credential was incorrect.  Use
+ *         #PURPLE_CONNECTION_ERROR_INVALID_USERNAME instead if the username
+ *         is known to be invalid.
+ * @PURPLE_CONNECTION_ERROR_AUTHENTICATION_IMPOSSIBLE: libpurple doesn't speak
+ *         any of the authentication methods the server offered.
+ * @PURPLE_CONNECTION_ERROR_NO_SSL_SUPPORT: libpurple was built without SSL
+ *         support, and the connection needs SSL.
+ * @PURPLE_CONNECTION_ERROR_ENCRYPTION_ERROR: There was an error negotiating
+ *         SSL on this connection, or the server does not support encryption
+ *         but an account option was set to require it.
+ * @PURPLE_CONNECTION_ERROR_NAME_IN_USE: Someone is already connected to the
+ *         server using the name you are trying to connect with.
+ * @PURPLE_CONNECTION_ERROR_INVALID_SETTINGS: The username/server/other
+ *         preference for the account isn't valid.  For instance, on IRC the
+ *         username cannot contain white space.  This reason should not be used
+ *         for incorrect passwords etc: use
+ *         #PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED for that.
+ *         @todo This reason really shouldn't be necessary.  Usernames and
+ *               other account preferences should be validated when the
+ *               account is created.
+ * @PURPLE_CONNECTION_ERROR_CERT_NOT_PROVIDED: The server did not provide a
+ *         SSL certificate.
+ * @PURPLE_CONNECTION_ERROR_CERT_UNTRUSTED: The server's SSL certificate could
+ *         not be trusted.
+ * @PURPLE_CONNECTION_ERROR_CERT_EXPIRED: The server's SSL certificate has
+ *         expired.
+ * @PURPLE_CONNECTION_ERROR_CERT_NOT_ACTIVATED: The server's SSL certificate is
+ *         not yet valid.
+ * @PURPLE_CONNECTION_ERROR_CERT_HOSTNAME_MISMATCH: The server's SSL
+ *         certificate did not match its hostname.
+ * @PURPLE_CONNECTION_ERROR_CERT_FINGERPRINT_MISMATCH: The server's SSL
+ *         certificate does not have the expected fingerprint.
+ * @PURPLE_CONNECTION_ERROR_CERT_SELF_SIGNED: The server's SSL certificate is
+ *         self-signed.
+ * @PURPLE_CONNECTION_ERROR_CERT_OTHER_ERROR: There was some other error
+ *         validating the server's SSL certificate.
+ * @PURPLE_CONNECTION_ERROR_OTHER_ERROR: Some other error occurred which fits
+ *         into none of the other categories.
+ *
  * Possible errors that can cause a connection to be closed.
  */
 typedef enum
 {
-	/** There was an error sending or receiving on the network socket, or
-	 *  there was some protocol error (such as the server sending malformed
-	 *  data).
-	 */
 	PURPLE_CONNECTION_ERROR_NETWORK_ERROR = 0,
-	/** The username supplied was not valid. */
 	PURPLE_CONNECTION_ERROR_INVALID_USERNAME = 1,
-	/** The username, password or some other credential was incorrect.  Use
-	 *  #PURPLE_CONNECTION_ERROR_INVALID_USERNAME instead if the username
-	 *  is known to be invalid.
-	 */
 	PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED = 2,
-	/** libpurple doesn't speak any of the authentication methods the
-	 *  server offered.
-	 */
 	PURPLE_CONNECTION_ERROR_AUTHENTICATION_IMPOSSIBLE = 3,
-	/** libpurple was built without SSL support, and the connection needs
-	 *  SSL.
-	 */
 	PURPLE_CONNECTION_ERROR_NO_SSL_SUPPORT = 4,
-	/** There was an error negotiating SSL on this connection, or the
-	 *  server does not support encryption but an account option was set to
-	 *  require it.
-	 */
 	PURPLE_CONNECTION_ERROR_ENCRYPTION_ERROR = 5,
-	/** Someone is already connected to the server using the name you are
-	 *  trying to connect with.
-	 */
 	PURPLE_CONNECTION_ERROR_NAME_IN_USE = 6,
-
-	/** The username/server/other preference for the account isn't valid.
-	 *  For instance, on IRC the username cannot contain white space.
-	 *  This reason should not be used for incorrect passwords etc: use
-	 *  #PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED for that.
-	 *
-	 *  @todo This reason really shouldn't be necessary.  Usernames and
-	 *        other account preferences should be validated when the
-	 *        account is created.
-	 */
 	PURPLE_CONNECTION_ERROR_INVALID_SETTINGS = 7,
-
-	/** The server did not provide a SSL certificate. */
 	PURPLE_CONNECTION_ERROR_CERT_NOT_PROVIDED = 8,
-	/** The server's SSL certificate could not be trusted. */
 	PURPLE_CONNECTION_ERROR_CERT_UNTRUSTED = 9,
-	/** The server's SSL certificate has expired. */
 	PURPLE_CONNECTION_ERROR_CERT_EXPIRED = 10,
-	/** The server's SSL certificate is not yet valid. */
 	PURPLE_CONNECTION_ERROR_CERT_NOT_ACTIVATED = 11,
-	/** The server's SSL certificate did not match its hostname. */
 	PURPLE_CONNECTION_ERROR_CERT_HOSTNAME_MISMATCH = 12,
-	/** The server's SSL certificate does not have the expected
-	 *  fingerprint.
-	 */
 	PURPLE_CONNECTION_ERROR_CERT_FINGERPRINT_MISMATCH = 13,
-	/** The server's SSL certificate is self-signed.  */
 	PURPLE_CONNECTION_ERROR_CERT_SELF_SIGNED = 14,
-	/** There was some other error validating the server's SSL certificate.
-	 */
 	PURPLE_CONNECTION_ERROR_CERT_OTHER_ERROR = 15,
 
-	/** Some other error occurred which fits into none of the other
-	 *  categories.
-	 */
 	/* purple_connection_error() in connection.c uses the fact that
 	 * this is the last member of the enum when sanity-checking; if other
 	 * reasons are added after it, the check must be updated.
@@ -143,12 +166,16 @@
 	PURPLE_CONNECTION_ERROR_OTHER_ERROR = 16
 } PurpleConnectionError;
 
-/** Holds the type of an error along with its description. */
+/**
+ * PurpleConnectionErrorInfo:
+ * @type: The type of error.
+ * @description: A localised, human-readable description of the error.
+ *
+ * Holds the type of an error along with its description.
+ */
 typedef struct
 {
-	/** The type of error. */
 	PurpleConnectionError type;
-	/** A localised, human-readable description of the error. */
 	char *description;
 } PurpleConnectionErrorInfo;
 
@@ -160,6 +187,8 @@
 #include "sslconn.h"
 
 /**
+ * PurpleConnectionUiOps:
+ *
  * Connection UI operations.  Used to notify the user of changes to
  * connections, such as being disconnected, and to respond to the
  * underlying network connection appearing and disappearing.  UIs should
@@ -237,6 +266,8 @@
 } PurpleConnectionUiOps;
 
 /**
+ * PurpleConnection:
+ *
  * Represents an active connection on an account.
  */
 struct _PurpleConnection
@@ -244,7 +275,11 @@
 	GObject gparent;
 };
 
-/** Base class for all #PurpleConnection's */
+/**
+ * PurpleConnectionClass:
+ *
+ * Base class for all #PurpleConnection's
+ */
 struct _PurpleConnectionClass {
 	GObjectClass parent_class;
 
@@ -263,70 +298,82 @@
 /*@{*/
 
 /**
+ * purple_connection_get_type:
+ *
  * Returns the GType for the Connection object.
  */
 GType purple_connection_get_type(void);
 
 /**
+ * purple_connection_error_info_get_type:
+ *
  * Returns the GType for the PurpleConnectionErrorInfo boxed structure.
  */
 GType purple_connection_error_info_get_type(void);
 
 /**
+ * purple_connection_set_state:
+ * @gc:    The connection.
+ * @state: The connection state.
+ *
  * Sets the connection state.  Protocols should call this and pass in
  * the state #PURPLE_CONNECTION_CONNECTED when the account is completely
  * signed on.  What does it mean to be completely signed on?  If
  * the core can call protocol's set_status, and it successfully changes
  * your status, then the account is online.
- *
- * @gc:    The connection.
- * @state: The connection state.
  */
 void purple_connection_set_state(PurpleConnection *gc, PurpleConnectionState state);
 
 /**
- * Sets the connection flags.
- *
+ * purple_connection_set_flags:
  * @gc:    The connection.
  * @flags: The flags.
+ *
+ * Sets the connection flags.
  */
 void purple_connection_set_flags(PurpleConnection *gc, PurpleConnectionFlags flags);
 
 /**
- * Sets the connection's displayed name.
- *
+ * purple_connection_set_display_name:
  * @gc:   The connection.
  * @name: The displayed name.
+ *
+ * Sets the connection's displayed name.
  */
 void purple_connection_set_display_name(PurpleConnection *gc, const char *name);
 
 /**
- * Sets the protocol data for a connection.
- *
+ * purple_connection_set_protocol_data:
  * @connection: The PurpleConnection.
  * @proto_data: The protocol data to set for the connection.
+ *
+ * Sets the protocol data for a connection.
  */
 void purple_connection_set_protocol_data(PurpleConnection *connection, void *proto_data);
 
 /**
- * Returns the connection state.
+ * purple_connection_get_state:
+ * @gc: The connection.
  *
- * @gc: The connection.
+ * Returns the connection state.
  *
  * Returns: The connection state.
  */
 PurpleConnectionState purple_connection_get_state(const PurpleConnection *gc);
 
 /**
- * Returns the connection flags.
+ * purple_connection_get_flags:
+ * @gc: The connection.
  *
- * @gc: The connection.
+ * Returns the connection flags.
  *
  * Returns: The connection flags.
  */
 PurpleConnectionFlags purple_connection_get_flags(const PurpleConnection *gc);
 
 /**
+ * PURPLE_CONNECTION_IS_CONNECTED:
+ *
  * Returns TRUE if the account is connected, otherwise returns FALSE.
  *
  * Returns: TRUE if the account is connected, otherwise returns FALSE.
@@ -335,85 +382,94 @@
 	(purple_connection_get_state(gc) == PURPLE_CONNECTION_CONNECTED)
 
 /**
- * Returns the connection's account.
+ * purple_connection_get_account:
+ * @gc: The connection.
  *
- * @gc: The connection.
+ * Returns the connection's account.
  *
  * Returns: The connection's account.
  */
 PurpleAccount *purple_connection_get_account(const PurpleConnection *gc);
 
 /**
- * Returns the protocol managing a connection.
+ * purple_connection_get_protocol:
+ * @gc: The connection.
  *
- * @gc: The connection.
+ * Returns the protocol managing a connection.
  *
  * Returns: The protocol.
  */
 PurpleProtocol *purple_connection_get_protocol(const PurpleConnection *gc);
 
 /**
- * Returns the connection's password.
+ * purple_connection_get_password:
+ * @gc: The connection.
  *
- * @gc: The connection.
+ * Returns the connection's password.
  *
  * Returns: The connection's password.
  */
 const char *purple_connection_get_password(const PurpleConnection *gc);
 
 /**
- * Returns a list of active chat conversations on a connection.
+ * purple_connection_get_active_chats:
+ * @gc: The connection.
  *
- * @gc: The connection.
+ * Returns a list of active chat conversations on a connection.
  *
  * Returns: The active chats on the connection.
  */
 GSList *purple_connection_get_active_chats(const PurpleConnection *gc);
 
 /**
- * Returns the connection's displayed name.
+ * purple_connection_get_display_name:
+ * @gc: The connection.
  *
- * @gc: The connection.
+ * Returns the connection's displayed name.
  *
  * Returns: The connection's displayed name.
  */
 const char *purple_connection_get_display_name(const PurpleConnection *gc);
 
 /**
- * Gets the protocol data from a connection.
+ * purple_connection_get_protocol_data:
+ * @gc: The PurpleConnection.
  *
- * @connection: The PurpleConnection.
+ * Gets the protocol data from a connection.
  *
  * Returns: The protocol data for the connection.
  */
 void *purple_connection_get_protocol_data(const PurpleConnection *gc);
 
 /**
- * Updates the connection progress.
- *
+ * purple_connection_update_progress:
  * @gc:    The connection.
  * @text:  Information on the current step.
  * @step:  The current step.
  * @count: The total number of steps.
+ *
+ * Updates the connection progress.
  */
 void purple_connection_update_progress(PurpleConnection *gc, const char *text,
 									 size_t step, size_t count);
 
 /**
- * Displays a connection-specific notice.
- *
+ * purple_connection_notice:
  * @gc:   The connection.
  * @text: The notice text.
+ *
+ * Displays a connection-specific notice.
  */
 void purple_connection_notice(PurpleConnection *gc, const char *text);
 
 /**
- * Closes a connection with an error and a human-readable description of the
- * error.
- *
+ * purple_connection_error:
  * @gc:          the connection which is closing.
  * @reason:      why the connection is closing.
  * @description: a localized description of the error (not %NULL ).
+ *
+ * Closes a connection with an error and a human-readable description of the
+ * error.
  */
 void
 purple_connection_error(PurpleConnection *gc,
@@ -421,11 +477,12 @@
                         const char *description);
 
 /**
+ * purple_connection_get_error_info:
+ * @gc: The connection.
+ *
  * Returns the #PurpleConnectionErrorInfo instance of a connection if an
  * error exists.
  *
- * @gc: The connection.
- *
  * Returns: The #PurpleConnectionErrorInfo instance of the connection if an
  *         error exists, %NULL otherwise.
  */
@@ -433,6 +490,8 @@
 purple_connection_get_error_info(const PurpleConnection *gc);
 
 /**
+ * purple_connection_ssl_error:
+ *
  * Closes a connection due to an SSL error; this is basically a shortcut to
  * turning the #PurpleSslErrorType into a #PurpleConnectionError and a
  * human-readable string and then calling purple_connection_error().
@@ -442,6 +501,8 @@
                              PurpleSslErrorType ssl_error);
 
 /**
+ * purple_connection_error_is_fatal:
+ *
  * Reports whether a disconnection reason is fatal (in which case the account
  * should probably not be automatically reconnected) or transient (so
  * auto-reconnection is a good idea).
@@ -461,10 +522,11 @@
 purple_connection_error_is_fatal (PurpleConnectionError reason);
 
 /**
+ * purple_connection_update_last_received:
+ * @gc:   The connection.
+ *
  * Indicate that a packet was received on the connection.
  * Set by the protocol to avoid sending unneeded keepalives.
- *
- * @gc:   The connection.
  */
 void purple_connection_update_last_received(PurpleConnection *gc);
 
@@ -476,11 +538,15 @@
 /*@{*/
 
 /**
+ * purple_connections_disconnect_all:
+ *
  * Disconnects from all connections.
  */
 void purple_connections_disconnect_all(void);
 
 /**
+ * purple_connections_get_all:
+ *
  * Returns a list of all active connections.  This does not
  * include connections that are in the process of connecting.
  *
@@ -489,6 +555,8 @@
 GList *purple_connections_get_all(void);
 
 /**
+ * purple_connections_get_connecting:
+ *
  * Returns a list of all connections in the process of connecting.
  *
  * Returns: (transfer none): A list of connecting connections.
@@ -496,18 +564,21 @@
 GList *purple_connections_get_connecting(void);
 
 /**
+ * PURPLE_CONNECTION_IS_VALID:
+ *
  * Checks if gc is still a valid pointer to a gc.
  *
  * Returns: %TRUE if gc is valid.
  *
- * @deprecated Do not use this.  Instead, cancel your asynchronous request
+ * Deprecated: Do not use this.  Instead, cancel your asynchronous request
  *             when the PurpleConnection is destroyed.
  */
 /*
  * TODO: Eventually this bad boy will be removed, because it is
  *       a gross fix for a crashy problem.
  */
-#define PURPLE_CONNECTION_IS_VALID(gc) (g_list_find(purple_connections_get_all(), (gc)) != NULL)
+#define PURPLE_CONNECTION_IS_VALID(gc) \
+	(g_list_find(purple_connections_get_all(), (gc)) != NULL)
 
 /*@}*/
 
@@ -517,13 +588,16 @@
 /*@{*/
 
 /**
- * Sets the UI operations structure to be used for connections.
+ * purple_connections_set_ui_ops:
+ * @ops: The UI operations structure.
  *
- * @ops: The UI operations structure.
+ * Sets the UI operations structure to be used for connections.
  */
 void purple_connections_set_ui_ops(PurpleConnectionUiOps *ops);
 
 /**
+ * purple_connections_get_ui_ops:
+ *
  * Returns the UI operations structure used for connections.
  *
  * Returns: The UI operations structure in use.
@@ -538,16 +612,22 @@
 /*@{*/
 
 /**
+ * purple_connections_init:
+ *
  * Initializes the connections subsystem.
  */
 void purple_connections_init(void);
 
 /**
+ * purple_connections_uninit:
+ *
  * Uninitializes the connections subsystem.
  */
 void purple_connections_uninit(void);
 
 /**
+ * purple_connections_get_handle:
+ *
  * Returns the handle to the connections subsystem.
  *
  * Returns: The connections subsystem handle.
@@ -559,4 +639,4 @@
 
 G_END_DECLS
 
-#endif /* _PURPLE_CONNECTION_H_ */
+#endif /* _PURPLE_CONNECTION_H_ */
\ No newline at end of file

mercurial