Add example of the blocking API

This commit is contained in:
2025-11-16 12:21:31 +01:00
parent 58d2d7def3
commit f7dc52ae8f
4 changed files with 120 additions and 52 deletions
+63
View File
@@ -0,0 +1,63 @@
#include <stddef.h>
#include <Toasty.h>
int main(void)
{
ToastyString remote_addr = TOASTY_STR("127.0.0.1");
uint16_t remote_port = 8080;
Toasty *toasty = toasty_connect(remote_addr, remote_port);
if (toasty == NULL) {
printf("Couldn't connect to metadata server");
return -1;
}
ToastyString path_1 = TOASTY_STR("/first_file");
ToastyString path_2 = TOASTY_STR("/second_file");
char msg_1[] = "This is file 1";
char msg_2[] = "This is file 2";
// Begin creation operation. This does not block.
ToastyHandle create_handle_1 = toasty_begin_create_file(toasty, path_1, 1024);
if (create_handle_1 == TOASTY_INVALID) {
printf("Couldn't create file 1");
return -1;
}
// This doesn't block either.
ToastyHandle create_handle_2 = toasty_begin_create_file(toasty, path_2, 1024);
if (create_handle_2 == TOASTY_INVALID) {
printf("Couldn't create file 2");
return -1;
}
// Now block execution by overlapping the waiting
// times for both file creations.
ToastyResult result;
int ret = toasty_wait_result(toasty, create_handle_1, &result, -1);
if (ret < 0) {
printf("Couldn't wait for completion\n");
return -1;
}
if (result.type != TOASTY_RESULT_CREATE_SUCCESS) {
printf("Couldn't create file 1\n");
return -1;
}
ret = toasty_wait_result(toasty, create_handle_2, &result, -1);
if (ret < 0) {
printf("Couldn't wait for completion\n");
return -1;
}
if (result.type != TOASTY_RESULT_CREATE_SUCCESS) {
printf("Couldn't create file 2\n");
return -1;
}
printf("All files were created!\n");
toastyfs_disconnect(tfs);
return 0;
}
+34
View File
@@ -0,0 +1,34 @@
#include <stddef.h>
#include <Toasty.h>
int main(void)
{
ToastyString remote_addr = TOASTY_STR("127.0.0.1");
uint16_t remote_port = 8080;
Toasty *toasty = toasty_connect(remote_addr, remote_port);
if (toasty == NULL) {
printf("Couldn't connect to metadata server");
return -1;
}
ToastyString path = TOASTY_STR("/first_file");
int ret = toasty_create_file(toasty, path, 1024);
if (ret < 0) {
printf("Couldn't create file\n");
toasty_disconnect(toasty);
return -1;
}
char data[] = "Hello, world!";
ret = toasty_write(toasty, path, 0, data, sizeof(data)-1);
if (ret < 0) {
printf("Couldn't write to file\n");
toasty_disconnect(toasty);
return -1;
}
toastyfs_disconnect(tfs);
return 0;
}
-39
View File
@@ -1,39 +0,0 @@
#include <stddef.h>
#include <ToastyFS.h>
int main(void)
{
ToastyFS *tfs = toastyfs_init("127.0.0.1", 8080);
if (tfs == NULL)
return -1;
if (toastyfs_submit_create(tfs, "/my_file_1", -1, false, 1024) < 0) {
toastyfs_free(tfs);
return -1;
}
if (toastyfs_submit_create(tfs, "/my_file_2", -1, false, 1024) < 0) {
toastyfs_free(tfs);
return -1;
}
char buff_1[] = "This is file 1";
if (toastyfs_submit_write(tfs, "/my_file_1", -1, 0, buff_1, sizeof(buff_1)-1) < 0) {
toastyfs_free(tfs);
return -1;
}
char buff_2[] = "This is file 2";
if (toastyfs_submit_write(tfs, "/my_file_1", -1, 0, buff_2, sizeof(buff_2)-1) < 0) {
toastyfs_free(tfs);
return -1;
}
for (int i = 0; i < 4; i++) {
ToastyFS_Result result;
toastyfs_wait(tfs, -1, &result, -1);
}
toastyfs_free(tfs);
return 0;
}