Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Functions | Variables
io_natives.cc File Reference
#include "bin/io_natives.h"
#include <stdlib.h>
#include <string.h>
#include "bin/builtin.h"
#include "bin/dartutils.h"
#include "bin/socket_base.h"
#include "include/dart_api.h"
#include "platform/assert.h"

Go to the source code of this file.

Classes

struct  dart::bin::NativeEntries
 

Namespaces

namespace  dart
 
namespace  dart::bin
 

Macros

#define IO_NATIVE_LIST(V)
 

Functions

 dart::bin::IO_NATIVE_LIST (DECLARE_FUNCTION)
 
Dart_NativeFunction dart::bin::IONativeLookup (Dart_Handle name, int argument_count, bool *auto_setup_scope)
 
const uint8_t * dart::bin::IONativeSymbol (Dart_NativeFunction nf)
 

Variables

static const struct dart::bin::NativeEntries dart::bin::IOEntries [] = {IO_NATIVE_LIST(REGISTER_FUNCTION)}
 

Macro Definition Documentation

◆ IO_NATIVE_LIST

#define IO_NATIVE_LIST (   V)

Definition at line 22 of file io_natives.cc.

208 {
209 const char* name_;
210 Dart_NativeFunction function_;
211 int argument_count_;
213
215 int argument_count,
216 bool* auto_setup_scope) {
217 const char* function_name = nullptr;
218 Dart_Handle result = Dart_StringToCString(name, &function_name);
220 ASSERT(function_name != nullptr);
221 ASSERT(auto_setup_scope != nullptr);
222 *auto_setup_scope = true;
223 int num_entries = sizeof(IOEntries) / sizeof(struct NativeEntries);
224 for (int i = 0; i < num_entries; i++) {
225 const struct NativeEntries* entry = &(IOEntries[i]);
226 if ((strcmp(function_name, entry->name_) == 0) &&
227 (entry->argument_count_ == argument_count)) {
228 return reinterpret_cast<Dart_NativeFunction>(entry->function_);
229 }
230 }
231 return nullptr;
232}
233
234const uint8_t* IONativeSymbol(Dart_NativeFunction nf) {
235 int num_entries = sizeof(IOEntries) / sizeof(struct NativeEntries);
236 for (int i = 0; i < num_entries; i++) {
237 const struct NativeEntries* entry = &(IOEntries[i]);
238 if (reinterpret_cast<Dart_NativeFunction>(entry->function_) == nf) {
239 return reinterpret_cast<const uint8_t*>(entry->name_);
240 }
241 }
242 return nullptr;
243}
244
245} // namespace bin
246} // namespace dart
struct _Dart_Handle * Dart_Handle
Definition dart_api.h:258
DART_EXPORT Dart_Handle Dart_StringToCString(Dart_Handle str, const char **cstr)
void(* Dart_NativeFunction)(Dart_NativeArguments arguments)
Definition dart_api.h:3198
DART_EXPORT bool Dart_IsError(Dart_Handle handle)
#define ASSERT(E)
GAsyncResult * result
const char * name
Definition fuchsia.cc:50
#define REGISTER_FUNCTION(name, count)
Definition fuchsia.cc:41
int argument_count
Definition fuchsia.cc:52
#define IO_NATIVE_LIST(V)
Definition io_natives.cc:22
static const struct dart::bin::NativeEntries IOEntries[]
const uint8_t * IONativeSymbol(Dart_NativeFunction nf)
Dart_NativeFunction IONativeLookup(Dart_Handle name, int argument_count, bool *auto_setup_scope)
const char *const function_name