// Copyright (C) by Josh Blum. See LICENSE.txt for licensing information.

#ifndef INCLUDED_LIBGRAS_IMPL_TOKEN_HPP
#define INCLUDED_LIBGRAS_IMPL_TOKEN_HPP

#include <boost/shared_ptr.hpp>
#include <boost/weak_ptr.hpp>

namespace gras
{

typedef boost::weak_ptr<int> WeakToken;

struct Token : boost::shared_ptr<int>
{
    static Token make(void)
    {
        Token tok;
        tok.reset(new int(0));
        return tok;
    }
};

} //namespace gras

#endif /*INCLUDED_LIBGRAS_IMPL_TOKEN_HPP*/