Mercurial > pidgin
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 */ |