
/**********************************************************//**
 **
 ** @file base/sharedclass.h
 **
 ** Copyright (C) 2010  Xpace, LLC.  All rights reserved.
 **
 **************************************************************/

#ifndef XPACE_SHAREDCLASS_H
#define XPACE_SHAREDCLASS_H

#include <QtCore/QSharedData>

namespace Xpace
{
  template <typename T> 
  class SharedClassPointer : public QSharedDataPointer<T>
  {
  public:
    SharedClassPointer& operator=
	    (T *rhs)
    {
      QSharedDataPointer<T>::operator=(rhs);
      return *this;
    }

    bool operator!
      ()
      const
    {
      return !this->constData();
    }

  protected:
    T* clone()
    {
      return this->d->clone();
    }
  };
}
#endif

