Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
dart_utils::ElfSnapshot Class Reference

#include <mapped_resource.h>

Public Member Functions

 ElfSnapshot ()
 
 ~ElfSnapshot ()
 
 ElfSnapshot (ElfSnapshot &&other)
 
ElfSnapshotoperator= (ElfSnapshot &&other)
 
bool Load (fdio_ns_t *namespc, const std::string &path)
 
bool Load (int dirfd, const std::string &path)
 
const uint8_t * VmData () const
 
const uint8_t * VmInstrs () const
 
const uint8_t * IsolateData () const
 
const uint8_t * IsolateInstrs () const
 

Detailed Description

Definition at line 15 of file mapped_resource.h.

Constructor & Destructor Documentation

◆ ElfSnapshot() [1/2]

dart_utils::ElfSnapshot::ElfSnapshot ( )
inline

Definition at line 17 of file mapped_resource.h.

17{}

◆ ~ElfSnapshot()

dart_utils::ElfSnapshot::~ElfSnapshot ( )

Definition at line 175 of file mapped_resource.cc.

175 {
176 dlclose(handle_);
177}

◆ ElfSnapshot() [2/2]

dart_utils::ElfSnapshot::ElfSnapshot ( ElfSnapshot &&  other)
inline

Definition at line 19 of file mapped_resource.h.

19 : handle_(other.handle_) {
20 other.handle_ = nullptr;
21 }

Member Function Documentation

◆ IsolateData()

const uint8_t * dart_utils::ElfSnapshot::IsolateData ( ) const
inline

Definition at line 32 of file mapped_resource.h.

32{ return isolate_data_; }

Referenced by dart_runner::CreateServiceIsolate().

◆ IsolateInstrs()

const uint8_t * dart_utils::ElfSnapshot::IsolateInstrs ( ) const
inline

Definition at line 33 of file mapped_resource.h.

33{ return isolate_instrs_; }

Referenced by dart_runner::CreateServiceIsolate().

◆ Load() [1/2]

bool dart_utils::ElfSnapshot::Load ( fdio_ns_t *  namespc,
const std::string &  path 
)

Definition at line 121 of file mapped_resource.cc.

121 {
122 int root_dir = -1;
123 if (namespc == nullptr) {
124 root_dir = AT_FDCWD;
125 } else {
126 root_dir = fdio_ns_opendir(namespc);
127 if (root_dir < 0) {
128 FML_LOG(ERROR) << "Failed to open namespace directory";
129 return false;
130 }
131 }
132 return Load(root_dir, path);
133}
bool Load(fdio_ns_t *namespc, const std::string &path)
#define FML_LOG(severity)
Definition logging.h:101

References FML_LOG, and Load().

Referenced by dart_runner::CreateServiceIsolate(), Load(), and Load().

◆ Load() [2/2]

bool dart_utils::ElfSnapshot::Load ( int  dirfd,
const std::string &  path 
)

Definition at line 135 of file mapped_resource.cc.

135 {
136 fml::UniqueFD fd(OpenFdExec(path, dirfd));
137 if (!fd.is_valid()) {
138 FML_LOG(ERROR) << "Failed to open VMO for " << path << " from dir.";
139 return false;
140 }
141 return Load(fd);
142}
static int OpenFdExec(const std::string &path, int dirfd)
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir path
Definition switch_defs.h:52

References FML_LOG, fml::UniqueObject< T, Traits >::is_valid(), Load(), and dart_utils::OpenFdExec().

◆ operator=()

ElfSnapshot & dart_utils::ElfSnapshot::operator= ( ElfSnapshot &&  other)
inline

Definition at line 22 of file mapped_resource.h.

22 {
23 std::swap(handle_, other.handle_);
24 return *this;
25 }

◆ VmData()

const uint8_t * dart_utils::ElfSnapshot::VmData ( ) const
inline

Definition at line 30 of file mapped_resource.h.

30{ return vm_data_; }

◆ VmInstrs()

const uint8_t * dart_utils::ElfSnapshot::VmInstrs ( ) const
inline

Definition at line 31 of file mapped_resource.h.

31{ return vm_instrs_; }

The documentation for this class was generated from the following files: