diff --git a/Park_spot.cpp b/Park_spot.cpp index 5798683..86ca514 100644 --- a/Park_spot.cpp +++ b/Park_spot.cpp @@ -7,8 +7,8 @@ Park_spot::Park_spot() save_db(); } -Park_spot::Park_spot(Customer* parked_, int id_, bool taken_) - : parked{nullptr}, +Park_spot::Park_spot(int id_, bool taken_, Customer* parked_) + : parked{parked_}, id{id_}, taken{taken_} // TODO: think about how init parked? {} diff --git a/Query.cpp b/Query.cpp index 5a2617a..eaae6e7 100644 --- a/Query.cpp +++ b/Query.cpp @@ -25,6 +25,10 @@ vector query_parktimes_for_customer(int cid) { return park_times; } + +//--------------------------------------------- customers + + vector query_customer_with_name(string name) { /* We use this instead of plain customers because: @@ -71,6 +75,22 @@ Customer query_customer_with_id(int id) { } } +Customer* get_customer_ptr_for_parkspot(int id) { + if (!id) { + return 0; + } + for (int i = 0; i < park_customers.size(); i++) { + if (park_customers[i].id == id) { + + return &park_customers[i]; + } + } + return 0; +} + + +// -------------- paroking spots + void query_all_parking_spots() { SQLite::Statement query(data::db, "SELECT * FROM Park_spot WHERE id > ?;"); query.bind(1, 0); @@ -79,20 +99,9 @@ void query_all_parking_spots() { int taken = query.getColumn(1); int cid = query.getColumn(2); park_customers.push_back(query_customer_with_id(cid)); - parking_spots.push_back( - Park_spot{get_customer_ptr_for_parkspot(cid), id, bool(taken)}); + parking_spots.push_back({id, taken, get_customer_ptr_for_parkspot(cid)}); + // parking_spots.push_back(temp); } + cout << "WUT?"; } -Customer* get_customer_ptr_for_parkspot(int id) { - if (!id) { - return nullptr; - } - for (int i = 0; i < park_customers.size(); i++) { - if (park_customers[i].id == id) { - - return &park_customers[i]; - } - } - return nullptr; -} \ No newline at end of file diff --git a/headers/Customer.h b/headers/Customer.h index c05934d..3eb5cbe 100644 --- a/headers/Customer.h +++ b/headers/Customer.h @@ -4,6 +4,7 @@ #include "Park_time.h" #include "data.h" + #include using std::vector; @@ -22,7 +23,6 @@ park_time object. Voegt het toe aan een vector. class Customer { public: - int id; string name; string password; @@ -38,17 +38,18 @@ class Customer { void delete_db(); void gen_monthly(); // remove, make it a function in data + Verhicle_type verhicle; private: - Verhicle_type verhicle; vector park_instances; void save_db(); int auto_increment_db(); }; -static vector park_customers; // save the customers that are parked in here +static vector + park_customers; // save the customers that are parked in here // parking_spot uses pointers, so it's better to save the parked customers here -// where we know they'll be destroyed at the end of this scope, instead of too early -// and end up with dangling pointers +// where we know they'll be destroyed at the end of this scope, instead of too +// early and end up with dangling pointers #endif // CUSTOMER_H \ No newline at end of file diff --git a/headers/Park_spot.h b/headers/Park_spot.h index be1788c..14d5e45 100644 --- a/headers/Park_spot.h +++ b/headers/Park_spot.h @@ -16,7 +16,7 @@ class Park_spot { bool taken; Customer* parked; Park_spot(); - Park_spot(Customer* parked_, int id_, bool taken_); + Park_spot(int id_, bool taken_, Customer* parked_); void clock(Customer* c_customer); private: @@ -26,4 +26,4 @@ class Park_spot { int auto_increment_db(); }; -static vector parking_spots; // to save the parking spots in memory \ No newline at end of file +static vector parking_spots {{0,0,0}}; // to save the parking spots in memory \ No newline at end of file diff --git a/main.cpp b/main.cpp index c9ec230..956f07d 100644 --- a/main.cpp +++ b/main.cpp @@ -3,6 +3,7 @@ #include #include + /* Code strucure like this: class declarations zijn in /headers/class_naam.h, en definitions van de member @@ -18,9 +19,6 @@ record die zegt dat een customer voor x tijd geparkeert heeft bij spot x, enz. De client clockt in en uit bij een spot. */ - - - void Wait(int sec) /* a wait function where 1 sec represents 1 hour irl. @@ -31,27 +29,43 @@ a wait function where 1 sec represents 1 hour irl. Customer* get_customer_ptr_for_parkspot(int id); -int main() { - query_all_parking_spots(); +void debug(Customer c) { + cout << "\n-----------" << &c << "-------------"; + cout << "\nid: " << c.id << "\nname:" << c.name + << "\ncar:" << int(c.verhicle); + cout << "\n------------------------"; +} +void debug(Park_spot p) { + cout << "\n------------" << &p << "\nid:" << p.id << "\ntaken: " << p.taken + << "\n customer:" << p.parked << "\n------------------"; +} + +int main() { Customer p0 = query_customer_with_name("Shaquile")[0]; Customer p1 = query_customer_with_name("Sagar Ramsaransing")[0]; Customer p2 = query_customer_with_name("Joshua karto")[0]; Customer p3 = query_customer_with_name("Stefan udit")[0]; - - parking_spots[2].clock(&p1); - Wait(2); - parking_spots[2].clock(&p1); - Wait(1); - parking_spots[0].clock(&p2); - Wait(1); - parking_spots[1].clock(&p3); - Wait(1); - parking_spots[0].clock(&p2); - parking_spots[1].clock(&p3); - Wait(1); - parking_spots[1].clock(&p3); - + query_all_parking_spots(); + // debug(p1); + // debug(p0); + // debug(p2); + // debug(p3); + cout << parking_spots.size(); + for (auto i: park_customers){ + debug(i); + } + // parking_spots[2].clock(&p1); + // Wait(2); + // parking_spots[2].clock(&p1); + // Wait(1); + // parking_spots[0].clock(&p2); + // Wait(1); + // parking_spots[1].clock(&p3); + // Wait(1); + // parking_spots[0].clock(&p2); + // parking_spots[1].clock(&p3); + // Wait(1); + // parking_spots[1].clock(&p3); } - diff --git a/test.db3 b/test.db3 index b4fd627..14fcb21 100644 Binary files a/test.db3 and b/test.db3 differ