/* @(#)cardauth.cc (c) Telelogic AB */ #include #include "cardauth.h" #include "bank.h" #include "cashcard.h" #include "remotetr.h" #include "customer.h" #include "account.h" CardAuthorization::CardAuthorization() { GenInit(); } CardAuthorization::CardAuthorization(const char* passwd, int limit) { GenInit(); Password.SetStr(passwd); Limit = limit; } BoolEnum CardAuthorization::VerifyPassword() { BoolEnum result = BOOL_TRUE; result = (BoolEnum) strcmp(Password.GetStr(), (CashCard->CardCode).GetStr()); return(result); } std::ostream& operator<<(std::ostream& f, CardAuthorization& cardauth) { std::cout<<"\n"; std::cout<<"CardAuthorization :\n"; std::cout<<"\t"<<"Password:\t"<p_disconnect_CardAuthorization(*this); //GENB p_disconnect_Bank(*Bank); //GENB } //GENB void CardAuthorization::p_connect_Bank (class Bank& a_Bank) //GENB { //GENB unset_Bank(); //GENB Bank = &a_Bank; //GENB } //GENB void CardAuthorization::p_disconnect_Bank(class Bank& a_Bank) //GENB { //GENB assert(&a_Bank == Bank); //GENB Bank = 0; //GENB } //GENB void CardAuthorization::add_CashCard (class CashCard& a_CashCard) //GENB { //GENB p_connect_CashCard(a_CashCard); //GENB a_CashCard.p_connect_CardAuthorization(*this); //GENB } //GENB void CardAuthorization::rem_CashCard(class CashCard& a_CashCard) //GENB { //GENB p_disconnect_CashCard(a_CashCard); //GENB a_CashCard.p_disconnect_CardAuthorization(*this); //GENB } //GENB void CardAuthorization::p_connect_CashCard (class CashCard& a_CashCard) //GENB { //GENB a_CashCard.same_CardAuthorization = CashCard; //GENB CashCard = &a_CashCard; //GENB } //GENB void CardAuthorization::p_disconnect_CashCard(class CashCard& a_CashCard) //GENB { //GENB class CashCard **p; //GENB for (p = &CashCard; *p && *p != &a_CashCard; p = &(*p) ->same_CardAuthorization); //GENB if (*p) *p = (*p) ->same_CardAuthorization; //GENB } //GENB void CardAuthorization::add_RemoteTransaction (class RemoteTransaction& a_RemoteTransaction) //GENB { //GENB p_connect_RemoteTransaction(a_RemoteTransaction); //GENB a_RemoteTransaction.p_connect_CardAuthorization(*this); //GENB } //GENB void CardAuthorization::rem_RemoteTransaction(class RemoteTransaction& a_RemoteTransaction) //GENB { //GENB p_disconnect_RemoteTransaction(a_RemoteTransaction); //GENB a_RemoteTransaction.p_disconnect_CardAuthorization(*this); //GENB } //GENB void CardAuthorization::p_connect_RemoteTransaction (class RemoteTransaction& a_RemoteTransaction) //GENB { //GENB a_RemoteTransaction.same_CardAuthorization = RemoteTransaction; //GENB RemoteTransaction = &a_RemoteTransaction; //GENB } //GENB void CardAuthorization::p_disconnect_RemoteTransaction(class RemoteTransaction& a_RemoteTransaction) //GENB { //GENB class RemoteTransaction **p; //GENB for (p = &RemoteTransaction; *p && *p != &a_RemoteTransaction; p = &(*p) ->same_CardAuthorization); //GENB if (*p) *p = (*p) ->same_CardAuthorization; //GENB } //GENB void CardAuthorization::set_Customer (class Customer& a_Customer) //GENB { //GENB p_connect_Customer(a_Customer); //GENB a_Customer.p_connect_CardAuthorization(*this); //GENB } //GENB void CardAuthorization::unset_Customer() //GENB { //GENB if (Customer) Customer->p_disconnect_CardAuthorization(*this); //GENB p_disconnect_Customer(*Customer); //GENB } //GENB void CardAuthorization::p_connect_Customer (class Customer& a_Customer) //GENB { //GENB unset_Customer(); //GENB Customer = &a_Customer; //GENB } //GENB void CardAuthorization::p_disconnect_Customer(class Customer& a_Customer) //GENB { //GENB assert(&a_Customer == Customer); //GENB Customer = 0; //GENB } //GENB