Flutter Engine
 
Loading...
Searching...
No Matches
handle_disposition.h
Go to the documentation of this file.
1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef FLUTTER_SHELL_PLATFORM_FUCHSIA_DART_PKG_ZIRCON_SDK_EXT_HANDLE_DISPOSITION_H_
6#define FLUTTER_SHELL_PLATFORM_FUCHSIA_DART_PKG_ZIRCON_SDK_EXT_HANDLE_DISPOSITION_H_
7
8#include <zircon/syscalls.h>
9
10#include <vector>
11
13#include "handle.h"
14#include "third_party/dart/runtime/include/dart_api.h"
17
18namespace zircon {
19namespace dart {
20/**
21 * HandleDisposition is the native peer of a Dart object (HandleDisposition
22 * in dart:zircon) that holds a Handle and additional properties.
23 */
24class HandleDisposition : public fml::RefCountedThreadSafe<HandleDisposition>,
26 DEFINE_WRAPPERTYPEINFO();
29
30 public:
31 static void RegisterNatives(tonic::DartLibraryNatives* natives);
32
35 zx_obj_type_t type,
36 zx_rights_t rights);
37
38 zx_handle_op_t operation() const { return operation_; }
39 fml::RefPtr<dart::Handle> handle() const { return handle_; }
40 zx_obj_type_t type() const { return type_; }
41 zx_rights_t rights() const { return rights_; }
42 zx_status_t result() const { return result_; }
43 void set_result(zx_status_t result) { result_ = result; }
44
45 private:
46 explicit HandleDisposition(zx_handle_op_t operation,
48 zx_obj_type_t type,
49 zx_rights_t rights,
50 zx_status_t result)
51 : operation_(operation),
52 handle_(handle),
53 type_(type),
54 rights_(rights),
55 result_(result) {}
56
57 void RetainDartWrappableReference() const override { AddRef(); }
58
59 void ReleaseDartWrappableReference() const override { Release(); }
60
61 const zx_handle_op_t operation_;
62 const fml::RefPtr<dart::Handle> handle_;
63 const zx_obj_type_t type_;
64 const zx_rights_t rights_;
65 zx_status_t result_;
66};
67
68} // namespace dart
69} // namespace zircon
70
71#endif // FLUTTER_SHELL_PLATFORM_FUCHSIA_DART_PKG_ZIRCON_SDK_EXT_HANDLE_DISPOSITION_H_
fml::RefPtr< dart::Handle > handle() const
void set_result(zx_status_t result)
static void RegisterNatives(tonic::DartLibraryNatives *natives)
it will be possible to load the file into Perfetto s trace viewer use test Running tests that layout and measure text will not yield consistent results across various platforms Enabling this option will make font resolution default to the Ahem test font on all disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via dart
#define FML_FRIEND_REF_COUNTED_THREAD_SAFE(T)
#define FML_FRIEND_MAKE_REF_COUNTED(T)
int_closure create