00001 #include "vrjGaPrecompiled.h" 00002 #include "Referenced.h" 00003 00004 using namespace vrjGA; 00005 00006 Referenced::Referenced(): _refCount(0) 00007 { 00008 } 00009 00010 Referenced::~Referenced() 00011 { 00012 } 00013 00014 void Referenced::ref() 00015 { 00016 ++_refCount; 00017 } 00018 00019 void Referenced::unref() 00020 { 00021 if( 0==--_refCount ) 00022 delete this; 00023 } 00024 00025 00026 namespace boost 00027 { 00028 void intrusive_ptr_add_ref(vrjGA::Referenced* ptr) 00029 { 00030 assert(ptr); 00031 ptr->ref(); 00032 } 00033 00034 void intrusive_ptr_release(vrjGA::Referenced* ptr) 00035 { 00036 assert(ptr); 00037 ptr->unref(); 00038 } 00039 };
1.3.5