Skip to content

Commit 5b5eacc

Browse files
committed
Prep for latest intercept
1 parent 060d412 commit 5b5eacc

11 files changed

Lines changed: 51 additions & 48 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ SET(STATIC_MSVCRT ON CACHE BOOL "force static lib" FORCE)
5454

5555
SET(WITH_UNIT_TESTS OFF CACHE BOOL "no mysql tests" FORCE)
5656
set(WITH_SSL "OFF" CACHE STRING "Disabled for now" FORCE)
57+
set(WITH_CURL OFF CACHE BOOL "not cuurl" FORCE)
5758
#TODO test with wolfssl
5859

5960
if(CMAKE_COMPILER_IS_GNUCXX)

src/CMakeLists.txt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,14 @@ file(GLOB INTERCEPT_HOST_SOURCES "${INTERCEPT_CLIENT_PATH}/intercept/client/*.cp
3838
SOURCE_GROUP("intercept" FILES ${INTERCEPT_HOST_SOURCES})
3939

4040
add_library(${INTERCEPT_PLUGIN_NAME} SHARED ${INTERCEPT_PLUGIN_SOURCES} ${INTERCEPT_HOST_SOURCES})
41-
find_library(libittnotify libittnotify)
41+
42+
if(ITT_INSTRUMENTATION)
43+
find_library(libittnotify NAMES ittnotify PATHS ${CMAKE_SOURCE_DIR}/ittnotify NO_DEFAULT_PATH)
44+
else()
45+
set(libittnotify "")
46+
add_compile_definitions(INTEL_NO_ITTNOTIFY_API)
47+
endif()
48+
4249

4350
target_link_libraries(${INTERCEPT_PLUGIN_NAME} mariadbclientpp yaml-cpp ${libittnotify})
4451

src/config.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ void Config::reloadConfig() {
6565
}
6666

6767

68-
game_value cmd_reloadConfig(uintptr_t) {
68+
game_value cmd_reloadConfig(game_state&) {
6969

7070

7171

src/connection.cpp

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
#include "mariadb++/exceptions.hpp"
66
#include <winsock2.h>
77
#include "threading.h"
8-
#define INTEL_NO_ITTNOTIFY_API
98
#include "ittnotify.h"
109

1110
__itt_domain* domainConnection = __itt_domain_create("connection");
@@ -64,7 +63,7 @@ game_data* createGameDataDBConnection(param_archive* ar) {
6463
return x;
6564
}
6665

67-
game_value Connection::cmd_createConnectionArray(uintptr_t, game_value_parameter right) {
66+
game_value Connection::cmd_createConnectionArray(game_state&, game_value_parameter right) {
6867
//#TODO error checking
6968
r_string ip = right[0];
7069
int port = right[1];
@@ -82,7 +81,7 @@ game_value Connection::cmd_createConnectionArray(uintptr_t, game_value_parameter
8281
return newCon;
8382
}
8483

85-
game_value Connection::cmd_createConnectionConfig(uintptr_t, game_value_parameter right) {
84+
game_value Connection::cmd_createConnectionConfig(game_state&, game_value_parameter right) {
8685

8786
auto acc = Config::get().getAccount(right);
8887
if (!acc) return {};
@@ -119,7 +118,7 @@ class callstack_item_WaitForQueryResult : public vm_context::callstack_item {
119118
//push result onto stack.
120119
auto gd_res = new GameDataDBResult();
121120
gd_res->res = res->data->res;
122-
s->current_context->scriptStack[_stackEndAtStart] = game_value(gd_res);
121+
s->get_vm_context()->scriptStack[_stackEndAtStart] = game_value(gd_res);
123122
d1 = 2; //done
124123
} else {
125124
d1 = 3; //wait
@@ -138,14 +137,11 @@ class callstack_item_WaitForQueryResult : public vm_context::callstack_item {
138137

139138
};
140139

141-
game_value Connection::cmd_execute(uintptr_t g , game_value_parameter con, game_value_parameter qu) {
142-
143-
auto gs = reinterpret_cast<game_state*>(g);
144-
140+
game_value Connection::cmd_execute(game_state& gs, game_value_parameter con, game_value_parameter qu) {
145141
auto session = con.get_as<GameDataDBConnection>()->session;
146142
auto query = qu.get_as<GameDataDBQuery>();
147143

148-
if (!gs->current_context->scheduled) {
144+
if (!gs.get_vm_context()->is_scheduled()) {
149145

150146
auto statement = session->create_statement(query->getQueryString());
151147

@@ -169,7 +165,7 @@ game_value Connection::cmd_execute(uintptr_t g , game_value_parameter con, game_
169165
}
170166
//Set up callstack item to suspend while waiting
171167

172-
auto& cs = reinterpret_cast<game_state*>(g)->current_context->callstack;
168+
auto& cs = gs.get_vm_context()->callstack;
173169

174170
auto gd_res = new GameDataDBAsyncResult();
175171
gd_res->data = std::make_shared<GameDataDBAsyncResult::dataT>();
@@ -203,7 +199,7 @@ game_value Connection::cmd_execute(uintptr_t g , game_value_parameter con, game_
203199

204200
auto newItem = new callstack_item_WaitForQueryResult(gd_res);
205201
newItem->_parent = cs.back();
206-
newItem->_stackEndAtStart = gs->current_context->scriptStack.size()-2;
202+
newItem->_stackEndAtStart = gs.get_vm_context()->scriptStack.size()-2;
207203
newItem->_stackEnd = newItem->_stackEndAtStart+1;
208204
newItem->_varSpace.parent = &cs.back()->_varSpace;
209205
cs.emplace_back(newItem);
@@ -213,7 +209,7 @@ game_value Connection::cmd_execute(uintptr_t g , game_value_parameter con, game_
213209
__itt_string_handle* connection_cmd_executeAsync = __itt_string_handle_create("Connection::cmd_executeAsync");
214210
__itt_string_handle* connection_cmd_executeAsync_task = __itt_string_handle_create("Connection::cmd_executeAsync::task");
215211

216-
game_value Connection::cmd_executeAsync(uintptr_t, game_value_parameter con, game_value_parameter qu) {
212+
game_value Connection::cmd_executeAsync(game_state&, game_value_parameter con, game_value_parameter qu) {
217213
__itt_task_begin(domainConnection, __itt_null, __itt_null, connection_cmd_executeAsync);
218214
auto session = con.get_as<GameDataDBConnection>()->session;
219215
auto query = qu.get_as<GameDataDBQuery>();

src/connection.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ using namespace intercept::types;
88
class Connection {
99
public:
1010

11-
static game_value cmd_createConnectionArray(uintptr_t, game_value_parameter right);
12-
static game_value cmd_createConnectionConfig(uintptr_t, game_value_parameter right);
13-
static game_value cmd_execute(uintptr_t, game_value_parameter con, game_value_parameter qu);
14-
static game_value cmd_executeAsync(uintptr_t, game_value_parameter con, game_value_parameter qu);
11+
static game_value cmd_createConnectionArray(game_state&, game_value_parameter right);
12+
static game_value cmd_createConnectionConfig(game_state&, game_value_parameter right);
13+
static game_value cmd_execute(game_state&, game_value_parameter con, game_value_parameter qu);
14+
static game_value cmd_executeAsync(game_state&, game_value_parameter con, game_value_parameter qu);
1515

1616

1717

src/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ void intercept::pre_init() {
2929
Config::get().reloadConfig();
3030
}
3131
catch (YAML::BadConversion& x) {
32-
sqf::diag_log ("Database config error " + x.msg + " in L" + std::to_string(x.mark.line));
32+
sqf::diag_log("Database config error " + x.msg + " in L" + std::to_string(x.mark.line));
3333
sqf::system_chat("Database config error " + x.msg + " in L" + std::to_string(x.mark.line));
3434
}
3535
catch (std::runtime_error& x) {

src/query.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ game_data* createGameDataDBQuery(param_archive* ar) {
1212
}
1313

1414

15-
game_value Query::cmd_prepareQuery(uintptr_t, game_value_parameter right) {
15+
game_value Query::cmd_prepareQuery(game_state&, game_value_parameter right) {
1616

1717
auto query = new GameDataDBQuery();
1818

@@ -21,7 +21,7 @@ game_value Query::cmd_prepareQuery(uintptr_t, game_value_parameter right) {
2121
return query;
2222
}
2323

24-
game_value Query::cmd_prepareQueryAr(uintptr_t, game_value_parameter right) {
24+
game_value Query::cmd_prepareQueryAr(game_state&, game_value_parameter right) {
2525
auto query = new GameDataDBQuery();
2626
//#TODO verify that right has 2 entries
2727
query->queryString = right[0];
@@ -31,7 +31,7 @@ game_value Query::cmd_prepareQueryAr(uintptr_t, game_value_parameter right) {
3131

3232
return query;
3333
}
34-
game_value Query::cmd_prepareQueryConfig(uintptr_t, game_value_parameter right) {
34+
game_value Query::cmd_prepareQueryConfig(game_state&, game_value_parameter right) {
3535
if (Config::get().getQuery(right).empty()) return {};
3636

3737
auto query = new GameDataDBQuery();
@@ -41,7 +41,7 @@ game_value Query::cmd_prepareQueryConfig(uintptr_t, game_value_parameter right)
4141

4242
return query;
4343
}
44-
game_value Query::cmd_prepareQueryConfigAr(uintptr_t, game_value_parameter right) {
44+
game_value Query::cmd_prepareQueryConfigAr(game_state&, game_value_parameter right) {
4545
if (Config::get().getQuery(right[0]).empty()) return {};
4646

4747
auto query = new GameDataDBQuery();
@@ -56,7 +56,7 @@ game_value Query::cmd_prepareQueryConfigAr(uintptr_t, game_value_parameter right
5656
return query;
5757
}
5858

59-
game_value Query::cmd_copyQuery(uintptr_t, game_value_parameter right) {
59+
game_value Query::cmd_copyQuery(game_state&, game_value_parameter right) {
6060
auto inp = right.get_as<GameDataDBQuery>();
6161

6262
auto query = new GameDataDBQuery();
@@ -68,24 +68,24 @@ game_value Query::cmd_copyQuery(uintptr_t, game_value_parameter right) {
6868
return query;
6969
}
7070

71-
game_value Query::cmd_bindValue(uintptr_t, game_value_parameter left, game_value_parameter right) {
71+
game_value Query::cmd_bindValue(game_state&, game_value_parameter left, game_value_parameter right) {
7272
auto query = left.get_as<GameDataDBQuery>();
7373

7474
query->boundValues.emplace_back(right);
7575
return {};
7676
}
77-
game_value Query::cmd_bindValueArray(uintptr_t, game_value_parameter left, game_value_parameter right) {
77+
game_value Query::cmd_bindValueArray(game_state&, game_value_parameter left, game_value_parameter right) {
7878
auto query = left.get_as<GameDataDBQuery>();
7979

8080
for (auto& it : right.to_array())
8181
query->boundValues.emplace_back(it);
8282

8383
return {};
8484
}
85-
game_value Query::cmd_bindNamedValue(uintptr_t, game_value_parameter left, game_value_parameter right) {
85+
game_value Query::cmd_bindNamedValue(game_state&, game_value_parameter left, game_value_parameter right) {
8686
return {};
8787
}
88-
game_value Query::cmd_bindNamedValueArray(uintptr_t, game_value_parameter left, game_value_parameter right) {
88+
game_value Query::cmd_bindNamedValueArray(game_state&, game_value_parameter left, game_value_parameter right) {
8989
return {};
9090
}
9191

src/query.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@ using namespace intercept::types;
77
class Query {
88
public:
99

10-
static game_value cmd_prepareQuery(uintptr_t, game_value_parameter right);
11-
static game_value cmd_prepareQueryAr(uintptr_t, game_value_parameter right);
12-
static game_value cmd_prepareQueryConfig(uintptr_t, game_value_parameter right);
13-
static game_value cmd_prepareQueryConfigAr(uintptr_t, game_value_parameter right);
10+
static game_value cmd_prepareQuery(game_state&, game_value_parameter right);
11+
static game_value cmd_prepareQueryAr(game_state&, game_value_parameter right);
12+
static game_value cmd_prepareQueryConfig(game_state&, game_value_parameter right);
13+
static game_value cmd_prepareQueryConfigAr(game_state&, game_value_parameter right);
1414

1515

1616

17-
static game_value cmd_copyQuery(uintptr_t, game_value_parameter right);
18-
static game_value cmd_bindValue(uintptr_t, game_value_parameter left, game_value_parameter right);
19-
static game_value cmd_bindValueArray(uintptr_t, game_value_parameter left, game_value_parameter right);
20-
static game_value cmd_bindNamedValue(uintptr_t, game_value_parameter left, game_value_parameter right);
21-
static game_value cmd_bindNamedValueArray(uintptr_t, game_value_parameter left, game_value_parameter right);
17+
static game_value cmd_copyQuery(game_state&, game_value_parameter right);
18+
static game_value cmd_bindValue(game_state&, game_value_parameter left, game_value_parameter right);
19+
static game_value cmd_bindValueArray(game_state&, game_value_parameter left, game_value_parameter right);
20+
static game_value cmd_bindNamedValue(game_state&, game_value_parameter left, game_value_parameter right);
21+
static game_value cmd_bindNamedValueArray(game_state&, game_value_parameter left, game_value_parameter right);
2222

2323

2424

src/res.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,19 @@ game_data* createGameDataDBAsyncResult(param_archive* ar) {
1818
return x;
1919
}
2020

21-
game_value Result::cmd_affectedRows(uintptr_t, game_value_parameter right) {
21+
game_value Result::cmd_affectedRows(game_state&, game_value_parameter right) {
2222
auto& res = right.get_as<GameDataDBResult>()->res;
2323

2424
return res->row_count();
2525
}
2626

27-
game_value Result::cmd_lastInsertId(uintptr_t, game_value_parameter right) {
27+
game_value Result::cmd_lastInsertId(game_state&, game_value_parameter right) {
2828
auto& res = right.get_as<GameDataDBResult>()->res;
2929

3030
return res->get_last_insert_id();
3131
}
3232

33-
game_value Result::cmd_toArray(uintptr_t, game_value_parameter right) {
33+
game_value Result::cmd_toArray(game_state&, game_value_parameter right) {
3434
auto& res = right.get_as<GameDataDBResult>()->res;
3535
if (!res) return auto_array<game_value>();
3636
auto_array<game_value> result;
@@ -67,15 +67,15 @@ game_value Result::cmd_toArray(uintptr_t, game_value_parameter right) {
6767
return result;
6868
}
6969

70-
game_value Result::cmd_bindCallback(uintptr_t, game_value_parameter left, game_value_parameter right) {
70+
game_value Result::cmd_bindCallback(game_state&, game_value_parameter left, game_value_parameter right) {
7171
auto& res = left.get_as<GameDataDBAsyncResult>();
7272

7373
res->data->callback = right[0];
7474
res->data->callbackArgs = right[1]; //#TODO call directly if result is ready
7575
return {};
7676
}
7777

78-
game_value Result::cmd_waitForResult(uintptr_t, game_value_parameter right) {
78+
game_value Result::cmd_waitForResult(game_state&, game_value_parameter right) {
7979
auto& res = right.get_as<GameDataDBAsyncResult>();
8080

8181
res->data->fut.wait();

src/res.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ using namespace intercept::types;
1010
class Result {
1111
public:
1212

13-
static game_value cmd_affectedRows(uintptr_t, game_value_parameter right);
14-
static game_value cmd_lastInsertId(uintptr_t, game_value_parameter right);
15-
static game_value cmd_toArray(uintptr_t, game_value_parameter right);
16-
static game_value cmd_bindCallback(uintptr_t, game_value_parameter left, game_value_parameter right);
17-
static game_value cmd_waitForResult(uintptr_t, game_value_parameter right);
13+
static game_value cmd_affectedRows(game_state&, game_value_parameter right);
14+
static game_value cmd_lastInsertId(game_state&, game_value_parameter right);
15+
static game_value cmd_toArray(game_state&, game_value_parameter right);
16+
static game_value cmd_bindCallback(game_state&, game_value_parameter left, game_value_parameter right);
17+
static game_value cmd_waitForResult(game_state&, game_value_parameter right);
1818

1919
static void initCommands();
2020
static inline sqf_script_type GameDataDBResult_type;

0 commit comments

Comments
 (0)