Update README Samples
This commit is contained in:
30
README.md
30
README.md
@ -43,12 +43,12 @@ IACore provides a manager/node architecture using shared memory.
|
|||||||
#include <IACore/IPC.hpp>
|
#include <IACore/IPC.hpp>
|
||||||
|
|
||||||
// Spawns a child process and connects via Shared Memory
|
// Spawns a child process and connects via Shared Memory
|
||||||
auto nodeID = manager.SpawnNode("MyChildNodeExe");
|
auto nodeID = manager.spawn_node("MyChildNodeExe");
|
||||||
manager.WaitTillNodeIsOnline(*nodeID);
|
manager.wait_till_node_is_online(*nodeID);
|
||||||
|
|
||||||
// Send data with zero-copy overhead
|
// Send data with zero-copy overhead
|
||||||
String msg = "Hello Node";
|
String msg = "Hello Node";
|
||||||
manager.SendPacket(*nodeID, 100, {(PCUINT8)msg.data(), msg.size()});
|
manager.send_packet(*nodeID, 100, {(PCUINT8)msg.data(), msg.size()});
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Node:
|
#### Node:
|
||||||
@ -57,11 +57,11 @@ manager.SendPacket(*nodeID, 100, {(PCUINT8)msg.data(), msg.size()});
|
|||||||
|
|
||||||
class Node : public IACore::IPC_Node {
|
class Node : public IACore::IPC_Node {
|
||||||
public:
|
public:
|
||||||
void OnSignal(uint8_t signal) override {
|
void on_signal(uint8_t signal) override {
|
||||||
// Handle signals
|
// Handle signals
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnPacket(uint16_t packetID, std::span<const uint8_t> payload) override {
|
void on_packet(uint16_t packet_id, std::span<const uint8_t> payload) override {
|
||||||
// Handle packets
|
// Handle packets
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -72,10 +72,10 @@ int main(int argc, char* argv[]) {
|
|||||||
|
|
||||||
Node node;
|
Node node;
|
||||||
// Connect back to the manager via Shared Memory
|
// Connect back to the manager via Shared Memory
|
||||||
if (!node.Connect(argv[1])) return -1;
|
if (!node.connect(argv[1])) return -1;
|
||||||
|
|
||||||
while(true) {
|
while(true) {
|
||||||
node.Update();
|
node.update();
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -87,25 +87,25 @@ int main(int argc, char* argv[]) {
|
|||||||
#include <IACore/AsyncOps.hpp>
|
#include <IACore/AsyncOps.hpp>
|
||||||
|
|
||||||
// Initialize worker threads (hardware_concurrency - 2)
|
// Initialize worker threads (hardware_concurrency - 2)
|
||||||
IACore::AsyncOps::InitializeScheduler();
|
IACore::AsyncOps::initialize_scheduler();
|
||||||
|
|
||||||
// Schedule a task
|
// Schedule a task
|
||||||
IACore::AsyncOps::Schedule *mySchedule = new IACore::AsyncOps::Schedule();
|
IACore::AsyncOps::Schedule *my_schedule = new IACore::AsyncOps::Schedule();
|
||||||
|
|
||||||
IACore::AsyncOps::ScheduleTask([](auto workerID) {
|
IACore::AsyncOps::schedule_task([](auto worker_id) {
|
||||||
printf("Running on worker %d\n", workerID);
|
printf("Running on worker %d\n", worker_id);
|
||||||
}, 0, mySchedule);
|
}, 0, my_schedule);
|
||||||
|
|
||||||
// Wait for completion
|
// Wait for completion
|
||||||
IACore::AsyncOps::WaitForScheduleCompletion(mySchedule);
|
IACore::AsyncOps::wait_for_schedule_completion(my_schedule);
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. HTTP Request
|
### 3. HTTP Request
|
||||||
```C++
|
```C++
|
||||||
#include <IACore/HttpClient.hpp>
|
#include <IACore/Http/Client.hpp>
|
||||||
|
|
||||||
IACore::HttpClient client("https://api.example.com");
|
IACore::HttpClient client("https://api.example.com");
|
||||||
auto res = client.JsonGet<MyResponseStruct>("/data", {});
|
auto res = client.json_get<MyResponseStruct>("/data", {});
|
||||||
|
|
||||||
if (res) {
|
if (res) {
|
||||||
std::cout << "Data: " << res->value << "\n";
|
std::cout << "Data: " << res->value << "\n";
|
||||||
|
|||||||
Reference in New Issue
Block a user