//ATM Simulation Interface - Individual Sessions

ATM Simulation Interface - Individual Sessions


/*
 * Example ATM simulation - file session.h
 *
 * This file declares the class that represents a single customer session
 * with the ATM, implementing the corresponding use case.
 *
 * Copyright (c) 1996 - Russell C. Bjork
 *
 */

//

Interface for class Session


class Session
  {
    /* PURPOSE: Manage a session with a single user.
    */

    public:

	Session(int cardNumber);

	// Run session until user is through or some exceptional condition
	// prevents further processing

	void doSessionUseCase();

	// Force user to re-enter PIN if bank says original PIN was invalid.
	// Return final code from resubmission to bank.

	Bank::ApprovalCode doInvalidPINExtension();

	// Each transation obtains this information from the session when it
	// is needed

	int cardNumber() const;
	int PIN() const;

    private:

	enum { RUNNING, ABORTED } _state;
 	int			  _cardNumber;
	int 			  _PIN;
	class Transaction * 	  _currentTransaction;
  };

//