/* @(#)transac.cc 1.2 */ #include "transac.h" #include "update.h" #include "entrysta.h" #include "protos.h" #include //SEQb void Transaction::GenInit() //GENB { //GENB EntryStation = 0; //GENB Update = 0; //GENB } //GENB //SEQe Transaction::Transaction() //GENB { //GENB GenInit(); //GENB } //GENB Transaction::~Transaction() //GENB { UpdateObj p, aux; for (p = Update; p; p = aux) { //GENB aux = p->same_Transaction; delete p; } } //GENB void Transaction::Execute() { std::cout<<" Transaction::Execute() "; } //SEQb void Transaction::add_Update (class Update& a_Update) //GENB { //GENB p_connect_Update(a_Update); //GENB a_Update.p_connect_Transaction(*this); //GENB } //GENB void Transaction::rem_Update(class Update& a_Update) //GENB { //GENB p_disconnect_Update(a_Update); //GENB a_Update.p_disconnect_Transaction(*this); //GENB } //GENB void Transaction::p_connect_Update (class Update& a_Update) //GENB { //GENB a_Update.same_Transaction = Update; //GENB Update = &a_Update; //GENB } //GENB void Transaction::p_disconnect_Update(class Update& a_Update) //GENB { //GENB class Update **p; //GENB for (p = &Update; *p && *p != &a_Update; p = &(*p) ->same_Transaction); //GENB if (*p) *p = (*p) ->same_Transaction; //GENB } //GENB void Transaction::set_EntryStation (class EntryStation& a_EntryStation) //GENB { //GENB p_connect_EntryStation(a_EntryStation); //GENB a_EntryStation.p_connect_Transaction(*this); //GENB } //GENB void Transaction::unset_EntryStation() //GENB { //GENB if (EntryStation) EntryStation->p_disconnect_Transaction(*this); //GENB p_disconnect_EntryStation(*EntryStation); //GENB } //GENB void Transaction::p_connect_EntryStation (class EntryStation& a_EntryStation) //GENB { //GENB unset_EntryStation(); //GENB EntryStation = &a_EntryStation; //GENB } //GENB void Transaction::p_disconnect_EntryStation(class EntryStation& a_EntryStation) //GENB { //GENB assert(&a_EntryStation == EntryStation); //GENB EntryStation = 0; //GENB } //GENB //SEQe