1#import <Foundation/Foundation.h>
2#import <RNReanimated/REAIOSErrorHandler.h>
3#import <React/RCTLog.h>
4
5namespace reanimated {
6
7REAIOSErrorHandler::REAIOSErrorHandler(std::shared_ptr<Scheduler> scheduler)
8{
9  this->scheduler = scheduler;
10  error = std::make_shared<ErrorWrapper>();
11}
12
13void REAIOSErrorHandler::raiseSpec()
14{
15  if (error->handled) {
16    return;
17  }
18  RCTLogError(@(error->message.c_str()));
19  this->error->handled = true;
20}
21
22std::shared_ptr<Scheduler> REAIOSErrorHandler::getScheduler()
23{
24  return this->scheduler;
25}
26
27std::shared_ptr<ErrorWrapper> REAIOSErrorHandler::getError()
28{
29  return this->error;
30}
31
32void REAIOSErrorHandler::setError(std::string message)
33{
34  if (error->handled) {
35    error->message = message;
36    error->handled = false;
37  }
38}
39
40} // namespace reanimated
41