<?php

/**
 * 
 * @author Peter Csubak (chuby)
 * @copyright Peter Csubak (chuby)
 */
interface DBCInterface {
	
	/**
	 * Úgy kell implementálni, hogy a beállított adatok alapján létrehozzon egy adatbáziskapcsolatot, melyre a 
	 * referenciát egy belső változóban kell tárolnia. Természetesen a megadott sémát is meg kell nyitnia.
	 * (Fontos, hogy a referenciát mindenképpen tárolni kell, mert előfordulhat, hogy egyszerre több 
	 * adatbázis kapcsolat is nyitva van, és ezek nem keveredhetnek össze.)
	 */
	public function connect();
	
	/**
	 * Úgy kell implementálni, hogy a megnyitott adatbáziskapcsolatot meg kell szakítania. Autocommitot 
	 * végrehajtó adatbázisok esetén nincs szükség a végső commit-ra, viszont ha az adatbázis nem bír 
	 * ilyen tulajdonsággal, akkor egy commit műveletet sem árt, ha elvégez. (De ez természetesen az
	 * implemetáló saját belátására van bízva.) 
	 */
	public function disconnect();
	
	/**
	 * Úgy kell implementálni, hogy beállítsa az adatbáziskapcsolat címét.
	 */
	public function setConnectionURL($value);
	
	/**
	 * Úgy kell implementálni, hogy beállítsa az adatbáziskapcsolat felhasználónevét.
	 */
	public function setUsername($value);
	
	/**
	 * Úgy kell implementálni, hogy beállítsa az adatbáziskapcsolat jelszavát.
	 */
	public function setPassword($value);
	
	/**
	 * Úgy kell implementálni, hogy beállítsa az adatbáziskapcsolatban megnyitandó séma nevét.
	 */
	public function setSchema($value);
	
	/**
	 * Úgy kell implementálni, hogy beállítsa az adatbáziskapcsolatban felhasználandó táblákra vonatkozó
	 * prefixumot. Erre abban az esetben van szükség, ha a megadott sémában már vannak ugyan olyan nevű
	 * táblák, amelyineket fel szeretnénk használni ebben a kapcsolatban, viszont azok nem azonosak azokkal
	 * amiket ebben a kapcsolatban használni szeretnénk.
	 */
	public function setPrefix($value);
	
	/**
	 * Úgy kell implementálni, hogy lekérdezze a táblákra vonatkozó prefixumot. A prefixum használatáról, és 
	 * működéséről bővebben lásd a setPrefix metódus dokumentációját.
	 */
	public function getPrefix();
	
	/**
	 * Úgy kell implementálni, hogy visszaadja a kapcsolat azonosítóját/referenciáját. Amennyiben nincs aktív
	 * adatbázis kapcsolat, akkor null-t kell visszaadjon.
	 */
	public function getConnectionID();
	
	/**
	 * Úgy kell implementálni, hogy megadja, hogy aktuálisan a kapcsolatkezelővel meg van-e nyitva egy aktív
	 * adatbáziskapcsolat vagy sem.
	 */
	public function isConnected();
	
}
?>