//
/* * 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 * */ //
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;
  };
//