52 lines
1.3 KiB
C++
52 lines
1.3 KiB
C++
int main()
|
|
{
|
|
bank_machine bank;
|
|
interface_machine interface_hardware;
|
|
atm machine(bank.get_sender(),interface_hardware.get_sender());
|
|
std::thread bank_thread(&bank_machine::run,&bank);
|
|
std::thread if_thread(&interface_machine::run,&interface_hardware);
|
|
std::thread atm_thread(&atm::run,&machine);
|
|
messaging::sender atmqueue(machine.get_sender());
|
|
bool quit_pressed=false;
|
|
while(!quit_pressed)
|
|
{
|
|
char c=getchar();
|
|
switch(c)
|
|
{
|
|
case '0':
|
|
case '1':
|
|
case '2':
|
|
case '3':
|
|
case '4':
|
|
case '5':
|
|
case '6':
|
|
case '7':
|
|
case '8':
|
|
case '9':
|
|
atmqueue.send(digit_pressed(c));
|
|
break;
|
|
case 'b':
|
|
atmqueue.send(balance_pressed());
|
|
break;
|
|
case 'w':
|
|
atmqueue.send(withdraw_pressed(50));
|
|
break;
|
|
case 'c':
|
|
atmqueue.send(cancel_pressed());
|
|
break;
|
|
case 'q':
|
|
quit_pressed=true;
|
|
break;
|
|
case 'i':
|
|
atmqueue.send(card_inserted("acc1234"));
|
|
break;
|
|
}
|
|
}
|
|
bank.done();
|
|
machine.done();
|
|
interface_hardware.done();
|
|
atm_thread.join();
|
|
bank_thread.join();
|
|
if_thread.join();
|
|
}
|