Skip to content

Commit cea36cd

Browse files
committed
Updating the sample to be C instead of C++. Also adding in more samples into the sample file.
1 parent c6022ca commit cea36cd

File tree

2 files changed

+133
-22
lines changed

2 files changed

+133
-22
lines changed

sample/Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
.PHONY: run clean
22

33
CPP=g++
4+
CC=gcc
45
PKG_CONFIG=PKG_CONFIG_PATH="../install/lib/pkgconfig" pkg-config
56
LIBS=`$(PKG_CONFIG) --libs libds3`
67
CFLAGS=`$(PKG_CONFIG) --cflags libds3`
@@ -15,10 +16,10 @@ deps:
1516
./build_local.sh
1617

1718
sample: main.o
18-
$(CPP) *.o $(CFLAGS) $(LIBS) -o sample
19+
$(CC) *.o $(CFLAGS) $(LIBS) -o sample
1920

2021
main.o: ../install/lib/pkgconfig/libds3.pc
21-
$(CPP) -c main.cpp $(CFLAGS)
22+
$(CC) -c main.c $(CFLAGS)
2223

2324
../install/lib/pkgconfig/libds3.pc:
2425
$(error SDK not built. Please run make deps)

sample/main.cpp renamed to sample/main.c

Lines changed: 130 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,34 @@
44
#include <stdio.h>
55
#include <sys/types.h>
66
#include <sys/stat.h>
7-
#include <ds3.h>
7+
#include "ds3.h"
88

