+++ /dev/null
-/*
-
- silcnotify.h
-
- Author: Pekka Riikonen <priikone@silcnet.org>
-
- Copyright (C) 1997 - 2006 Pekka Riikonen
-
- This program 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; version 2 of the License.
-
- This program 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.
-
-*/
-
-/****h* silccore/SILC Notify Interface
- *
- * DESCRIPTION
- *
- * Implementation of the Notify Payload. Notify Payload is used usually
- * by servers to send different kind of important notify messages to other
- * servers and to clients.
- *
- ***/
-
-#ifndef SILCNOTIFY_H
-#define SILCNOTIFY_H
-
-/****s* silccore/SilcNotifyAPI/SilcNotifyPayload
- *
- * NAME
- *
- * typedef struct SilcNotifyPayloadStruct *SilcNotifyPayload;
- *
- * DESCRIPTION
- *
- * This context is the actual Notify Payload and is allocated
- * by silc_notify_payload_parse and given as argument usually to
- * all silc_notify_payload_* functions. It is freed by the
- * silc_notify_payload_free function.
- *
- ***/
-typedef struct SilcNotifyPayloadStruct *SilcNotifyPayload;
-
-/****d* silccore/SilcNotifyAPI/SilcNotifyType
- *
- * NAME
- *
- * typedef SilcUInt16 SilcNotifyType;
- *
- * DESCRIPTION
- *
- * The notify type definition and all of the notify types.
- *
- * SOURCE
- */
-typedef SilcUInt16 SilcNotifyType;
-
-/* SILC notify types. Server may send these notify types to client to
- notify of some action. */
-#define SILC_NOTIFY_TYPE_NONE 0 /* no specific type */
-#define SILC_NOTIFY_TYPE_INVITE 1 /* invites/invite list change */
-#define SILC_NOTIFY_TYPE_JOIN 2 /* "has joined channel" */
-#define SILC_NOTIFY_TYPE_LEAVE 3 /* "has left channel" */
-#define SILC_NOTIFY_TYPE_SIGNOFF 4 /* "signoff" */
-#define SILC_NOTIFY_TYPE_TOPIC_SET 5 /* "topic has been changed" */
-#define SILC_NOTIFY_TYPE_NICK_CHANGE 6 /* "has changed nickname" */
-#define SILC_NOTIFY_TYPE_CMODE_CHANGE 7 /* "has changed channel mode" */
-#define SILC_NOTIFY_TYPE_CUMODE_CHANGE 8 /* "has change mode" */
-#define SILC_NOTIFY_TYPE_MOTD 9 /* message of the day */
-#define SILC_NOTIFY_TYPE_CHANNEL_CHANGE 10 /* Channel's ID has changed */
-#define SILC_NOTIFY_TYPE_SERVER_SIGNOFF 11 /* Server quitting SILC */
-#define SILC_NOTIFY_TYPE_KICKED 12 /* Kicked from channel */
-#define SILC_NOTIFY_TYPE_KILLED 13 /* Killed from the network */
-#define SILC_NOTIFY_TYPE_UMODE_CHANGE 14 /* user mode was changed */
-#define SILC_NOTIFY_TYPE_BAN 15 /* ban list change */
-#define SILC_NOTIFY_TYPE_ERROR 16 /* error notify */
-#define SILC_NOTIFY_TYPE_WATCH 17 /* watch notify */
-/***/
-
-/* Prototypes */
-
-/****f* silccore/SilcNotifyAPI/silc_notify_payload_parse
- *
- * SYNOPSIS
- *
- * SilcNotifyPayload
- * silc_notify_payload_parse(const unsigned char *payload,
- * SilcUInt32 payload_len);
- *
- * DESCRIPTION
- *
- * Parse notify payload buffer and return data into payload structure.
- * The `buffer' is the raw payload data.
- *
- ***/
-SilcNotifyPayload silc_notify_payload_parse(const unsigned char *payload,
- SilcUInt32 payload_len);
-
-/****f* silccore/SilcNotifyAPI/silc_notify_payload_encode
- *
- * SYNOPSIS
- *
- * SilcBuffer silc_notify_payload_encode(SilcNotifyType type,
- * SilcUInt32 argc,
- * va_list ap);
- *
- * DESCRIPTION
- *
- * Encode notify payload with variable argument list. If `argc' is > 0
- * argument payloads will be associated to the notify payload. Variable
- * arguments must be {unsigned char *, SilcUInt32 (len)}.
- *
- ***/
-SilcBuffer silc_notify_payload_encode(SilcNotifyType type, SilcUInt32 argc,
- va_list ap);
-
-/****f* silccore/SilcNotifyAPI/silc_notify_payload_encode_args
- *
- * SYNOPSIS
- *
- * SilcBuffer silc_notify_payload_encode_args(SilcNotifyType type,
- * SilcUInt32 argc,
- * SilcBuffer args);
- *
- * DESCRIPTION
- *
- * Same as silc_notify_payload_encode but takes arguments from the `args'
- * encoded Argument Payload buffer.
- *
- ***/
-SilcBuffer silc_notify_payload_encode_args(SilcNotifyType type,
- SilcUInt32 argc,
- SilcBuffer args);
-
-/****f* silccore/SilcNotifyAPI/silc_notify_payload_free
- *
- * SYNOPSIS
- *
- * void silc_notify_payload_free(SilcNotifyPayload payload);
- *
- * DESCRIPTION
- *
- * Frees the Notify Payload and all data in it.
- *
- ***/
-void silc_notify_payload_free(SilcNotifyPayload payload);
-
-/****f* silccore/SilcNotifyAPI/silc_notify_get_type
- *
- * SYNOPSIS
- *
- * SilcNotifyType silc_notify_get_type(SilcNotifyPayload payload);
- *
- * DESCRIPTION
- *
- * Return the notify type from the payload.
- *
- ***/
-SilcNotifyType silc_notify_get_type(SilcNotifyPayload payload);
-
-/****f* silccore/SilcNotifyAPI/silc_notify_get_arg_num
- *
- * SYNOPSIS
- *
- * SilcUInt32 silc_notify_get_arg_num(SilcNotifyPayload payload);
- *
- * DESCRIPTION
- *
- * Return the number of the arguments associated with the Notify Payload.
- *
- ***/
-SilcUInt32 silc_notify_get_arg_num(SilcNotifyPayload payload);
-
-/****f* silccore/SilcNotifyAPI/silc_notify_get_args
- *
- * SYNOPSIS
- *
- * SilcArgumentPayload silc_notify_get_args(SilcNotifyPayload payload);
- *
- * DESCRIPTION
- *
- * Return the Argument Payload containing the arguments from the
- * Notify Payload. The caller must not free it.
- *
- ***/
-SilcArgumentPayload silc_notify_get_args(SilcNotifyPayload payload);
-
-#endif