00001
00009 #ifndef _JMS_EXCEPTION_H
00010 #define _JMS_EXCEPTION_H 1
00011
00012 #include <JmsCommon.h>
00013 #include <JmsTypes.h>
00014
00018 typedef struct JavaThrowable JavaThrowable;
00019
00023 typedef JavaThrowable JavaException;
00024
00028 typedef JavaException JmsException;
00029
00030 #define JMS_LOWEST_EXCEPTION_SUBCLASS 2
00031
00035 #define ISA_JAVA_EXCEPTION (1 << 0)
00036
00039 #define ISA_JMS_EXCEPTION (1 << 1)
00040
00043 #define ISA_JMS_ILLEGAL_STATE (1 << (JMS_LOWEST_EXCEPTION_SUBCLASS + 0))
00044
00047 #define ISA_JMS_INVALID_CLIENT_ID (1 << (JMS_LOWEST_EXCEPTION_SUBCLASS + 1))
00048
00051 #define ISA_JMS_INVALID_DESTINATION (1 << (JMS_LOWEST_EXCEPTION_SUBCLASS + 2))
00052
00055 #define ISA_JMS_INVALID_SELECTOR (1 << (JMS_LOWEST_EXCEPTION_SUBCLASS + 3))
00056
00059 #define ISA_JMS_JMS_SECURITY (1 << (JMS_LOWEST_EXCEPTION_SUBCLASS + 4))
00060
00063 #define ISA_JMS_MESSAGE_EOF (1 << (JMS_LOWEST_EXCEPTION_SUBCLASS + 5))
00064
00067 #define ISA_JMS_MESSAGE_FORMAT (1 << (JMS_LOWEST_EXCEPTION_SUBCLASS + 6))
00068
00071 #define ISA_JMS_MESSAGE_NOT_READABLE (1 << (JMS_LOWEST_EXCEPTION_SUBCLASS + 7))
00072
00075 #define ISA_JMS_MESSAGE_NOT_WRITEABLE (1 << (JMS_LOWEST_EXCEPTION_SUBCLASS + 8))
00076
00079 #define ISA_JMS_RESOURCE_ALLOCATION (1 << (JMS_LOWEST_EXCEPTION_SUBCLASS + 9))
00080
00083 #define ISA_JMS_TRANSACTION_IN_PROGRESS (1 << (JMS_LOWEST_EXCEPTION_SUBCLASS + 10))
00084
00087 #define ISA_JMS_TRANSACTION_ROLLED_BACK (1 << (JMS_LOWEST_EXCEPTION_SUBCLASS + 11))
00088
00092 #define JMS_PEEK_ONLY (JMS64I) 0x0000000000000001
00093
00094 #ifdef __cplusplus
00095 extern "C" {
00096 #endif
00097
00118 extern int JMSENTRY JmsGetLastException(
00119 JavaThrowable **exception,
00120 int *type,
00121 JMS64I flags
00122 );
00123
00138 extern int JMSENTRY JmsThrowableGetMessage(
00139 JavaThrowable * exception,
00140 JmsString * message,
00141 JMS64I flags
00142 );
00143
00158 extern int JMSENTRY JmsExceptionGetErrorCode(
00159 JmsException *exception,
00160 JmsString *errorCode,
00161 JMS64I flags
00162 );
00163
00178 extern int JMSENTRY JmsExceptionGetLinkedException(
00179 JmsException *exception,
00180 JavaException **linkedException,
00181 JMS64I flags
00182 );
00183
00197 extern int JMSENTRY JmsExceptionDestroy(
00198 JavaThrowable *exception,
00199 JMS64I flags
00200 );
00201
00202 #ifdef __cplusplus
00203 }
00204 #endif
00205 #endif
00206