newsmemory-ios-sdk/Frameworks/RNReanimated.xcframework/ios-arm64/Headers/Mapper.h

52 lines
1.2 KiB
C
Raw Normal View History

2024-10-29 07:36:43 +00:00
#pragma once
#include <jsi/jsi.h>
#include <stdio.h>
#include <memory>
#include <vector>
#include "NativeReanimatedModule.h"
#include "ShareableValue.h"
using namespace facebook;
namespace reanimated {
class MapperRegistry;
struct ViewDescriptor {
int tag;
jsi::Value name;
};
class Mapper : public std::enable_shared_from_this<Mapper> {
friend MapperRegistry;
private:
unsigned long id;
NativeReanimatedModule *module;
std::shared_ptr<jsi::Function> mapper;
std::vector<std::shared_ptr<MutableValue>> inputs;
std::vector<std::shared_ptr<MutableValue>> outputs;
bool dirty = true;
std::shared_ptr<jsi::Function> userUpdater;
UpdaterFunction *updateProps;
int optimalizationLvl = 0;
std::shared_ptr<ShareableValue> viewDescriptors;
public:
Mapper(
NativeReanimatedModule *module,
unsigned long id,
std::shared_ptr<jsi::Function> mapper,
std::vector<std::shared_ptr<MutableValue>> inputs,
std::vector<std::shared_ptr<MutableValue>> outputs);
void execute(jsi::Runtime &rt);
void enableFastMode(
const int optimalizationLvl,
const std::shared_ptr<ShareableValue> &updater,
const std::shared_ptr<ShareableValue> &jsViewDescriptors);
virtual ~Mapper();
};
} // namespace reanimated