yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
wasm_browser_storage.h
Go to the documentation of this file.
1#ifndef YAZE_APP_PLATFORM_WASM_BROWSER_STORAGE_H_
2#define YAZE_APP_PLATFORM_WASM_BROWSER_STORAGE_H_
3
4#ifdef __EMSCRIPTEN__
5
6#include <string>
7#include <vector>
8
9#include "absl/status/status.h"
10#include "absl/status/statusor.h"
11
12namespace yaze {
13namespace app {
14namespace platform {
15
23class WasmBrowserStorage {
24 public:
25 enum class StorageType { kSession, kLocal };
26
27 static absl::Status StoreApiKey(const std::string&, const std::string&,
29 return absl::UnimplementedError("Browser storage disabled for security");
30 }
31
32 static absl::StatusOr<std::string> RetrieveApiKey(
33 const std::string&, StorageType = StorageType::kSession) {
34 return absl::NotFoundError("Browser storage disabled");
35 }
36
37 static absl::Status ClearApiKey(const std::string&,
39 return absl::UnimplementedError("Browser storage disabled for security");
40 }
41
42 static bool HasApiKey(const std::string&,
44 return false;
45 }
46
47 static absl::Status StoreSecret(const std::string&, const std::string&,
49 return absl::UnimplementedError("Browser storage disabled for security");
50 }
51
52 static absl::StatusOr<std::string> RetrieveSecret(
53 const std::string&, StorageType = StorageType::kSession) {
54 return absl::NotFoundError("Browser storage disabled");
55 }
56
57 static absl::Status ClearSecret(const std::string&,
59 return absl::UnimplementedError("Browser storage disabled for security");
60 }
61
62 static std::vector<std::string> ListStoredApiKeys(
64 return {};
65 }
66
68 return absl::UnimplementedError("Browser storage disabled for security");
69 }
70
71 struct StorageQuota {
72 size_t used_bytes = 0;
73 size_t available_bytes = 0;
74 };
75
76 static bool IsStorageAvailable() { return false; }
77
78 static absl::StatusOr<StorageQuota> GetStorageQuota(
80 return absl::UnimplementedError("Browser storage disabled for security");
81 }
82};
83
84} // namespace platform
85} // namespace app
86} // namespace yaze
87
88#else // !__EMSCRIPTEN__
89
90// Stub for non-WASM builds
91#include <string>
92#include <vector>
93
94#include "absl/status/status.h"
95#include "absl/status/statusor.h"
96
97namespace yaze {
98namespace app {
99namespace platform {
100
106 public:
107 enum class StorageType { kSession, kLocal };
108
109 static absl::Status StoreApiKey(const std::string&, const std::string&,
111 return absl::UnimplementedError("Browser storage requires WASM build");
112 }
113
114 static absl::StatusOr<std::string> RetrieveApiKey(
115 const std::string&, StorageType = StorageType::kSession) {
116 return absl::NotFoundError("Browser storage requires WASM build");
117 }
118
119 static absl::Status ClearApiKey(const std::string&,
121 return absl::UnimplementedError("Browser storage requires WASM build");
122 }
123
124 static bool HasApiKey(const std::string&,
126 return false;
127 }
128
129 static absl::Status StoreSecret(const std::string&, const std::string&,
131 return absl::UnimplementedError("Browser storage requires WASM build");
132 }
133
134 static absl::StatusOr<std::string> RetrieveSecret(
135 const std::string&, StorageType = StorageType::kSession) {
136 return absl::NotFoundError("Browser storage requires WASM build");
137 }
138
139 static absl::Status ClearSecret(const std::string&,
141 return absl::UnimplementedError("Browser storage requires WASM build");
142 }
143
144 static std::vector<std::string> ListStoredApiKeys(
146 return {};
147 }
148
150 return absl::UnimplementedError("Browser storage requires WASM build");
151 }
152
154 size_t used_bytes = 0;
155 size_t available_bytes = 0;
156 };
157
158 static bool IsStorageAvailable() { return false; }
159
160 static absl::StatusOr<StorageQuota> GetStorageQuota(
162 return absl::UnimplementedError("Browser storage requires WASM build");
163 }
164};
165
166} // namespace platform
167} // namespace app
168} // namespace yaze
169
170#endif // __EMSCRIPTEN__
171
172#endif // YAZE_APP_PLATFORM_WASM_BROWSER_STORAGE_H_
static absl::Status StoreApiKey(const std::string &, const std::string &, StorageType=StorageType::kSession)
static std::vector< std::string > ListStoredApiKeys(StorageType=StorageType::kSession)
static bool HasApiKey(const std::string &, StorageType=StorageType::kSession)
static absl::Status ClearSecret(const std::string &, StorageType=StorageType::kSession)
static absl::StatusOr< StorageQuota > GetStorageQuota(StorageType=StorageType::kSession)
static absl::StatusOr< std::string > RetrieveSecret(const std::string &, StorageType=StorageType::kSession)
static absl::StatusOr< std::string > RetrieveApiKey(const std::string &, StorageType=StorageType::kSession)
static absl::Status ClearAllApiKeys(StorageType=StorageType::kSession)
static absl::Status StoreSecret(const std::string &, const std::string &, StorageType=StorageType::kSession)
static absl::Status ClearApiKey(const std::string &, StorageType=StorageType::kSession)