/*!
\page oess_1__transactions	oess_1: Детали реализации поддержки транзакций

	В версиях ObjESSty до версии 1.4 (включительно) под клиентом понимается
	отдельный объект oess_1::db::cln::db_t, который подключен к некоторому
	объекту oess_1::db::site::localhost_t. В принципе, в приложении может
	быть только один объект localhost, который обслуживает все открытые
	приложением БД. Тогда все oess_1::db::cln::db_t будут считаться клиентами
	одного "сервера БД". На практике до сих пор такого не применялось, но
	поддержка транзакций разрабатывалась с учетом этой возможности. И с
	расчетом на то, что со временем класс localhost_t дествительно сможет
	использоваться для реализации полноценного сервера БД.

	Транзакцию может проводить только один клиент. Операции
	всех других клиентов во время проведения транзакции завершаются с кодом
	ошибки transaction_in_progress.

	Транзакции обрабатываются на уровне класса
	oess_1::db::impl::db_content::std_db_content_t.
	Класс std_db_content_t введет счетчик количества начатых транзакций.
	
	Когда клиент начинает транзакцию:
	- идентификатор клиента сохраняется как идентификатор владельца
	транзакции;
	- начинается системная транзакция;
	- увеличивается счетчик транзакций.
	
	Когда клиент подтверждает транзакцию:
	- проверяется идентификатор клиента. Только владелец транзакции
	может подтвердить транзакцию;
	- уменьшается счетчик транзакций;
	- подтверждается системная транзакция.
	
	При выполнении какой-либо операции:
	- проверяется идентификатор клиента. Только владелец транзакции
	может проводить операции (если транзакция начата);
	- выполняется действие.
	
	При попытке владельца транзакции отключиться от БД при
	незавершенной транзакции воспринимается как откат транзакции.
*/
