Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Types | Static Public Member Functions | Static Public Attributes | List of all members
tonic::DartConverter< TypedList< kTypeName, ElemType > > Struct Template Reference

#include <typed_list.h>

Public Types

using NativeType = TypedList< kTypeName, ElemType >
 
using FfiType = Dart_Handle
 

Static Public Member Functions

static void SetReturnValue (Dart_NativeArguments args, NativeType val)
 
static NativeType FromArguments (Dart_NativeArguments args, int index, Dart_Handle &exception)
 
static Dart_Handle ToDart (const ElemType *buffer, unsigned int length)
 
static NativeType FromFfi (FfiType val)
 
static FfiType ToFfi (NativeType val)
 
static const char * GetFfiRepresentation ()
 
static const char * GetDartRepresentation ()
 
static bool AllowedInLeafCall ()
 

Static Public Attributes

static constexpr const char * kFfiRepresentation = "Handle"
 
static constexpr const char * kDartRepresentation = "Object"
 
static constexpr bool kAllowedInLeafCall = false
 

Detailed Description

template<Dart_TypedData_Type kTypeName, typename ElemType>
struct tonic::DartConverter< TypedList< kTypeName, ElemType > >

Definition at line 53 of file typed_list.h.

Member Typedef Documentation

◆ FfiType

template<Dart_TypedData_Type kTypeName, typename ElemType >
using tonic::DartConverter< TypedList< kTypeName, ElemType > >::FfiType = Dart_Handle

Definition at line 55 of file typed_list.h.

◆ NativeType

template<Dart_TypedData_Type kTypeName, typename ElemType >
using tonic::DartConverter< TypedList< kTypeName, ElemType > >::NativeType = TypedList<kTypeName, ElemType>

Definition at line 54 of file typed_list.h.

Member Function Documentation

◆ AllowedInLeafCall()

template<Dart_TypedData_Type kTypeName, typename ElemType >
static bool tonic::DartConverter< TypedList< kTypeName, ElemType > >::AllowedInLeafCall ( )
inlinestatic

Definition at line 74 of file typed_list.h.

◆ FromArguments()

template<Dart_TypedData_Type kTypeName, typename ElemType >
TypedList< kTypeName, ElemType > tonic::DartConverter< TypedList< kTypeName, ElemType > >::FromArguments ( Dart_NativeArguments  args,
int  index,
Dart_Handle exception 
)
static

Definition at line 59 of file typed_list.cc.

62 {
65 return TypedList<kTypeName, ElemType>(list);
66}
struct _Dart_Handle * Dart_Handle
Definition dart_api.h:258
DART_EXPORT Dart_Handle Dart_GetNativeArgument(Dart_NativeArguments args, int index)
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
bool CheckAndHandleError(Dart_Handle handle)
Definition dart_error.cc:33
#define TONIC_DCHECK
Definition macros.h:32

◆ FromFfi()

template<Dart_TypedData_Type kTypeName, typename ElemType >
static NativeType tonic::DartConverter< TypedList< kTypeName, ElemType > >::FromFfi ( FfiType  val)
inlinestatic

Definition at line 66 of file typed_list.h.

66{ return NativeType(val); }

◆ GetDartRepresentation()

template<Dart_TypedData_Type kTypeName, typename ElemType >
static const char * tonic::DartConverter< TypedList< kTypeName, ElemType > >::GetDartRepresentation ( )
inlinestatic

Definition at line 73 of file typed_list.h.

73{ return kDartRepresentation; }

◆ GetFfiRepresentation()

template<Dart_TypedData_Type kTypeName, typename ElemType >
static const char * tonic::DartConverter< TypedList< kTypeName, ElemType > >::GetFfiRepresentation ( )
inlinestatic

Definition at line 72 of file typed_list.h.

72{ return kFfiRepresentation; }

◆ SetReturnValue()

template<Dart_TypedData_Type kTypeName, typename ElemType >
void tonic::DartConverter< TypedList< kTypeName, ElemType > >::SetReturnValue ( Dart_NativeArguments  args,
NativeType  val 
)
static

Definition at line 69 of file typed_list.cc.

71 {
72 Dart_Handle result = val.dart_handle();
73 val.Release(); // Must release acquired typed data before calling Dart API.
75}
DART_EXPORT void Dart_SetReturnValue(Dart_NativeArguments args, Dart_Handle retval)
GAsyncResult * result

◆ ToDart()

template<Dart_TypedData_Type kTypeName, typename ElemType >
Dart_Handle tonic::DartConverter< TypedList< kTypeName, ElemType > >::ToDart ( const ElemType *  buffer,
unsigned int  length 
)
static

Definition at line 78 of file typed_list.cc.

80 {
81 const intptr_t buffer_length = static_cast<intptr_t>(length);
82 Dart_Handle array = Dart_NewTypedData(kTypeName, buffer_length);
84 {
86 void* data = nullptr;
87 intptr_t data_length = 0;
88 Dart_TypedDataAcquireData(array, &type, &data, &data_length);
89 TONIC_CHECK(type == kTypeName);
90 TONIC_CHECK(data);
91 TONIC_CHECK(data_length == buffer_length);
92 std::memmove(data, buffer, data_length * sizeof(ElemType));
94 }
95 return array;
96}
DART_EXPORT Dart_Handle Dart_TypedDataReleaseData(Dart_Handle object)
DART_EXPORT Dart_Handle Dart_TypedDataAcquireData(Dart_Handle object, Dart_TypedData_Type *type, void **data, intptr_t *len)
Dart_TypedData_Type
Definition dart_api.h:2603
DART_EXPORT Dart_Handle Dart_NewTypedData(Dart_TypedData_Type type, intptr_t length)
static const uint8_t buffer[]
size_t length
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot data
Definition switches.h:41
#define TONIC_CHECK(condition)
Definition macros.h:23

◆ ToFfi()

template<Dart_TypedData_Type kTypeName, typename ElemType >
static FfiType tonic::DartConverter< TypedList< kTypeName, ElemType > >::ToFfi ( NativeType  val)
inlinestatic

Definition at line 67 of file typed_list.h.

67 {
68 Dart_Handle handle = val.dart_handle();
69 val.Release();
70 return handle;
71 }

Member Data Documentation

◆ kAllowedInLeafCall

template<Dart_TypedData_Type kTypeName, typename ElemType >
constexpr bool tonic::DartConverter< TypedList< kTypeName, ElemType > >::kAllowedInLeafCall = false
staticconstexpr

Definition at line 58 of file typed_list.h.

◆ kDartRepresentation

template<Dart_TypedData_Type kTypeName, typename ElemType >
constexpr const char* tonic::DartConverter< TypedList< kTypeName, ElemType > >::kDartRepresentation = "Object"
staticconstexpr

Definition at line 57 of file typed_list.h.

◆ kFfiRepresentation

template<Dart_TypedData_Type kTypeName, typename ElemType >
constexpr const char* tonic::DartConverter< TypedList< kTypeName, ElemType > >::kFfiRepresentation = "Handle"
staticconstexpr

Definition at line 56 of file typed_list.h.


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