<?
/**
 * $Id: SessionProxy.class.php 693 2008-06-25 12:13:38Z pawy $
 *
 * Copyright (c) 2002-2008 Formix www.formix.pl
 * Ten plik �r�d�owy jest w�asno�ci� firmy Formix.
 *
 * Klasa po�rednik dost�pu do sesji
 */
class SessionProxy {
	/**
	 * Zmiana do przechowywania danych w sesji php (wszystkie pozosta�e warto�ci bed� przechowywane w tablice w niej
	 *
	 */
	const SESSION_NAME = "FREEKAM";
	/**
	 * Zapisanie wartosci do sesji
	 *
	 * @param EnumSessionValue $p_valueName nazwa pod ktora bedzie to przechowywane
	 * @param nieokre�lony $p_value wartosc zmiennej
	 */
	public static function SetValue($p_valueName, $p_value) {
		//session_register(SessionProxy::SESSION_NAME);
		$_SESSION[SessionProxy::SESSION_NAME][$p_valueName] = $p_value;
	}
	/**
	 * Pobranie wartosci z sesji
	 *
	 * @param EnumSessionValue $p_valueName wartosc zmiennej przechowywanej w sesji
	 * @return zgodne z typem (dowolnym) wpisanym do sesji lub NULL je�li nie byla wpisana wczesniej
	 */
	public static function GetValue($p_valueName) {
		//session_register(SessionProxy::SESSION_NAME);
		if (isset($_SESSION[SessionProxy::SESSION_NAME][$p_valueName])) {
			return $_SESSION[SessionProxy::SESSION_NAME][$p_valueName];
		}
		else {
			return null;
		}
	}
	/**
	 * Usuwa z sesji zmian� (wstawia NULL)
	 *
	 * @param EnumSessionValue $p_valueName nazwa zmiennej sesyjnej
	 */
	public static function ClearValue($p_valueName) {
		SessionProxy::SetValue($p_valueName, null);
	}
	
	public static function ClearSession() {
		$_SESSION[SessionProxy::SESSION_NAME] = array();
	}
	/**
	 * Jezeli przychodza zmianna ma wartosc to nadpisuje ta w sesji i ja zwraca
	 *
	 * @param enum $valueName identyfikator zmiennej w sesji
	 * @param all $value warto��
	 * @return all warto��
	 */
	public static function GetAndSetValue($valueName, $value) {
		if ($value) {
			SessionProxy::SetValue($valueName, $value);
		}
		return SessionProxy::GetValue($valueName);
	}
	
	/**
	 * Sprawdza czy istnieje zmienna
	 *
	 * @param string $p_valueName
	 * @return boolean
	 */
	public static function IsSetValue($p_valueName){
		if(isset($_SESSION[SessionProxy::SESSION_NAME][$p_valueName])){
			return true;
		}
		else{
			return false;
		}
	}
}

/**
 * Enumerator do przechowywania zmiennych ktore mozna wpisac do sesji
 * Wartosci to nazwy zmiennej w tablicy sesyjnej
 *
 */
class EnumSessionValue {
	/**
	 * Definicja stalej admin
	 *
	 */
	const ADMIN_OBJECT = 'admin';
    /**
	 * Definicja stalej user
	 *
	 */
	const USER_OBJECT = 'user';
	/**
	 * Definicja stalej idType
	 *
	 */
	const IDTYPE = 'idType';

	 
}
?>