Add example of the blocking API
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user