00001 // @(#)root/reflex:$Id: OwnedMember.h 29288 2009-07-01 13:03:35Z axel $ 00002 // Author: Stefan Roiser 2006 00003 00004 // Copyright CERN, CH-1211 Geneva 23, 2004-2006, All rights reserved. 00005 // 00006 // Permission to use, copy, modify, and distribute this software for any 00007 // purpose is hereby granted without fee, provided that this copyright and 00008 // permissions notice appear in all copies and derivatives. 00009 // 00010 // This software is provided "as is" without express or implied warranty. 00011 00012 #ifndef Reflex_OwnedMember 00013 #define Reflex_OwnedMember 00014 00015 // Include files 00016 #include "Reflex/Kernel.h" 00017 #include "Reflex/Member.h" 00018 #include <vector> 00019 00020 namespace Reflex { 00021 // forward declarations 00022 class MemberBase; 00023 00024 /** 00025 * @class OwnedMember OwnedMember.h OwnedMember.h 00026 * @author Stefan Roiser 00027 * @date 21/07/2006 00028 * @ingroup Ref 00029 */ 00030 class RFLX_API OwnedMember: public Member { 00031 public: 00032 /** constructor */ 00033 OwnedMember(const MemberBase * memberBase = 0): 00034 Member(memberBase) { 00035 } 00036 00037 /** take ownership */ 00038 OwnedMember(const Member &rh): 00039 Member(rh) {} 00040 00041 00042 /** delete info */ 00043 void 00044 Delete() { 00045 Member::Delete(); 00046 /* delete fMemberBase; */ 00047 /* fMemberBase = 0; */ 00048 } 00049 00050 00051 }; // class OwnedMember 00052 00053 } // namespace Reflex 00054 00055 00056 #endif // Reflex_OwnedMember