1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifdef UNSAFE_BUFFERS_BUILD
// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
#pragma allow_unsafe_libc_calls
#endif
// This file implements the ABI of libtranslatekit only for testing. It is not
// used in production.
// This file's CreateTranslateKit() method returns 0 to test the behavior of the
// TranslateKit creation failure on the client side.
#include <cstddef>
#include <cstdint>
#include <cstring>
#include "base/compiler_specific.h"
#include "base/notreached.h"
#include "build/build_config.h"
#include "components/services/on_device_translation/translate_kit_structs.h"
#if BUILDFLAG(IS_WIN)
#define TRANSLATE_KIT_EXPORT __declspec(dllexport)
#else
#define TRANSLATE_KIT_EXPORT __attribute__((visibility("default")))
#endif
extern "C" {
TRANSLATE_KIT_EXPORT bool GetTranslateKitVersion(TranslateKitVersion* version) {
CHECK(version);
CHECK(version->buffer);
CHECK(version->buffer_size);
// Always return a maximum version.
constexpr char kMaxVersion[] = "9999.99.99.99";
strncpy(version->buffer, kMaxVersion, sizeof(kMaxVersion));
version->buffer_size = sizeof(kMaxVersion) - 1;
return true;
}
TRANSLATE_KIT_EXPORT void InitializeStorageBackend(
FileExistsFn file_exists,
OpenForReadOnlyMemoryMapFn open_for_read_only_memory_map,
DeleteReadOnlyMemoryRegionFn delete_read_only_memory_region,
ReadOnlyMemoryRegionDataFn read_only_memory_region_data,
ReadOnlyMemoryRegionLengthFn read_only_memory_region_length,
std::uintptr_t user_data) {}
TRANSLATE_KIT_EXPORT uintptr_t CreateTranslateKit() {
return 0;
}
TRANSLATE_KIT_EXPORT void DeleteTranslateKit(uintptr_t kit_ptr) {
NOTREACHED();
}
TRANSLATE_KIT_EXPORT bool TranslateKitSetLanguagePackages(
uintptr_t kit_ptr,
TranslateKitSetLanguagePackagesArgs args) {
NOTREACHED();
}
TRANSLATE_KIT_EXPORT uintptr_t
TranslateKitCreateTranslator(uintptr_t kit_ptr,
TranslateKitLanguage source_lang,
TranslateKitLanguage target_lang) {
NOTREACHED();
}
TRANSLATE_KIT_EXPORT void DeleteTranslator(uintptr_t translator_ptr) {
NOTREACHED();
}
typedef void (*TranslateCallbackFn)(TranslateKitOutputText, std::uintptr_t);
DISABLE_CFI_DLSYM TRANSLATE_KIT_EXPORT bool TranslatorTranslate(
uintptr_t translator_ptr,
TranslateKitInputText input,
TranslateCallbackFn callback,
std::uintptr_t user_data) {
NOTREACHED();
}
} // extern C
|