diff options
Diffstat (limited to 'kopete/protocols/groupwise/libgroupwise/gwerror.h')
-rw-r--r-- | kopete/protocols/groupwise/libgroupwise/gwerror.h | 241 |
1 files changed, 241 insertions, 0 deletions
diff --git a/kopete/protocols/groupwise/libgroupwise/gwerror.h b/kopete/protocols/groupwise/libgroupwise/gwerror.h new file mode 100644 index 00000000..5300f788 --- /dev/null +++ b/kopete/protocols/groupwise/libgroupwise/gwerror.h @@ -0,0 +1,241 @@ +/* + gwerror.h - Kopete Groupwise Protocol + + Copyright (c) 2004-2007 Novell, Inc http://www.novell.com/linux + + Kopete (c) 2002-2007 by the Kopete developers <[email protected]> + + ************************************************************************* + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + ************************************************************************* +*/ + +#ifndef GW_ERROR_H +#define GW_ERROR_H + +#include <qdatetime.h> +#include <qglobal.h> +#include <qmap.h> +#include <qstring.h> + +typedef Q_UINT16 NMERR_T; +#define GROUPWISE_DEBUG_GLOBAL 14190 +#define GROUPWISE_DEBUG_LIBGW 14191 +#define GROUPWISE_DEBUG_RAW 14192 + +#define BLANK_GUID "[00000000-00000000-00000000-0000-0000]" +#define CONF_GUID_END 27 + +//#define LIBGW_DEBUG 1 +#define LIBGW_USE_KDEBUG 1 + +namespace GroupWise +{ + enum Status { Unknown = 0, + Offline = 1, + Available = 2, + Busy = 3, + Away = 4, + AwayIdle = 5, + Invalid = 6 + }; + + enum Error { None = 0, + ErrorBase = 0x2000L, + BadParm, + TCPWrite, + TCPRead, + Protocol, + ServerRedirect, + ConferenceNotFound, + ConferenceNotInstantiated, + FolderExists + }; + + enum Event { InvalidRecipient = 101, + UndeliverableStatus = 102, + StatusChange = 103, + ContactAdd = 104, + ConferenceClosed = 105, + ConferenceJoined = 106, + ConferenceLeft = 107, + ReceiveMessage = 108, + ReceiveFile = 109, + UserTyping = 112, + UserNotTyping = 113, + UserDisconnect = 114, + ServerDisconnect = 115, + ConferenceRename = 116, + ConferenceInvite = 117, + ConferenceInviteNotify = 118, + ConferenceReject = 119, + ReceiveAutoReply = 121, + Start = InvalidRecipient, + /* Event codes >= 122 are new in GW7 protocol */ + ReceivedBroadcast = 122, + ReceivedSystemBroadcast = 123, + ConferenceAttribUpdate = 128, + ConferenceTopicChanged = 129, + ChatroomNameChanged = 130, + ConferenceRightsChanged = 131, + ConferenceRemoved = 132, /* you were kicked */ + ChatOwnerChanged = 133, + Stop = ChatOwnerChanged + + }; + + enum ConferenceFlags { Logging = 0x00000001, + Secure = 0x00000002, + Closed = 0x10000000 + }; + + QString errorCodeToString( int errorCode ); + + // helpful structs used to pass data between the client library and the application using it + class ConferenceGuid : public QString + { + public: + ConferenceGuid(); + ConferenceGuid( const QString & string ); + ~ConferenceGuid(); + }; + + bool operator==( const ConferenceGuid & g1, const ConferenceGuid & g2 ); + bool operator==( const QString & s, const ConferenceGuid & g ); + bool operator==( const ConferenceGuid & g, const QString & s ); + + struct ConferenceEvent + { + Event type; + ConferenceGuid guid; + QString user; + QDateTime timeStamp; + Q_UINT32 flags; + QString message; + }; + + struct FolderItem + { + uint id; + uint sequence; + uint parentId; + QString name; + }; + + struct ContactItem + { + uint id; + uint parentId; + uint sequence; + QString dn; + QString displayName; + }; + + struct ContactDetails + { + QString cn, + dn, + givenName, + surname, + fullName, + awayMessage, + authAttribute; + int status; + bool archive; + QMap< QString, QString > properties; + }; + + struct OutgoingMessage + { + ConferenceGuid guid; + QString message; + QString rtfMessage; + }; + + struct UserSearchQueryTerm + { + QString field; + QString argument; + int operation; + }; + + struct CustomStatus + { + GroupWise::Status status; + QString name; + QString autoReply; + }; +} + +// temporary typedef pending implementation + +// #define NMERR_BASE 0x2000L +// #define NM_OK 0L +// #define NMERR_BAD_PARM (NMERR_BASE + 0x0001) +// #define NMERR_TCP_WRITE (NMERR_BASE + 0x0002) +// #define NMERR_TCP_READ (NMERR_BASE + 0x0003) +// #define NMERR_PROTOCOL (NMERR_BASE + 0x0004) +// #define NMERR_SERVER_REDIRECT (NMERR_BASE + 0x0005) +// #define NMERR_CONFERENCE_NOT_FOUND (NMERR_BASE + 0x0006) +// #define NMERR_CONFERENCE_NOT_INSTANTIATED (NMERR_BASE + 0x0007) +// #define NMERR_FOLDER_EXISTS (NMERR_BASE + 0x0008) + +/* Errors that are returned from the server */ +#define NMERR_SERVER_BASE 0xD100L +#define NMERR_ACCESS_DENIED (NMERR_SERVER_BASE + 0x0006) +#define NMERR_NOT_SUPPORTED (NMERR_SERVER_BASE + 0x000A) +#define NMERR_PASSWORD_EXPIRED (NMERR_SERVER_BASE + 0x000B) +#define NMERR_PASSWORD_INVALID (NMERR_SERVER_BASE + 0x000C) +#define NMERR_USER_NOT_FOUND (NMERR_SERVER_BASE + 0x000D) +#define NMERR_ATTRIBUTE_NOT_FOUND (NMERR_SERVER_BASE + 0x000E) +#define NMERR_USER_DISABLED (NMERR_SERVER_BASE + 0x0010) +#define NMERR_DIRECTORY_FAILURE (NMERR_SERVER_BASE + 0x0011) +#define NMERR_HOST_NOT_FOUND (NMERR_SERVER_BASE + 0x0019) +#define NMERR_ADMIN_LOCKED (NMERR_SERVER_BASE + 0x001C) +#define NMERR_DUPLICATE_PARTICIPANT (NMERR_SERVER_BASE + 0x001F) +#define NMERR_SERVER_BUSY (NMERR_SERVER_BASE + 0x0023) +#define NMERR_OBJECT_NOT_FOUND (NMERR_SERVER_BASE + 0x0024) +#define NMERR_DIRECTORY_UPDATE (NMERR_SERVER_BASE + 0x0025) +#define NMERR_DUPLICATE_FOLDER (NMERR_SERVER_BASE + 0x0026) +#define NMERR_DUPLICATE_CONTACT (NMERR_SERVER_BASE + 0x0027) +#define NMERR_USER_NOT_ALLOWED (NMERR_SERVER_BASE + 0x0028) +#define NMERR_TOO_MANY_CONTACTS (NMERR_SERVER_BASE + 0x0029) +#define NMERR_CONFERENCE_NOT_FOUND_2 (NMERR_SERVER_BASE + 0x002B) +#define NMERR_TOO_MANY_FOLDERS (NMERR_SERVER_BASE + 0x002C) +#define NMERR_SERVER_PROTOCOL (NMERR_SERVER_BASE + 0x0030) +#define NMERR_CONVERSATION_INVITE (NMERR_SERVER_BASE + 0x0035) +#define NMERR_USER_BLOCKED (NMERR_SERVER_BASE + 0x0039) +#define NMERR_MASTER_ARCHIVE_MISSING (NMERR_SERVER_BASE + 0x003A) +#define NMERR_PASSWORD_EXPIRED_2 (NMERR_SERVER_BASE + 0x0042) +#define NMERR_CREDENTIALS_MISSING (NMERR_SERVER_BASE + 0x0046) +#define NMERR_AUTHENTICATION_FAILED (NMERR_SERVER_BASE + 0x0049) +#define NMERR_EVAL_CONNECTION_LIMIT (NMERR_SERVER_BASE + 0x004A) + +/* Error codes that are new in GW7 */ +#define MSGPRES_ERR_UNSUPPORTED_CLIENT_VERSION (NMERR_SERVER_BASE + 0x004B) // This version of the client is not supported. +#define MSGPRES_ERR_DUPLICATE_CHAT (NMERR_SERVER_BASE + 0x0051) // A duplicate chat was found. +#define MSGPRES_ERR_CHAT_NOT_FOUND (NMERR_SERVER_BASE + 0x0052) // The chat was not found. +#define MSGPRES_ERR_INVALID_NAME (NMERR_SERVER_BASE + 0x0053) // The chat name is not valid. +#define MSGPRES_ERR_CHAT_ACTIVE (NMERR_SERVER_BASE + 0x0054) // Cannot delete an active chat. +#define MSGPRES_ERR_INSUF_CONV_RIGHTS (NMERR_SERVER_BASE + 0x0055) // Insufficient conversation rights to perform an action. +#define MSGPRES_ERR_CHAT_BUSY (NMERR_SERVER_BASE + 0x0056) // Chat is busy; try again. +#define MSGPRES_ERR_REQUEST_TOO_SOON (NMERR_SERVER_BASE + 0x0057) // Tried a request too soon after another one; try again. +#define MSGPRES_INFO_NO_LIST_CHANGE (NMERR_SERVER_BASE + 0x0058) // The chat list has not changed since the last search. +#define MSGPRES_ERR_CHAT_NOT_ACTIVE (NMERR_SERVER_BASE + 0x0059) // The chat subsystem is not active! +#define MSGPRES_ERR_INVALID_CHAT_UPDATE (NMERR_SERVER_BASE + 0x005A) // The chat update request is invalid. +#define MSGPRES_ERR_DIRECTORY_MISMATCH (NMERR_SERVER_BASE + 0x005B) // Write failed due to directory mismatch. +#define MSGPRES_ERR_RECIPIENT_TOO_OLD (NMERR_SERVER_BASE + 0x005C) // The recipient's client version is too old. +#define MSGPRES_ERR_CHAT_NO_LONGER_VALID (NMERR_SERVER_BASE + 0x005D) // The chat has been removed from the server. + +/* protocol version capabilities */ +#define CMSGPRES_GW_6_5 2 +#define CMSGPRES_SUPPORTS_NO_DETAILS_ON_LOGIN 3 +#define CMSGPRES_SUPPORTS_BROADCAST 4 +#define CMSGPRES_SUPPORTS_CHAT 5 + +#endif |