///scratch/berryj/link/new_link/link/bin/instantiate "-a" "-t" "Graph*" "-h" "Attribute" "-II" "LINK/graph/Attribute.h" "-I" "LINK/graph/GraphObject.h" "-I" "LINK/graph/Graph.h" "-d" "graph" 
#ifdef __GNUC__
#define DEFINE_TEMPLATE
#endif

#include <LINK/basic/ElementOps.h>

#include <LINK/graph/Attribute.h>

#ifdef __GNUC__
#undef DEFINE_TEMPLATE
#endif

#include <LINK/graph/GraphObject.h>

#include <LINK/graph/Graph.h>


typedef Graph* _Graph_;
typedef Attribute<Graph* > _Attribute_Graph__;


//*********************************************************************
#ifdef __GNUC__
template class ElementOps<_Attribute_Graph__>;
#endif
//*********************************************************************



#ifdef __GNUC__
template class Attribute<Graph* >;

#ifdef __GNUC__
template int newAttribute(Graph*, String, _Graph_&, int);
template int getAttribute(GraphObject*, String, _Graph_&);
template int setAttribute(GraphObject*, String, _Graph_&, int);
#endif
#endif

Attribute<_Graph_ >::~Attribute()
{
	if (_graph) {
		if (strncmp(_name, "x_", 2) != 0)
			resetAttribute(_graph, _name);
	_graph->removeAttr(this);
	}
	delete _name;
	if (_static_flag == LINK_DYNAMIC)
		delete _value;
}

