Skip to content

Commit 7ef23e5

Browse files
committed
fix: migrate to new Nitro promises
1 parent efddb7e commit 7ef23e5

File tree

7 files changed

+32
-191
lines changed

7 files changed

+32
-191
lines changed

package/cpp/ThreadPool.cpp

Lines changed: 0 additions & 91 deletions
This file was deleted.

package/cpp/ThreadPool.hpp

Lines changed: 0 additions & 50 deletions
This file was deleted.

package/cpp/specs/HybridNativeQueryResult.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ namespace margelo::nitro::rnnitrosqlite {
55
std::optional<double> HybridNativeQueryResult::getInsertId() {
66
return this->_insertId;
77
}
8+
89
double HybridNativeQueryResult::getRowsAffected() {
910
return this->_rowsAffected;
1011
}

package/cpp/specs/HybridNativeQueryResult.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,11 @@ class HybridNativeQueryResult : public HybridNativeQueryResultSpec {
2727
public:
2828
// Properties
2929
std::optional<double> getInsertId() override;
30+
3031
double getRowsAffected() override;
32+
3133
SQLiteQueryResults getResults() override;
34+
3235
std::optional<SQLiteQueryTableMetadata> getMetadata() override;
3336
};
3437

package/cpp/specs/HybridNitroSQLite.cpp

Lines changed: 17 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#include "HybridNitroSQLite.hpp"
22
#include "HybridNativeQueryResult.hpp"
3-
#include "ThreadPool.hpp"
43
#include "NitroSQLiteException.hpp"
54
#include "logs.hpp"
65
#include "macros.hpp"
@@ -14,8 +13,6 @@
1413

1514
namespace margelo::nitro::rnnitrosqlite {
1615

17-
auto pool = std::make_shared<margelo::rnnitrosqlite::ThreadPool>();
18-
1916
const std::string getDocPath(const std::optional<std::string>& location) {
2017
std::string tempDocPath = std::string(HybridNitroSQLite::docPath);
2118
if (location) {
@@ -61,23 +58,16 @@ ExecuteQueryResult HybridNitroSQLite::execute(const std::string& dbName, const s
6158
return std::make_shared<HybridNativeQueryResult>(result.insertId, result.rowsAffected, *result.results, *result.metadata);
6259
};
6360

64-
std::future<ExecuteQueryResult> HybridNitroSQLite::executeAsync(const std::string& dbName, const std::string& query,
65-
const std::optional<SQLiteQueryParams>& params) {
66-
auto promise = std::make_shared<std::promise<ExecuteQueryResult>>();
67-
auto future = promise->get_future();
68-
69-
auto task = [this, promise, dbName, query, params]() {
61+
std::shared_ptr<Promise<std::shared_ptr<HybridNativeQueryResultSpec>>> HybridNitroSQLite::executeAsync(const std::string& dbName, const std::string& query,
62+
const std::optional<SQLiteQueryParams>& params) {
63+
return Promise<std::shared_ptr<HybridNativeQueryResultSpec>>::async([=, this]() -> std::shared_ptr<HybridNativeQueryResultSpec> {
7064
try {
7165
auto result = execute(dbName, query, params);
72-
promise->set_value(result);
66+
return result;
7367
} catch (...) {
74-
promise->set_exception(std::current_exception());
68+
throw std::current_exception();
7569
}
76-
};
77-
78-
pool->queueWork(std::move(task));
79-
80-
return future;
70+
});
8171
};
8272

8373
BatchQueryResult HybridNitroSQLite::executeBatch(const std::string& dbName, const std::vector<BatchQueryCommand>& batchParams) {
@@ -87,46 +77,32 @@ BatchQueryResult HybridNitroSQLite::executeBatch(const std::string& dbName, cons
8777
return BatchQueryResult(result.rowsAffected);
8878
};
8979

90-
std::future<BatchQueryResult> HybridNitroSQLite::executeBatchAsync(const std::string& dbName,
91-
const std::vector<BatchQueryCommand>& batchParams) {
92-
auto promise = std::make_shared<std::promise<BatchQueryResult>>();
93-
auto future = promise->get_future();
94-
95-
auto task = [this, promise, dbName, batchParams]() {
80+
std::shared_ptr<Promise<BatchQueryResult>> HybridNitroSQLite::executeBatchAsync(const std::string& dbName,
81+
const std::vector<BatchQueryCommand>& batchParams) {
82+
return Promise<BatchQueryResult>::async([=, this]() -> BatchQueryResult {
9683
try {
9784
auto result = executeBatch(dbName, batchParams);
98-
promise->set_value(result);
85+
return result;
9986
} catch (...) {
100-
promise->set_exception(std::current_exception());
87+
throw std::current_exception();
10188
}
102-
};
103-
104-
pool->queueWork(std::move(task));
105-
106-
return future;
89+
});
10790
};
10891

10992
FileLoadResult HybridNitroSQLite::loadFile(const std::string& dbName, const std::string& location) {
11093
const auto result = importSqlFile(dbName, location);
11194
return FileLoadResult(result.commands, result.rowsAffected);
11295
};
11396

114-
std::future<FileLoadResult> HybridNitroSQLite::loadFileAsync(const std::string& dbName, const std::string& location) {
115-
auto promise = std::make_shared<std::promise<FileLoadResult>>();
116-
auto future = promise->get_future();
117-
118-
auto task = [this, promise, dbName, location]() {
97+
std::shared_ptr<Promise<FileLoadResult>> HybridNitroSQLite::loadFileAsync(const std::string& dbName, const std::string& location) {
98+
return Promise<FileLoadResult>::async([=, this]() -> FileLoadResult {
11999
try {
120100
auto result = loadFile(dbName, location);
121-
promise->set_value(result);
101+
return result;
122102
} catch (...) {
123-
promise->set_exception(std::current_exception());
103+
throw std::current_exception();
124104
}
125-
};
126-
127-
pool->queueWork(std::move(task));
128-
129-
return future;
105+
});
130106
};
131107

132108
} // namespace margelo::nitro::rnnitrosqlite

package/cpp/specs/HybridNitroSQLite.hpp

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,25 @@ class HybridNitroSQLite : public HybridNitroSQLiteSpec {
1818
public:
1919
// Methods
2020
void open(const std::string& dbName, const std::optional<std::string>& location) override;
21+
2122
void close(const std::string& dbName) override;
23+
2224
void drop(const std::string& dbName, const std::optional<std::string>& location) override;
25+
2326
void attach(const std::string& mainDbName, const std::string& dbNameToAttach, const std::string& alias,
2427
const std::optional<std::string>& location) override;
28+
2529
void detach(const std::string& mainDbName, const std::string& alias) override;
30+
2631
std::shared_ptr<HybridNativeQueryResultSpec> execute(const std::string& dbName, const std::string& query, const std::optional<SQLiteQueryParams>& params) override;
27-
std::future<std::shared_ptr<HybridNativeQueryResultSpec>> executeAsync(const std::string& dbName, const std::string& query, const std::optional<SQLiteQueryParams>& params) override;
32+
33+
std::shared_ptr<Promise<std::shared_ptr<HybridNativeQueryResultSpec>>> executeAsync(const std::string& dbName, const std::string& query, const std::optional<SQLiteQueryParams>& params) override;
34+
2835
BatchQueryResult executeBatch(const std::string& dbName, const std::vector<BatchQueryCommand>& commands) override;
29-
std::future<BatchQueryResult> executeBatchAsync(const std::string& dbName, const std::vector<BatchQueryCommand>& commands) override;
36+
std::shared_ptr<Promise<BatchQueryResult>> executeBatchAsync(const std::string& dbName, const std::vector<BatchQueryCommand>& commands) override;
37+
3038
FileLoadResult loadFile(const std::string& dbName, const std::string& location) override;
31-
std::future<FileLoadResult> loadFileAsync(const std::string& dbName, const std::string& location) override;
39+
std::shared_ptr<Promise<FileLoadResult>> loadFileAsync(const std::string& dbName, const std::string& location) override;
3240
};
3341

3442
inline std::string HybridNitroSQLite::docPath = "";

package/ios/NitroSQLite.xcodeproj/project.pbxproj

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
83BC6E792C8F78A200B954D2 /* sqlfileloader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83BC6E682C8F78A200B954D2 /* sqlfileloader.cpp */; };
2020
83BC6E7A2C8F78A200B954D2 /* sqlite3.c in Sources */ = {isa = PBXBuildFile; fileRef = 83BC6E6A2C8F78A200B954D2 /* sqlite3.c */; };
2121
83BC6E7B2C8F78A200B954D2 /* sqliteBridge.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83BC6E6C2C8F78A200B954D2 /* sqliteBridge.cpp */; };
22-
83BC6E7C2C8F78A200B954D2 /* ThreadPool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83BC6E6E2C8F78A200B954D2 /* ThreadPool.cpp */; };
2322
83BC6E7F2C8F7BDD00B954D2 /* Empty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83BC6E7E2C8F7BDD00B954D2 /* Empty.swift */; };
2423
/* End PBXBuildFile section */
2524

@@ -75,8 +74,6 @@
7574
83BC6E6B2C8F78A200B954D2 /* sqlite3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sqlite3.h; sourceTree = "<group>"; };
7675
83BC6E6C2C8F78A200B954D2 /* sqliteBridge.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sqliteBridge.cpp; sourceTree = "<group>"; };
7776
83BC6E6D2C8F78A200B954D2 /* sqliteBridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sqliteBridge.h; sourceTree = "<group>"; };
78-
83BC6E6E2C8F78A200B954D2 /* ThreadPool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ThreadPool.cpp; sourceTree = "<group>"; };
79-
83BC6E6F2C8F78A200B954D2 /* ThreadPool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThreadPool.h; sourceTree = "<group>"; };
8077
83BC6E7E2C8F7BDD00B954D2 /* Empty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Empty.swift; sourceTree = "<group>"; };
8178
/* End PBXFileReference section */
8279

@@ -206,8 +203,6 @@
206203
83BC6E6B2C8F78A200B954D2 /* sqlite3.h */,
207204
83BC6E6C2C8F78A200B954D2 /* sqliteBridge.cpp */,
208205
83BC6E6D2C8F78A200B954D2 /* sqliteBridge.h */,
209-
83BC6E6E2C8F78A200B954D2 /* ThreadPool.cpp */,
210-
83BC6E6F2C8F78A200B954D2 /* ThreadPool.h */,
211206
);
212207
name = cpp;
213208
path = ../cpp;
@@ -272,7 +267,6 @@
272267
files = (
273268
83BC6E772C8F78A200B954D2 /* OnLoad.cpp in Sources */,
274269
83BC6E792C8F78A200B954D2 /* sqlfileloader.cpp in Sources */,
275-
83BC6E7C2C8F78A200B954D2 /* ThreadPool.cpp in Sources */,
276270
83BC6E712C8F78A200B954D2 /* RNNitroSQLite-Swift-Cxx-Bridge.cpp in Sources */,
277271
83BC6E762C8F78A200B954D2 /* JSIHelper.cpp in Sources */,
278272
83BC6E7F2C8F7BDD00B954D2 /* Empty.swift in Sources */,

0 commit comments

Comments
 (0)