int main() { FILE *fp; Order *o; fp = fopen(filename, "wb"); o = new_order(1, 100, 3); print_order(o); fwrite(o, sizeof(Order), 1, fp); free(o); o = new_order(2, 50, 5); print_order(o); fwrite(o, sizeof(Order), 1, fp); free(o); fclose(fp); Order o2; fp = fopen(filename, "rb"); fread(&o2, sizeof(Order), 1, fp); print_order(&o2); fread(&o2, sizeof(Order), 1, fp); print_order(&o2); fclose(fp); fp = fopen(filename, "rb"); int id, price, num; fread(&id, sizeof(int), 1, fp); fread(&price, sizeof(int), 1, fp); fread(&num, sizeof(int), 1, fp); print(id, price, num); fread(&id, sizeof(int), 1, fp); fread(&price, sizeof(int), 1, fp); fread(&num, sizeof(int), 1, fp); print(id, price, num); fclose(fp); void *o3 = new_order(10, 1000, 2); id = *(int*)(o3 + 0); price = *(int*)(o3 + 4); num = *(int*)(o3 + 8); print(id, price, num); free(o3); return 0; }
int execute_new_order(struct db_context_t *dbc, struct new_order_t *data) { int rc; char * vals[6]; int nvals=6; rc= new_order(dbc, data, vals, nvals); if (rc) { LOG_ERROR_MESSAGE("NEW_ORDER FINISHED WITH RC %d\n", rc); //should free memory that was allocated for nvals vars dbt2_free_values(vals, nvals); return ERROR; } return OK; }
void do_10_pack () { int n; long start = get_msec_count (), duration; ta_enter (&ten_pack_ta); for (n = 0; n < 10; n++) { new_order (); #ifndef NO_ONLY payment (); #endif } #ifndef NO_ONLY ta_enter (&delivery_ta); if (strstr (dbms, "Virtuoso") || strstr (dbms, "SOAP")) { for (n = 1; n <= 10; n++) delivery_1 (local_w_id, n); } else { delivery_1 (local_w_id, 0); } ta_leave (&delivery_ta); slevel (); ostat (); #endif ta_leave (&ten_pack_ta); duration = get_msec_count () - start; #if defined(GUI) log (1, "-- %ld tpmC\n", 600000 / duration); #else printf ("-- %ld tpmC\n\n", 600000 / duration); fflush (stdout); #endif }
int main(int argc, char*argv[]) { char* test = (char *) malloc(500*sizeof(char)); json_error_t error; json_t *root; json_t *data; json_t *j_type; json_t *j_data; json_t *phone; const char *type; const char *customer_phone; int server_sockfd, client_sockfd; int server_len, client_len; struct sockaddr_in server_address; struct sockaddr_in client_address; server_sockfd = socket(PF_INET, SOCK_STREAM, 0); server_address.sin_family = PF_INET; // server_address.sin_addr.s_addr = inet_addr("127.0.0.1"); server_address.sin_addr.s_addr = htonl(INADDR_ANY); server_address.sin_port = htons(9733); server_len = sizeof(server_address); bind(server_sockfd, (struct sockaddr *)&server_address, server_len); listen(server_sockfd, 5); while (1) { test = (char *) malloc(500*sizeof(char)); printf("server waitting\n"); client_len = sizeof(client_address); client_sockfd = accept(server_sockfd, (struct sockaddr *)&client_address, &client_len); read(client_sockfd, test, 500); root = json_loads(test, 0, &error); free(test); if(!root) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); // Response error to client response_data(0, json_object(), client_sockfd); } else { j_type = json_object_get(root, "type"); j_data = json_object_get(root, "data"); if (!j_type || !j_data) { response_data(0, json_object(), client_sockfd); } else { type = json_string_value(j_type); printf("Type: %s\n", type); if (strcmp(type, "gcustomerinfo") == 0) { const char * phone = get_value(root, "phone"); json_t *data = get_customer(phone); response_data(1, data, client_sockfd); } else if (strcmp(type, "pcustomerinfo") == 0) { const char * name = get_value(root, "name"); const char * email = get_value(root, "email"); const char * address = get_value(root, "address"); const char * phone = get_value(root, "phone"); const char * gender = get_value(root, "gender"); json_t *data = new_customer(name, email, address, phone, gender, "test"); response_data(1, data, client_sockfd); } else if (strcmp(type, "ucustomerinfo") == 0) { const char * id = get_value(root, "id"); const char * name = get_value(root, "name"); const char * email = get_value(root, "email"); const char * address = get_value(root, "address"); const char * gender = get_value(root, "gender"); json_t *data = update_customer(id, name, email, address, gender); response_data(1, data, client_sockfd); } else if (strcmp(type, "porder") == 0) { const char * customer_id = get_value(root, "id"); const char * message = get_value(root, "message"); json_t *data = new_order(customer_id, message); response_data(1, data, client_sockfd); } else if (strcmp(type, "porderdetail") == 0) { const char * order_id = get_value(root, "oid"); const char * product_id = get_value(root, "pid"); const char * quantity = get_value(root, "quantity"); json_t *data = new_order_detail(order_id, product_id, quantity); response_data(1, data, client_sockfd); // Default } else { response_data(0, json_object(), client_sockfd); } } } close(client_sockfd); } }