00001 /* 00002 * This file contains class that represents working class inside 00003 * TSimpleUnit and returns 00004 * 00005 * IMAGES AND RECTANGLES 00006 * 00007 * value. Returned class 00008 * is derived from 00009 * 00010 * TUnitRetType_images_rectangles 00011 * 00012 * class. 00013 * 00014 * Author: 00015 * Tomas Mrkvicka 00016 * xmrkvi03@stud.fit.vutbr.cz 00017 * 00018 */ 00019 00020 #include "simpleunit/Simple_images_rectangles.h" 00021 00022 //definice staticke slozky pro manager 00023 DWORD TManager<TUnitRetType_images_rectangles_implemented>::ms_alloc_count = 0; 00024 00025 //////////////////////////////////////////////////////////////////////////////// 00026 //////////////////////////////////////////////////////////////////////////////// 00027 //////////////////////////////////////////////////////////////////////////////// 00028 // TUnitRetType_images_rectangles_implemented 00029 00030 /** Snizeni poctu referenci. 00031 * 00032 * Jakmile pocet referenci dosahne 0 je objekt okamzite smazan, resp. vracen 00033 * rodicovske jednotce. 00034 */ 00035 void TUnitRetType_images_rectangles_implemented::Release(void) 00036 { 00037 m_cs.Enter(); 00038 m_refs--; 00039 DWORD tmp_refs = m_refs; 00040 m_cs.Leave(); 00041 00042 if ( tmp_refs == 0 ) 00043 { 00044 //objekt je uvolnen 00045 m_parent->ReturnObject( this ); 00046 } 00047 } 00048 //OK 2007-08-26 00:21:29 B04-315B\Tom 00049 00050 // TUnitRetType_images_rectangles_implemented 00051 //////////////////////////////////////////////////////////////////////////////// 00052 //////////////////////////////////////////////////////////////////////////////// 00053 //////////////////////////////////////////////////////////////////////////////// 00054 // TSimpleUnitProcessingInterface_images_rectangles 00055 00056 /** Tato metoda uvolni vsechny vysledky. 00057 * 00058 * Tyto vysledky drzi reference na objekty z cizich objektu a proto je potreba je odstranit. 00059 */ 00060 void TSimpleUnitProcessingInterface_images_rectangles::FreeImageResults(void) 00061 { 00062 while( ! m_results.empty() ) 00063 { 00064 m_results.back()->Release(); 00065 m_results.pop_back(); 00066 } 00067 } 00068 00069 // TSimpleUnitProcessingInterface_images_rectangles 00070 //////////////////////////////////////////////////////////////////////////////// 00071 //////////////////////////////////////////////////////////////////////////////// 00072 ////////////////////////////////////////////////////////////////////////////////