18
18
19
19
#include " AndroidLogDownloadFromNode.h"
20
20
21
- #include < controller/CHIPDeviceControllerFactory.h>
22
- #include < protocols/bdx/BdxUri.h>
23
21
#include < app-common/zap-generated/cluster-enums.h>
24
22
#include < app-common/zap-generated/cluster-objects.h>
23
+ #include < controller/CHIPDeviceControllerFactory.h>
24
+ #include < protocols/bdx/BdxUri.h>
25
25
26
26
using namespace chip ::app::Clusters;
27
27
@@ -30,8 +30,9 @@ namespace Controller {
30
30
31
31
// Max Length is below 8
32
32
CharSpan toIntentCharSpan (DiagnosticLogs::IntentEnum intent)
33
- {
34
- switch (intent) {
33
+ {
34
+ switch (intent)
35
+ {
35
36
case DiagnosticLogs::IntentEnum::kEndUserSupport :
36
37
return CharSpan::fromCharString (" EndUser" );
37
38
case DiagnosticLogs::IntentEnum::kNetworkDiag :
@@ -43,16 +44,17 @@ CharSpan toIntentCharSpan(DiagnosticLogs::IntentEnum intent)
43
44
}
44
45
}
45
46
46
- AndroidLogDownloadFromNode::AndroidLogDownloadFromNode (chip::Controller::DeviceController * controller, NodeId remoteNodeId, DiagnosticLogs::IntentEnum intent, uint16_t timeout, jobject jCallbackObject)
47
- : mController (controller), mOnDeviceConnectedCallback (&OnDeviceConnectedFn, this ),
48
- mOnDeviceConnectionFailureCallback (&OnDeviceConnectionFailureFn, this ),
49
- mOnBdxTransferCallback(&OnBdxTransferCallback, this ),
50
- mOnBdxTransferSuccessCallback(&OnBdxTransferSuccessCallback, this ),
47
+ AndroidLogDownloadFromNode::AndroidLogDownloadFromNode (chip::Controller::DeviceController * controller, NodeId remoteNodeId,
48
+ DiagnosticLogs::IntentEnum intent, uint16_t timeout,
49
+ jobject jCallbackObject) :
50
+ mController (controller),
51
+ mOnDeviceConnectedCallback (&OnDeviceConnectedFn, this ), mOnDeviceConnectionFailureCallback (&OnDeviceConnectionFailureFn, this ),
52
+ mOnBdxTransferCallback (&OnBdxTransferCallback, this ), mOnBdxTransferSuccessCallback (&OnBdxTransferSuccessCallback, this ),
51
53
mOnBdxTransferFailureCallback (&OnBdxTransferFailureCallback, this )
52
54
{
53
55
mRemoteNodeId = remoteNodeId;
54
- mIntent = intent;
55
- mTimeout = timeout;
56
+ mIntent = intent;
57
+ mTimeout = timeout;
56
58
57
59
if (mJavaCallback .Init (jCallbackObject) != CHIP_NO_ERROR)
58
60
{
@@ -61,9 +63,11 @@ AndroidLogDownloadFromNode::AndroidLogDownloadFromNode(chip::Controller::DeviceC
61
63
}
62
64
}
63
65
64
- CHIP_ERROR AndroidLogDownloadFromNode::LogDownloadFromNode (DeviceController * controller, NodeId remoteNodeId, DiagnosticLogs::IntentEnum intent, uint16_t timeout, jobject jcallback)
66
+ CHIP_ERROR AndroidLogDownloadFromNode::LogDownloadFromNode (DeviceController * controller, NodeId remoteNodeId,
67
+ DiagnosticLogs::IntentEnum intent, uint16_t timeout, jobject jcallback)
65
68
{
66
- VerifyOrReturnValue (controller != nullptr && jcallback != nullptr && remoteNodeId != kUndefinedNodeId , CHIP_ERROR_INVALID_ARGUMENT);
69
+ VerifyOrReturnValue (controller != nullptr && jcallback != nullptr && remoteNodeId != kUndefinedNodeId ,
70
+ CHIP_ERROR_INVALID_ARGUMENT);
67
71
68
72
auto * logDownload = new AndroidLogDownloadFromNode (controller, remoteNodeId, intent, timeout, jcallback);
69
73
VerifyOrReturnValue (logDownload != nullptr , CHIP_ERROR_NO_MEMORY);
@@ -84,10 +88,11 @@ CHIP_ERROR AndroidLogDownloadFromNode::GetConnectedDevice()
84
88
return mController ->GetConnectedDevice (mRemoteNodeId , &mOnDeviceConnectedCallback , &mOnDeviceConnectionFailureCallback );
85
89
}
86
90
87
- CHIP_ERROR AndroidLogDownloadFromNode::SendRetrieveLogsRequest (Messaging::ExchangeManager & exchangeMgr, const SessionHandle & sessionHandle)
91
+ CHIP_ERROR AndroidLogDownloadFromNode::SendRetrieveLogsRequest (Messaging::ExchangeManager & exchangeMgr,
92
+ const SessionHandle & sessionHandle)
88
93
{
89
94
DiagnosticLogs::Commands::RetrieveLogsRequest::Type request;
90
- request.intent = mIntent ;
95
+ request.intent = mIntent ;
91
96
request.requestedProtocol = DiagnosticLogs::TransferProtocolEnum::kBdx ;
92
97
93
98
CHIP_ERROR err = chip::bdx::MakeURI (mRemoteNodeId , toIntentCharSpan (mIntent ), mFileDesignator );
@@ -97,7 +102,9 @@ CHIP_ERROR AndroidLogDownloadFromNode::SendRetrieveLogsRequest(Messaging::Exchan
97
102
FinishLogDownloadFromNode (err);
98
103
}
99
104
100
- mBdxReceiver = new BdxDiagnosticLogsReceiver (&mOnBdxTransferCallback , &mOnBdxTransferSuccessCallback , &mOnBdxTransferFailureCallback , mController ->GetFabricIndex (), mRemoteNodeId , mFileDesignator );
105
+ mBdxReceiver =
106
+ new BdxDiagnosticLogsReceiver (&mOnBdxTransferCallback , &mOnBdxTransferSuccessCallback , &mOnBdxTransferFailureCallback ,
107
+ mController ->GetFabricIndex (), mRemoteNodeId , mFileDesignator );
101
108
VerifyOrReturnValue (mBdxReceiver != nullptr , CHIP_ERROR_NO_MEMORY);
102
109
103
110
auto systemState = DeviceControllerFactory::GetInstance ().GetSystemState ();
@@ -107,15 +114,15 @@ CHIP_ERROR AndroidLogDownloadFromNode::SendRetrieveLogsRequest(Messaging::Exchan
107
114
{
108
115
mBdxReceiver ->StartBDXTransferTimeout (mTimeout );
109
116
}
110
-
117
+
111
118
request.transferFileDesignator = MakeOptional (mFileDesignator );
112
119
ClusterBase cluster (exchangeMgr, sessionHandle, 0 );
113
120
114
121
return cluster.InvokeCommand (request, this , OnResponseRetrieveLogs, OnCommandFailure);
115
122
}
116
123
117
124
void AndroidLogDownloadFromNode::OnDeviceConnectedFn (void * context, Messaging::ExchangeManager & exchangeMgr,
118
- const SessionHandle & sessionHandle)
125
+ const SessionHandle & sessionHandle)
119
126
{
120
127
CHIP_ERROR err = CHIP_NO_ERROR;
121
128
auto * self = static_cast <AndroidLogDownloadFromNode *>(context);
@@ -139,7 +146,8 @@ void AndroidLogDownloadFromNode::OnDeviceConnectionFailureFn(void * context, con
139
146
self->FinishLogDownloadFromNode (err);
140
147
}
141
148
142
- void AndroidLogDownloadFromNode::OnResponseRetrieveLogs (void * context, const DiagnosticLogs::Commands::RetrieveLogsResponse::DecodableType & data)
149
+ void AndroidLogDownloadFromNode::OnResponseRetrieveLogs (void * context,
150
+ const DiagnosticLogs::Commands::RetrieveLogsResponse::DecodableType & data)
143
151
{
144
152
auto * self = static_cast <AndroidLogDownloadFromNode *>(context);
145
153
VerifyOrReturn (self != nullptr ,
@@ -189,7 +197,7 @@ void AndroidLogDownloadFromNode::OnCommandFailure(void * context, CHIP_ERROR err
189
197
void AndroidLogDownloadFromNode::FinishLogDownloadFromNode (CHIP_ERROR err)
190
198
{
191
199
CHIP_ERROR jniErr = CHIP_NO_ERROR;
192
- JNIEnv * env = JniReferences::GetInstance ().GetEnvForCurrentThread ();
200
+ JNIEnv * env = JniReferences::GetInstance ().GetEnvForCurrentThread ();
193
201
JniLocalReferenceScope scope (env);
194
202
195
203
if (err == CHIP_NO_ERROR)
@@ -201,7 +209,8 @@ void AndroidLogDownloadFromNode::FinishLogDownloadFromNode(CHIP_ERROR err)
201
209
202
210
VerifyOrReturn (jniErr == CHIP_NO_ERROR, ChipLogError (Controller, " Could not find onSuccess method" ));
203
211
204
- env->CallVoidMethod (mJavaCallback .ObjectRef (), onSuccessMethod, static_cast <jint>(mController ->GetFabricIndex ()), static_cast <jlong>(mRemoteNodeId ));
212
+ env->CallVoidMethod (mJavaCallback .ObjectRef (), onSuccessMethod, static_cast <jint>(mController ->GetFabricIndex ()),
213
+ static_cast <jlong>(mRemoteNodeId ));
205
214
return ;
206
215
}
207
216
@@ -222,18 +231,21 @@ void AndroidLogDownloadFromNode::FinishLogDownloadFromNode(CHIP_ERROR err)
222
231
jniErr = JniReferences::GetInstance ().FindMethod (env, mJavaCallback .ObjectRef (), " onError" , " (IJJ)V" , &onErrorMethod);
223
232
VerifyOrReturn (jniErr == CHIP_NO_ERROR, ChipLogError (Controller, " Could not find onError method" ));
224
233
225
- env->CallVoidMethod (mJavaCallback .ObjectRef (), onErrorMethod, static_cast <jint>(mController ->GetFabricIndex ()), static_cast <jlong>(mRemoteNodeId ), static_cast <jlong>(err.AsInteger ()));
234
+ env->CallVoidMethod (mJavaCallback .ObjectRef (), onErrorMethod, static_cast <jint>(mController ->GetFabricIndex ()),
235
+ static_cast <jlong>(mRemoteNodeId ), static_cast <jlong>(err.AsInteger ()));
226
236
}
227
237
228
- void AndroidLogDownloadFromNode::OnBdxTransferCallback (void * context, FabricIndex fabricIndex, NodeId remoteNodeId, const chip::ByteSpan & data, CHIP_ERROR *errInfoOnFailure)
238
+ void AndroidLogDownloadFromNode::OnBdxTransferCallback (void * context, FabricIndex fabricIndex, NodeId remoteNodeId,
239
+ const chip::ByteSpan & data, CHIP_ERROR * errInfoOnFailure)
229
240
{
230
241
auto * self = static_cast <AndroidLogDownloadFromNode *>(context);
231
242
VerifyOrReturn (self != nullptr , ChipLogProgress (Controller, " Send command failure callback with null context. Ignoring" ));
232
243
233
244
self->OnTransferCallback (fabricIndex, remoteNodeId, data, errInfoOnFailure);
234
245
}
235
246
236
- void AndroidLogDownloadFromNode::OnTransferCallback (FabricIndex fabricIndex, NodeId remoteNodeId, const chip::ByteSpan & data, CHIP_ERROR *errInfoOnFailure)
247
+ void AndroidLogDownloadFromNode::OnTransferCallback (FabricIndex fabricIndex, NodeId remoteNodeId, const chip::ByteSpan & data,
248
+ CHIP_ERROR * errInfoOnFailure)
237
249
{
238
250
VerifyOrReturn (mJavaCallback .HasValidObjectRef (), ChipLogError (Controller, " mJavaCallback is invalid" ));
239
251
@@ -242,17 +254,17 @@ void AndroidLogDownloadFromNode::OnTransferCallback(FabricIndex fabricIndex, Nod
242
254
243
255
jmethodID onTransferDataMethod;
244
256
// Java method signature : boolean onTransferData(int fabricIndex, long nodeId, byte[] data)
245
- *errInfoOnFailure = JniReferences::GetInstance (). FindMethod (env, mJavaCallback . ObjectRef (), " onTransferData " ,
246
- " (IJ[B)Z" , &onTransferDataMethod);
257
+ *errInfoOnFailure =
258
+ JniReferences::GetInstance (). FindMethod (env, mJavaCallback . ObjectRef (), " onTransferData " , " (IJ[B)Z" , &onTransferDataMethod);
247
259
VerifyOrReturn (*errInfoOnFailure == CHIP_NO_ERROR, ChipLogError (Controller, " Could not find onTransferData method" ));
248
260
chip::ByteArray dataByteArray (env, data);
249
261
250
- jboolean ret = env->CallBooleanMethod (mJavaCallback .ObjectRef (), onTransferDataMethod, static_cast <jint>(fabricIndex), static_cast <jlong>(remoteNodeId), dataByteArray.jniValue ());
262
+ jboolean ret = env->CallBooleanMethod (mJavaCallback .ObjectRef (), onTransferDataMethod, static_cast <jint>(fabricIndex),
263
+ static_cast <jlong>(remoteNodeId), dataByteArray.jniValue ());
251
264
252
265
if (ret != JNI_TRUE)
253
266
{
254
- ChipLogError (Controller, " Transfer will be rejected." )
255
- *errInfoOnFailure = CHIP_ERROR_INTERNAL;
267
+ ChipLogError (Controller, " Transfer will be rejected." ) * errInfoOnFailure = CHIP_ERROR_INTERNAL;
256
268
}
257
269
}
258
270
@@ -266,7 +278,8 @@ void AndroidLogDownloadFromNode::OnBdxTransferSuccessCallback(void * context, Fa
266
278
self->FinishLogDownloadFromNode (CHIP_NO_ERROR);
267
279
}
268
280
269
- void AndroidLogDownloadFromNode::OnBdxTransferFailureCallback (void * context, FabricIndex fabricIndex, NodeId remoteNodeId, CHIP_ERROR status)
281
+ void AndroidLogDownloadFromNode::OnBdxTransferFailureCallback (void * context, FabricIndex fabricIndex, NodeId remoteNodeId,
282
+ CHIP_ERROR status)
270
283
{
271
284
ChipLogProgress (Controller, " OnBdxTransferFailureCallback: %" CHIP_ERROR_FORMAT, status.Format ());
272
285
0 commit comments