PHP 7.4.33
Preview: JSIndexedRAMBundle.h Size: 1.91 KB
/var/www/uibuilder.cmshelp.dk/httpdocs/node_modules/react-native/ReactCommon/cxxreact/JSIndexedRAMBundle.h
/*
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

#pragma once

#include <istream>
#include <memory>

#include <cxxreact/JSBigString.h>
#include <cxxreact/JSModulesUnbundle.h>

#ifndef RN_EXPORT
#define RN_EXPORT __attribute__((visibility("default")))
#endif

namespace facebook::react {

class RN_EXPORT JSIndexedRAMBundle : public JSModulesUnbundle {
 public:
  static std::function<std::unique_ptr<JSModulesUnbundle>(std::string)>
  buildFactory();

  // Throws std::runtime_error on failure.
  JSIndexedRAMBundle(const char* sourceURL);
  JSIndexedRAMBundle(std::unique_ptr<const JSBigString> script);

  // Throws std::runtime_error on failure.
  std::unique_ptr<const JSBigString> getStartupCode();
  // Throws std::runtime_error on failure.
  Module getModule(uint32_t moduleId) const override;

 private:
  struct ModuleData {
    uint32_t offset;
    uint32_t length;
  };
  static_assert(
      sizeof(ModuleData) == 8,
      "ModuleData must not have any padding and use sizes matching input files");

  struct ModuleTable {
    size_t numEntries;
    std::unique_ptr<ModuleData[]> data;
    ModuleTable() : numEntries(0){};
    ModuleTable(size_t entries)
        : numEntries(entries),
          data(std::unique_ptr<ModuleData[]>(new ModuleData[numEntries])){};
    size_t byteLength() const {
      return numEntries * sizeof(ModuleData);
    }
  };

  void init();
  std::string getModuleCode(const uint32_t id) const;
  void readBundle(char* buffer, const std::streamsize bytes) const;
  void readBundle(
      char* buffer,
      const std::streamsize bytes,
      const std::istream::pos_type position) const;

  mutable std::unique_ptr<std::istream> m_bundle;
  ModuleTable m_table;
  size_t m_baseOffset;
  std::unique_ptr<JSBigBufferString> m_startupCode;
};

} // namespace facebook::react

Directory Contents

Dirs: 1 × Files: 40
Name Size Perms Modified Actions
tests DIR
- drwxr-xr-x 2025-03-28 11:04:39
Edit Download
801 B lrw-r--r-- 2025-03-28 11:04:43
Edit Download
7.28 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
7.83 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
1.90 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
1.42 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
12.30 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
6.16 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
2.98 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
4.39 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
3.18 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
3.22 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
1018 B lrw-r--r-- 2025-03-28 11:04:39
Edit Download
1.75 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
1006 B lrw-r--r-- 2025-03-28 11:04:39
Edit Download
4.40 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
4.01 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
1.91 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
1.15 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
760 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
2.42 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
715 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
7.53 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
2.70 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
4.33 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
1.09 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
11.58 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
4.14 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
552 B lrw-r--r-- 2025-03-28 11:04:43
Edit Download
2.37 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
1.63 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
2.64 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
3.50 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
3.14 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
503 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
1.09 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
4.67 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
1.38 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
1.07 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
789 B lrw-r--r-- 2025-03-28 11:04:41
Edit Download
5.11 KB lrw-r--r-- 2025-03-28 11:04:41
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).