comparison libpurple/protocols/myspace/persist.h @ 17286:58b4d103a5b8

Use symbolic constants for persist messages.
author Jeffrey Connelly <jaconnel@calpoly.edu>
date Sat, 02 Jun 2007 04:45:59 +0000
parents
children d353afe1aa12
comparison
equal deleted inserted replaced
17285:4f54e8c41086 17286:58b4d103a5b8
1 /* MySpaceIM Protocol Plugin, persist commands
2 *
3 * Copyright (C) 2007, Jeff Connelly <jeff2@homing.pidgin.im>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19
20 #ifndef _MYSPACE_PERSIST_H
21 #define _MYSPACE_PERSIST_H
22
23 /** Command codes */
24 #define MSIM_CMD_GET 1
25 #define MSIM_CMD_PUT 2
26 #define MSIM_CMD_DELETE 3
27
28 /** Command bit fields */
29 #define MSIM_CMD_BIT_CODE 255 /*< Bits specifying command code */
30 #define MSIM_CMD_BIT_REPLY 256 /**< 1=reply, 0=request */
31 #define MSIM_CMD_BIT_ACTION 512 /**< 1=action, 0=information */
32 #define MSIM_CMD_BIT_ERROR 1024 /**< 1=error, 0=normal */
33
34 /** Macros to read cmd bitfield. */
35 #define MSIM_CMD_GET_CODE(x) (x & MSIM_CMD_BIT_CODE)
36 #define MSIM_CMD_IS_REPLY(x) (x & MSIM_CMD_BIT_REPLY)
37 #define MSIM_CMD_IS_REQUEST(x) !(x & MSIM_CMD_BIT_REPLY)
38 #define MSIM_CMD_IS_ACTION(x) (x & MSIM_CMD_BIT_ACTION)
39 #define MSIM_CMD_IS_INFO(x) !(x & MSIM_CMD_BIT_ACTION)
40 #define MSIM_CMD_IS_ERROR(x) (x & MSIM_CMD_BIT_ERROR)
41 #define MSIM_CMD_IS_NORMAL(x) !(x & MSIM_CMD_BIT_ERROR)
42
43 /** Define a set of _DSN and _LID constants for a persistance request. */
44 #define MSIM_PERSIST_DSN_LID(name,dsn,lid) \
45 const int name##_DSN = dsn; \
46 const int name##_LID = lid;
47
48 /* Can't do this, errors:
49 * persist.h:51:3: error: '#' is not followed by a macro parameter
50 * In file included from myspace.c:37:
51 * persist.h:56: error: expected ')' before numeric constant
52 * So instead, I define const ints above.
53 #define MSIM_PERSIST_DSN_LID(name,dsn,lid) \
54 #define name##_DSN dsn \
55 #define name##_LID lid
56 #endif
57 */
58
59 /** Messages to Get information */
60 MSIM_PERSIST_DSN_LID(MG_LIST_ALL_CONTACTS, 0, 1)
61 MSIM_PERSIST_DSN_LID(MG_USER_INFO_BY_ID, 0, 2)
62 MSIM_PERSIST_DSN_LID(MG_IM_INFO_BY_ID, 1, 17)
63 MSIM_PERSIST_DSN_LID(MG_LIST_ALL_GROUPS, 2, 6)
64 MSIM_PERSIST_DSN_LID(MG_MYSPACE_INFO_BY_ID, 4, 3)
65 MSIM_PERSIST_DSN_LID(MG_YOUR_MYSPACE_INFO, 4, 5)
66 MSIM_PERSIST_DSN_LID(MG_MYSPACE_INFO_BY_STRING, 5, 7)
67 MSIM_PERSIST_DSN_LID(MG_CHECK_MAIL, 7, 18)
68 MSIM_PERSIST_DSN_LID(MG_WEB_CHALLENGE, 17, 26)
69 MSIM_PERSIST_DSN_LID(MG_USER_SONG, 21, 28)
70 MSIM_PERSIST_DSN_LID(MG_SERVER_INFO, 101, 20)
71
72 /** Messages to Change/send information */
73 MSIM_PERSIST_DSN_LID(MC_USER_PREFERENCES, 1, 10)
74 MSIM_PERSIST_DSN_LID(MC_CONTACT_INFO, 0, 9)
75 MSIM_PERSIST_DSN_LID(MC_INVITE, 16, 25)
76
77 /** Error codes */
78 #define MERR_PARSE 1
79 #define MERR_NOT_LOGGED_IN 2
80 #define MERR_ANOTHER_LOGIN 6
81 #define MERR_BAD_EMAIL 259
82 #define MERR_BAD_PASSWORD 260
83 #define MERR_BAD_UID_IN_PERSISTR 4352
84
85 #endif /* !_MYSPACE_PERSIST_H */