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
|