49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
///////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
 | 
						|
///////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
// Created : 2008-12-19
 | 
						|
// Updated : 2005-06-13
 | 
						|
// Licence : This source is under MIT License
 | 
						|
// File    : gli/shared_array.hpp
 | 
						|
///////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
#ifndef GLI_SHARED_ARRAY_INCLUDED
 | 
						|
#define GLI_SHARED_ARRAY_INCLUDED
 | 
						|
 | 
						|
namespace gli
 | 
						|
{
 | 
						|
    template <typename T>
 | 
						|
    class shared_array
 | 
						|
    {
 | 
						|
    public:
 | 
						|
 | 
						|
        shared_array();
 | 
						|
        shared_array(shared_array const & SharedArray);
 | 
						|
		shared_array(T * Pointer);
 | 
						|
        virtual ~shared_array();
 | 
						|
 | 
						|
		void reset();
 | 
						|
		void reset(T * Pointer);
 | 
						|
 | 
						|
        T & operator*();
 | 
						|
        T * operator->();
 | 
						|
        T const & operator*() const;
 | 
						|
        T const * const operator->() const;
 | 
						|
 | 
						|
		T * get();
 | 
						|
		T const * const get() const;
 | 
						|
 | 
						|
        shared_array & operator=(shared_array const & SharedArray);
 | 
						|
	    bool operator==(shared_array const & SharedArray) const;
 | 
						|
	    bool operator!=(shared_array const & SharedArray) const;
 | 
						|
 | 
						|
    private:
 | 
						|
        int * Counter;
 | 
						|
        T * Pointer;
 | 
						|
    };
 | 
						|
}//namespace gli
 | 
						|
 | 
						|
#include "shared_array.inl"
 | 
						|
 | 
						|
#endif //GLI_SHARED_ARRAY_INCLUDED
 |