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#include "flutter/lib/ui/window/key_data_packet.h"
6
7#include <cstring>
8
9#include "flutter/fml/logging.h"
10
11namespace flutter {
12
13KeyDataPacket::KeyDataPacket(const KeyData& event, const char* character) {
14 size_t char_size = character == nullptr ? 0 : strlen(s: character);
15 uint64_t char_size_64 = char_size;
16 data_.resize(sz: sizeof(uint64_t) + sizeof(KeyData) + char_size);
17 memcpy(dest: CharacterSizeStart(), src: &char_size_64, n: sizeof(char_size));
18 memcpy(dest: KeyDataStart(), src: &event, n: sizeof(KeyData));
19 if (character != nullptr) {
20 memcpy(dest: CharacterStart(), src: character, n: char_size);
21 }
22}
23
24KeyDataPacket::~KeyDataPacket() = default;
25
26} // namespace flutter
27

source code of flutter_engine/flutter/lib/ui/window/key_data_packet.cc