99
int main (int args, char * argv[]) {
10+
/*
11+
// Get Service
12+
1013
ds3_get_service_response *response;
11-
uint64_t i,n;
14+
uint64_t i;
1215
13-
ds3_creds * creds = ds3_create_creds("<access_key>","<secret_key>");
16+
// Setup client credentials and then the actual client itself.
17+
ds3_creds * creds = ds3_create_creds("cnlhbg==","ZIjGDQAs");
1418
ds3_client * client = ds3_create_client("http://192.168.56.101:8080", creds);
15-
16-
ds3_client_proxy(client, "192.168.56.1:8888");
17-
19+
20+
// You can optionally set a proxy server that a request should be sent through
21+
//ds3_client_proxy(client, "192.168.56.1:8888");
22+
23+
// Create the get service request. All requests to a DS3 appliance start this way.
24+
// All ds3_init_* functions return a ds3_request struct
25+
1826
ds3_request* request = ds3_init_get_service();
27+
28+
// This performs the request to a DS3 appliance.
29+
// If there is an error 'error' will not be NULL
30+
// If the request completed successfully then 'error' will be NULL
1931
ds3_error* error = ds3_get_service(client, request, &response);
2032
ds3_free_request(request);
21-
33+
34+
// Check that the request completed successfully
2235
if(error != NULL) {
2336
if(error->error != NULL) {
2437
printf("Got an error (%lu): %s\n", error->error->status_code, error->message);
@@ -40,24 +53,129 @@ int main (int args, char * argv[]) {
4053
return 1;
4154
}
4255
43-
if(response->num_buckets == NULL) {
44-
printf("Num buckets is null\n");
56+
if(response->num_buckets == 0) {
57+
printf("No buckets returned\n");
58+
ds3_free_service_response(response);
4559
ds3_free_creds(creds);
4660
ds3_free_client(client);
47-
return 1;
61+
return 0;
4862
}
4963
5064
for (i = 0; i < response->num_buckets; i++) {
5165
ds3_bucket bucket = response->buckets[i];
5266
printf("Bucket: (%s) created on %s\n", bucket.name, bucket.creation_date);
5367
}
54-
68+
5569
ds3_free_service_response(response);
5670
71+
ds3_free_creds(creds);
72+
ds3_free_client(client);
73+
ds3_cleanup();
74+
75+
*/
76+
5777
/*
78+
//Create Bucket
79+
80+
ds3_creds * creds = ds3_create_creds("cnlhbg==","ZIjGDQAs");
81+
ds3_client * client = ds3_create_client("http://192.168.56.101:8080", creds);
82+
83+
//ds3_client_proxy(client, "192.168.56.1:8888");
84+
char * bucket = "books";
85+
ds3_request * create_bucket_request = ds3_init_put_bucket(bucket);
86+
ds3_error* error = ds3_put_bucket(client, create_bucket_request);
87+
ds3_free_request(create_bucket_request);
5888
89+
if(error != NULL) {
90+
if(error->error != NULL) {
91+
printf("Got an error (%lu): %s\n", error->error->status_code, error->message);
92+
printf("Message Body: %s\n", error->error->error_body);
93+
}
94+
else {
95+
printf("Got a runtime error: %s\n", error->message);
96+
}
97+
ds3_free_error(error);
98+
ds3_free_creds(creds);
99+
ds3_free_client(client);
100+
return 1;
101+
}
102+
103+
printf("Successfully created bucket: %s\n", bucket);
104+
ds3_free_creds(creds);
105+
ds3_free_client(client);
106+
ds3_cleanup();
107+
*/
108+
109+
///*
110+
// Get Bucket
111+
112+
ds3_get_bucket_response *response;
113+
uint64_t i;
114+
115+
// Setup client credentials and then the actual client itself.
116+
ds3_creds * creds = ds3_create_creds("cnlhbg==","ZIjGDQAs");
117+
ds3_client * client = ds3_create_client("http://192.168.56.101:8080", creds);
118+
119+
// You can optionally set a proxy server that a request should be sent through
120+
//ds3_client_proxy(client, "192.168.56.1:8888");
121+
122+
char * bucket = "books";
123+
124+
// Create the get bucket request.
125+
ds3_request* request = ds3_init_get_bucket(bucket);
126+
127+
// This performs the request to a DS3 appliance.
128+
// If there is an error 'error' will not be NULL
129+
// If the request completed successfully then 'error' will be NULL
130+
ds3_error* error = ds3_get_bucket(client, request, &response);
131+
ds3_free_request(request);
132+
133+
// Check that the request completed successfully
134+
if(error != NULL) {
135+
if(error->error != NULL) {
136+
printf("Got an error (%lu): %s\n", error->error->status_code, error->message);
137+
printf("Message Body: %s\n", error->error->error_body);
138+
}
139+
else {
140+
printf("Got a runtime error: %s\n", error->message);
141+
}
142+
ds3_free_error(error);
143+
ds3_free_creds(creds);
144+
ds3_free_client(client);
145+
return 1;
146+
}
147+
148+
if (response == NULL) {
149+
printf("Response was null\n");
150+
ds3_free_creds(creds);
151+
ds3_free_client(client);
152+
return 1;
153+
}
154+
155+
if(response->num_objects == 0) {
156+
printf("No objects returned\n");
157+
ds3_free_bucket_response(response);
158+
ds3_free_creds(creds);
159+
ds3_free_client(client);
160+
return 0;
161+
}
162+
163+
for (i = 0; i < response->num_objects; i++) {
164+
ds3_object object = response->objects[i];
165+
printf("Object: (%s) created on %s\n", object.name, object.last_modified);
166+
}
167+
168+
ds3_free_bucket_response(response);
169+
170+
ds3_free_creds(creds);
171+
ds3_free_client(client);
172+
ds3_cleanup();
173+
174+
//*/
175+
176+
/*
59177
ds3_bulk_response *response;
60-
char * bucket = "books6";
178+
char * bucket = "books";
61179
62180
const char * files[] = {"huckfinn.txt", "ulysses.txt"};
63181
@@ -93,10 +211,6 @@ int main (int args, char * argv[]) {
93211
94212
ds3_free_bucket_response(bucket_response);
95213
96-
ds3_request * create_bucket_request = ds3_init_put_bucket(bucket);
97-
98-
ds3_put_bucket(client, create_bucket_request);
99-
ds3_free_request(create_bucket_request);
100214
101215
char * object = "huckfinn.txt";
102216
@@ -152,10 +266,6 @@ int main (int args, char * argv[]) {
152266
ds3_free_service_response(response);
153267
*/
154268

155-
clean_up:
156-
ds3_free_creds(creds);
157-
ds3_free_client(client);
158-
ds3_cleanup();
159269

160270
return 0;
161271
}

0 commit comments

Comments
 (0)