@@ -207,6 +207,56 @@ string WorkflowMachine::GetState()
207
207
}
208
208
209
209
210
+ std::pair<bool , bool > WorkflowMachine::GetLogStatus ()
211
+ {
212
+ rapidjson::Document request (rapidjson::kObjectType );
213
+ rapidjson::Document::AllocatorType& allocator = request.GetAllocator ();
214
+ request.AddMember (" command" , " status" , allocator);
215
+ rapidjson::StringBuffer buffer;
216
+ rapidjson::Writer<rapidjson::StringBuffer> writer (buffer);
217
+ request.Accept (writer);
218
+
219
+ string jsonResult;
220
+ if (m_function)
221
+ jsonResult = BNPostWorkflowRequestForFunction (m_function->GetObject (), buffer.GetString ());
222
+ else
223
+ jsonResult = BNPostWorkflowRequestForBinaryView (m_view->GetObject (), buffer.GetString ());
224
+
225
+ rapidjson::Document response (rapidjson::kObjectType );
226
+ response.Parse (jsonResult.c_str ());
227
+ if (response.HasMember (" logStatus" ) && response[" logStatus" ].HasMember (" local" ) && response[" logStatus" ].HasMember (" global" ))
228
+ return {response[" logStatus" ][" local" ].GetBool (), response[" logStatus" ][" global" ].GetBool ()};
229
+
230
+ return {false , false };
231
+ }
232
+
233
+
234
+ bool WorkflowMachine::SetLogEnabled (bool enable, bool global)
235
+ {
236
+ rapidjson::Document request (rapidjson::kObjectType );
237
+ rapidjson::Document::AllocatorType& allocator = request.GetAllocator ();
238
+ request.AddMember (" command" , " log" , allocator);
239
+ request.AddMember (" enable" , enable, allocator);
240
+ request.AddMember (" global" , global, allocator);
241
+ rapidjson::StringBuffer buffer;
242
+ rapidjson::Writer<rapidjson::StringBuffer> writer (buffer);
243
+ request.Accept (writer);
244
+
245
+ string jsonResult;
246
+ if (m_function)
247
+ jsonResult = BNPostWorkflowRequestForFunction (m_function->GetObject (), buffer.GetString ());
248
+ else
249
+ jsonResult = BNPostWorkflowRequestForBinaryView (m_view->GetObject (), buffer.GetString ());
250
+
251
+ rapidjson::Document response (rapidjson::kObjectType );
252
+ response.Parse (jsonResult.c_str ());
253
+ if (response.HasMember (" commandStatus" ) && response[" commandStatus" ].HasMember (" accepted" ))
254
+ return response[" commandStatus" ][" accepted" ].GetBool ();
255
+
256
+ return false ;
257
+ }
258
+
259
+
210
260
std::optional<bool > WorkflowMachine::QueryOverride (const string& activity)
211
261
{
212
262
rapidjson::Document request (rapidjson::kObjectType );
0 commit comments