@@ -207,6 +207,56 @@ string WorkflowMachine::GetState()
207207}
208208
209209
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+
210260std::optional<bool > WorkflowMachine::QueryOverride (const string& activity)
211261{
212262 rapidjson::Document request (rapidjson::kObjectType );
0 commit comments