root / trunk / code / projects / warehouse / helper_classes / Order.cpp @ 2009
History | View | Annotate | Download (1.29 KB)
1 | 2003 | jmcarrol | #include "Order.h" |
---|---|---|---|
2 | |||
3 | using namespace std; |
||
4 | |||
5 | /** @Brief: Regular order constructor */
|
||
6 | Order::Order(int order_id, Address order_source, Address order_dest,
|
||
7 | 2009 | jmcarrol | Time order_start_time, Path order_path, Duration order_est_time) |
8 | 2003 | jmcarrol | { |
9 | id = order_id; |
||
10 | source = order_source; |
||
11 | dest = order_dest; |
||
12 | start_time = order_start_time; |
||
13 | path = order_path; |
||
14 | est_time = order_est_time; |
||
15 | } |
||
16 | |||
17 | /** @Brief: Get order ID */
|
||
18 | int Order::getid() const |
||
19 | { |
||
20 | return id;
|
||
21 | } |
||
22 | |||
23 | Address Order::get_source() const
|
||
24 | { |
||
25 | return source;
|
||
26 | } |
||
27 | |||
28 | Address Order::get_dest() const
|
||
29 | { |
||
30 | return dest;
|
||
31 | } |
||
32 | |||
33 | Time Order::get_start_time() const
|
||
34 | { |
||
35 | return start_time;
|
||
36 | } |
||
37 | |||
38 | Path Order::get_path() const
|
||
39 | { |
||
40 | return path;
|
||
41 | } |
||
42 | |||
43 | 2009 | jmcarrol | Duration Order::get_est_time() const
|
44 | 2003 | jmcarrol | { |
45 | return est_time;
|
||
46 | } |
||
47 | |||
48 | 2009 | jmcarrol | int Order::get_priority() const |
49 | 2003 | jmcarrol | { |
50 | 2009 | jmcarrol | return start_time.toSec() + MAX_WAIT_TIME - est_time.toSec();
|
51 | 2003 | jmcarrol | } |
52 | |||
53 | 2009 | jmcarrol | bool Order::operator==(Order& order) |
54 | { |
||
55 | return this->id == order.id; |
||
56 | } |
||
57 | |||
58 | 2003 | jmcarrol | void Order::set_path(Path order_path)
|
59 | { |
||
60 | path = order_path; |
||
61 | return;
|
||
62 | } |
||
63 | /** @Brief: Order comparison function for PQWrapper
|
||
64 | * NOTE: In order to have a min priority queue, using c++'s pq
|
||
65 | * implementation, the compare function must return true if
|
||
66 | * o1 is greater than o2.
|
||
67 | */
|
||
68 | bool CompareOrder::operator()(Order& o1, Order& o2) |
||
69 | { |
||
70 | 2009 | jmcarrol | return o1.get_priority() > o2.get_priority();
|
71 | 2003 | jmcarrol | } |