====== IBalansTransact Interfejs ====== Interfejs //IBalansTransact// definiše svojstva i metode za umotavanje [[:atomicni_procsi|atomičnih ]] i neatomičnih složenih procesa u **kontrolisane transakcije**. Transakcija može da se završi samo na dva načina: uspešno i neuspešno. Uspešno završena transakcija ostavlja zapisane podatke u bazi. Neuspešno završena transakcija ih vraća u stanje pre transakcije. Realizacija IBalansTransact//// interfejsa zavisi od klase koja ga realizuje, ali je generalni princip sličan definiciji transakcija u okviru baza podataka. ====== Svojstva ====== ^Naziv ^Vrsta ^Opis | |Traje |Boolean | \\ Indikator koji pokazuje da je tranzakcija upravo u toku. Vrednost TRUE znači da tranzakcija traje u suprotnom znači da nije pokrenuta. \\ | |UmotanoSpolja |Boolean |Indikator da je što se baze podataka tiče, transakcija već umotana spoljnjom procedurom (pozivaocem). Služi kao indikator klasi da ne umotava operacije nad bazom podataka u sopstvene transakcije. | ====== Metode ====== ^Naziv ^Rezultat ^Opis | |PokreniTransakciju |Boolean | \\ Pokretanje transakcije. Pozivom ovog metoda uglavnom se zapamte parametri potrebni za vraćanje klase u stanje pre početka transakcije. \\ \\ Ukoliko je transakcija uspešno pokrenuta vraća se **True ** kao rezultat. \\ | |PonistiTransakciju |Boolean | \\ Poništava sve izmene u klasi (i bazi ako su urađene) urađene u dosadašnjem toku procesa. \\ \\ Ukoliko je transakcija uspešno poništena metod vraća vrednost **True**. \\ | |PotvrdiTransakciju |Boolean | \\ Potvrda urađenih izmena. Transakcija se završava, njen rezultat se postavlja u novu inicijalnu vrednost klase i zatvaraju se eventualno započete interne transakcije nad bazom podataka. \\ \\ Ukoliko je uspešan, metod vraća **True** vrednost. \\ | \\