1 #include "libs/Kernel.h"
2 #include "PublicData.h"
3 #include "PublicDataRequest.h"
5 bool PublicData::get_value(uint16_t csa
, uint16_t csb
, uint16_t csc
, void *data
) {
6 PublicDataRequest
pdr(csa
, csb
, csc
);
7 pdr
.set_data_ptr(data
); // the caller may have put a placeholder for the returned data here
8 THEKERNEL
->call_event(ON_GET_PUBLIC_DATA
, &pdr
);
9 if(pdr
.has_returned_data()) {
10 // the callee set the returned data pointer
11 *(void**)data
= pdr
.get_data_ptr();
13 return pdr
.is_taken();
16 bool PublicData::set_value(uint16_t csa
, uint16_t csb
, uint16_t csc
, void *data
) {
17 PublicDataRequest
pdr(csa
, csb
, csc
);
18 pdr
.set_data_ptr(data
);
19 THEKERNEL
->call_event(ON_SET_PUBLIC_DATA
, &pdr
);
20 return pdr
.is_taken();