|
1 /* |
|
2 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: ?Description |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 #include "logger.h" |
|
20 #include "javajniutils.h" |
|
21 #include "pushexception.h" |
|
22 #include "pusherrorcodes.h" |
|
23 #include "javacommonutils.h" |
|
24 #include "mmsconnection.h" |
|
25 #include "com_nokia_mj_impl_mms_MMSConnectionImpl.h" |
|
26 |
|
27 using namespace java::wma; |
|
28 |
|
29 /* |
|
30 * Class: com_nokia_mj_impl_mms_MMSConnectionImpl |
|
31 * Method: _createPeer |
|
32 * Signature: (ZLjava/lang/String;[I)J |
|
33 */ |
|
34 JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_mms_MMSConnectionImpl__1createPeer |
|
35 (JNIEnv* aJni, jobject aPeer, jboolean aServerConnection, jstring aUri) |
|
36 { |
|
37 JELOG2(EWMA); |
|
38 MmsConnection* mmsConn = 0; |
|
39 std::wstring Uri = java::util::JniUtils::jstringToWstring(aJni,aUri); |
|
40 try |
|
41 { |
|
42 mmsConn = new MmsConnection(aServerConnection, Uri); |
|
43 mmsConn->initialize(*aJni, aPeer); |
|
44 return reinterpret_cast<jint>(mmsConn); |
|
45 } |
|
46 catch (PushException& ex) |
|
47 { |
|
48 ELOG(EWMA,"ERROR!!! CreateConnection() PushException was caught"); |
|
49 if (PUSH_CONNECTION_ALREADY_EXISTS == ex.mErrCode) |
|
50 { |
|
51 ELOG(EWMA,"MMS : PushConnection already Exists"); |
|
52 JniUtils::throwNewException(aJni, "java/io/IOException" , |
|
53 "Server Connection already exists"); |
|
54 } |
|
55 else if (COMMON_SRV_CONN_PLUGIN_ERROR == ex.mErrCode) |
|
56 { |
|
57 ELOG(EWMA,"MMS : Common pushConnection error"); |
|
58 JniUtils::throwNewException(aJni, "java/io/IOException" , |
|
59 "Opening server connection failed: " |
|
60 + JavaCommonUtils::intToString(ex.mErrCode)); |
|
61 } |
|
62 } |
|
63 catch (int error) |
|
64 { |
|
65 ELOG1(EWMA,"MMS : Caught an Exception --Value is:%d",error); |
|
66 JniUtils::throwNewException(aJni, "java/io/IOException" , |
|
67 "Opening connection failed: " + |
|
68 JavaCommonUtils::intToString(error)); |
|
69 } |
|
70 catch (std::bad_alloc &memoryAllocationException) |
|
71 { |
|
72 ELOG(EWMA,"MMS : Bad allocation exception"); |
|
73 JniUtils::throwNewException(aJni, "java/lang/OutOfMemoryError" , |
|
74 "Out of memory"); |
|
75 } |
|
76 if (mmsConn != 0) |
|
77 { |
|
78 mmsConn->close(*aJni, aPeer); |
|
79 delete mmsConn; |
|
80 } |
|
81 return 0; |
|
82 } |
|
83 |
|
84 /* |
|
85 * Class: com_nokia_mj_impl_mms_MMSConnectionImpl |
|
86 * Method: _send |
|
87 * Signature: ([BIILjava/lang/String;J)I |
|
88 */ |
|
89 JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_mms_MMSConnectionImpl__1send |
|
90 (JNIEnv* aEnv, jobject , jbyteArray bMsg, jint offset, jint msgLenght, |
|
91 jstring aAddress, jint aNativeHandle) |
|
92 { |
|
93 JELOG2(EWMA); |
|
94 jint status = NULL; |
|
95 MmsConnection* mmscSession =reinterpret_cast <MmsConnection*> |
|
96 (aNativeHandle); |
|
97 status = mmscSession->sendMMS(*aEnv, bMsg, offset, msgLenght, aAddress); |
|
98 return status; |
|
99 } |
|
100 |
|
101 /* |
|
102 * Class: com_nokia_mj_impl_mms_MMSConnectionImpl |
|
103 * Method: _openConnection |
|
104 * Signature: (J)V |
|
105 */ |
|
106 JNIEXPORT void JNICALL Java_com_nokia_mj_impl_mms_MMSConnectionImpl__1openConnection |
|
107 (JNIEnv* aEnv, jobject aPeer, jint aNativeHandle) |
|
108 { |
|
109 JELOG2(EWMA); |
|
110 MmsConnection* mmsConn = reinterpret_cast <MmsConnection *> |
|
111 (aNativeHandle); |
|
112 mmsConn->open(*aEnv,aPeer); |
|
113 } |
|
114 |
|
115 /* |
|
116 * Class: com_nokia_mj_impl_mms_MMSConnectionImpl |
|
117 * Method: _retrieveMessage |
|
118 * Signature: (J)[B |
|
119 */ |
|
120 JNIEXPORT jbyteArray JNICALL Java_com_nokia_mj_impl_mms_MMSConnectionImpl__1retrieveMessage |
|
121 (JNIEnv* aEnv, jobject , jint aNativeHandle) |
|
122 { |
|
123 JELOG2(EWMA); |
|
124 MmsConnection* mmsConn = reinterpret_cast <MmsConnection *> |
|
125 (aNativeHandle); |
|
126 return mmsConn->retrieveMMSMessage(*aEnv); |
|
127 } |
|
128 |
|
129 /* |
|
130 * Class: com_nokia_mj_impl_mms_MMSConnectionImpl |
|
131 * Method: _closeConnection |
|
132 * Signature: (J)V |
|
133 */ |
|
134 JNIEXPORT void JNICALL Java_com_nokia_mj_impl_mms_MMSConnectionImpl__1closeConnection |
|
135 (JNIEnv* aJni, jobject aPeer, jint aNativeHandle) |
|
136 { |
|
137 JELOG2(EWMA); |
|
138 MmsConnection* mmsConn = reinterpret_cast <MmsConnection *> |
|
139 (aNativeHandle); |
|
140 mmsConn->close(*aJni,aPeer); |
|
141 } |
|
142 |
|
143 /* |
|
144 * Class: com_nokia_mj_impl_mms_MMSConnectionImpl |
|
145 * Method: _dispose |
|
146 * Signature: (J)V |
|
147 */ |
|
148 JNIEXPORT void JNICALL Java_com_nokia_mj_impl_mms_MMSConnectionImpl__1dispose |
|
149 (JNIEnv* , jobject , jint aNativeHandle) |
|
150 { |
|
151 JELOG2(EWMA); |
|
152 MmsConnection* mmsConn = reinterpret_cast <MmsConnection *> |
|
153 (aNativeHandle); |
|
154 delete mmsConn; |
|
155 } |
|
156 |
|
157 /* |
|
158 * Class: com_nokia_mj_impl_mms_MMSConnectionImpl |
|
159 * Method: _checkError |
|
160 * Signature: (I)V |
|
161 */ |
|
162 JNIEXPORT void JNICALL Java_com_nokia_mj_impl_mms_MMSConnectionImpl__1checkError |
|
163 (JNIEnv *aJni, jobject , jint aError) |
|
164 { |
|
165 JELOG2(EWMA); |
|
166 #ifdef __SYMBIAN32__ |
|
167 if (aError == KErrCancel || aError == KErrTimedOut) |
|
168 { |
|
169 JniUtils::throwNewException(aJni, "java/io/InterruptedIOException" , |
|
170 "Sending message failed: " + |
|
171 JavaCommonUtils::intToString(aError)); |
|
172 } |
|
173 else |
|
174 { |
|
175 JniUtils::throwNewException(aJni, "java/io/IOException" , |
|
176 "Sending message failed: " + |
|
177 JavaCommonUtils::intToString(aError)); |
|
178 } |
|
179 #endif // __SYMBIAN32__ |
|
180 } |
|
181 |