///home/berryj/link/bin/genMethods "-t" "Testobj*" "-h" "Array" "-I" "LINK/basic/Array.h" "-I" "LINK/userobj/Testobj.h" "-d" "userobj" 
#include <stk.h>
#include <LINK/stkWrapper/LINK_STk.h>

#include <LINK/basic/Array.h>

#include <LINK/userobj/Testobj.h>

#include <LINK/stkWrapper/Wrapper.h>
#include <LINK/stkWrapper/Register.h>
#include <LINK/stkWrapper/ArrayWrapper.h>


typedef Testobj* _Testobj_;
typedef Array<Testobj* > _Array_Testobj__;
static Array<Testobj* > s__Array_Testobj__;

#define _Array_Testobj__DATA(x) ((Array<Testobj* >*) (EXTDATA(x)))
#define _Array_Testobj__IS_DATA(x) (TYPEP(x, tc_CXXwrapper) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<Array<Testobj* > >::type))
#define _Array_Testobj__ISNT_DATA(x) (!_Array_Testobj__IS_DATA(x))

#define _Array_Testobj__CXX_DATA(x) (*(Array<Testobj* >*) (EXTDATA(VAL(x))))
#define _Array_Testobj__CXX_IS_DATA(x) (INSTANCEP(x) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<Array<Testobj* > >::type))
#define _Array_Testobj__CXX_ISNT_DATA(x) (!_Array_Testobj__CXX_IS_DATA(x))


PRIMITIVE STk_init__Array_Testobj__()
{
	Wrapper<_Array_Testobj__>::type = STk_new_CXXwrapper_id(
			Wrapper<_Array_Testobj__>::name, 
			"",
			(void (*)(SCM x, SCM port, int mode))
			ArrayWrapper<_Testobj_>::displayTypedArray,
			(void (*)(SCM x))ArrayWrapper<_Testobj_>::markTypedArray,
			(void (*)(SCM x))ArrayWrapper<_Testobj_>::freeTypedArray);
	Tcl_InitHashTable(&Register<_Array_Testobj__>::objTable, TCL_ONE_WORD_KEYS);
	return UNDEFINED;
}

void genExtra_Array_Testobj__Methods(void);

PRIMITIVE STk_init_methods__Array_Testobj__()
{
	genExtra_Array_Testobj__Methods();
	return UNDEFINED;
}
///home/berryj/link/bin/genMethods "-t" "Testobj*" "-h" "Collection" "-I" "LINK/basic/SetFuncs.h" "-I" "LINK/basic/Collection.h" "-I" "LINK/userobj/Testobj.h" "-d" "userobj" 
#include <stk.h>
#include <LINK/stkWrapper/LINK_STk.h>

#include <LINK/basic/SetFuncs.h>

#include <LINK/basic/Collection.h>

#include <LINK/userobj/Testobj.h>

#include <LINK/stkWrapper/Wrapper.h>
#include <LINK/stkWrapper/Register.h>
#include <LINK/stkWrapper/CollectionWrapper.h>


typedef Testobj* _Testobj_;
typedef Collection<Testobj* > _Collection_Testobj__;

#define _Collection_Testobj__DATA(x) ((Collection<Testobj* >*) (EXTDATA(x)))
#define _Collection_Testobj__IS_DATA(x) (TYPEP(x, tc_CXXwrapper) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<Collection<Testobj* > >::type))
#define _Collection_Testobj__ISNT_DATA(x) (!_Collection_Testobj__IS_DATA(x))

#define _Collection_Testobj__CXX_DATA(x) (*(Collection<Testobj* >*) (EXTDATA(VAL(x))))
#define _Collection_Testobj__CXX_IS_DATA(x) (INSTANCEP(x) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<Collection<Testobj* > >::type))
#define _Collection_Testobj__CXX_ISNT_DATA(x) (!_Collection_Testobj__CXX_IS_DATA(x))


PRIMITIVE STk_init__Collection_Testobj__()
{
	Wrapper<_Collection_Testobj__>::type = STk_new_CXXwrapper_id(
			Wrapper<_Collection_Testobj__>::name, 
			"",
			(void (*)(SCM x, SCM port, int mode))
			CollectionWrapper<_Testobj_>::displayTypedCollection,
			(void (*)(SCM x))CollectionWrapper<_Testobj_>::markTypedCollection,
			(void (*)(SCM x))CollectionWrapper<_Testobj_>::freeTypedCollection);
	Tcl_InitHashTable(&Register<_Collection_Testobj__>::objTable, TCL_ONE_WORD_KEYS);
	return UNDEFINED;
}

void genExtra_Collection_Testobj__Methods(void);

PRIMITIVE STk_init_methods__Collection_Testobj__()
{
	genExtra_Collection_Testobj__Methods();
	return UNDEFINED;
}
///home/berryj/link/bin/genMethods "-t" "Testobj*" "-h" "Container" "-I" "LINK/basic/Container.h" "-I" "LINK/userobj/Testobj.h" "-d" "userobj" 
#include <stk.h>
#include <LINK/stkWrapper/LINK_STk.h>

#include <LINK/basic/Container.h>

#include <LINK/userobj/Testobj.h>

#include <LINK/stkWrapper/Wrapper.h>
#include <LINK/stkWrapper/Register.h>


typedef Testobj* _Testobj_;
typedef Container<Testobj* > _Container_Testobj__;

#define _Container_Testobj__DATA(x) ((Container<Testobj* >*) (EXTDATA(x)))
#define _Container_Testobj__IS_DATA(x) (TYPEP(x, tc_CXXwrapper) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<Container<Testobj* > >::type))
#define _Container_Testobj__ISNT_DATA(x) (!_Container_Testobj__IS_DATA(x))

#define _Container_Testobj__CXX_DATA(x) (*(Container<Testobj* >*) (EXTDATA(VAL(x))))
#define _Container_Testobj__CXX_IS_DATA(x) (INSTANCEP(x) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<Container<Testobj* > >::type))
#define _Container_Testobj__CXX_ISNT_DATA(x) (!_Container_Testobj__CXX_IS_DATA(x))


PRIMITIVE STk_init__Container_Testobj__()
{
	Wrapper<_Container_Testobj__>::type = STk_new_CXXwrapper_id(
			Wrapper<_Container_Testobj__>::name, 
			"",
			(void (*)(SCM x, SCM port, int mode))0,
			(void (*)(SCM x))0,
			(void (*)(SCM x))0);
	Tcl_InitHashTable(&Register<_Container_Testobj__>::objTable, TCL_ONE_WORD_KEYS);
	return UNDEFINED;
}

void genExtra_Container_Testobj__Methods(void);

PRIMITIVE STk_init_methods__Container_Testobj__()
{
	genExtra_Container_Testobj__Methods();
	return UNDEFINED;
}
///home/berryj/link/bin/genMethods "-t" "Testobj*" "-h" "List" "-I" "LINK/basic/List.h" "-I" "LINK/userobj/Testobj.h" "-d" "userobj" 
#include <stk.h>
#include <LINK/stkWrapper/LINK_STk.h>

#include <LINK/basic/List.h>

#include <LINK/userobj/Testobj.h>

#include <LINK/stkWrapper/Wrapper.h>
#include <LINK/stkWrapper/Register.h>
#include <LINK/stkWrapper/ListWrapper.h>


typedef Testobj* _Testobj_;
typedef List<Testobj* > _List_Testobj__;
static List<Testobj* > s__List_Testobj__;

#define _List_Testobj__DATA(x) ((List<Testobj* >*) (EXTDATA(x)))
#define _List_Testobj__IS_DATA(x) (TYPEP(x, tc_CXXwrapper) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<List<Testobj* > >::type))
#define _List_Testobj__ISNT_DATA(x) (!_List_Testobj__IS_DATA(x))

#define _List_Testobj__CXX_DATA(x) (*(List<Testobj* >*) (EXTDATA(VAL(x))))
#define _List_Testobj__CXX_IS_DATA(x) (INSTANCEP(x) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<List<Testobj* > >::type))
#define _List_Testobj__CXX_ISNT_DATA(x) (!_List_Testobj__CXX_IS_DATA(x))


PRIMITIVE STk_init__List_Testobj__()
{
	Wrapper<_List_Testobj__>::type = STk_new_CXXwrapper_id(
			Wrapper<_List_Testobj__>::name, 
			"",
			(void (*)(SCM x, SCM port, int mode))
			ListWrapper<_Testobj_>::displayTypedList,
			(void (*)(SCM x))ListWrapper<_Testobj_>::markTypedList,
			(void (*)(SCM x))ListWrapper<_Testobj_>::freeTypedList);
	Tcl_InitHashTable(&Register<_List_Testobj__>::objTable, TCL_ONE_WORD_KEYS);
	return UNDEFINED;
}

void genExtra_List_Testobj__Methods(void);

PRIMITIVE STk_init_methods__List_Testobj__()
{
	genExtra_List_Testobj__Methods();
	return UNDEFINED;
}
///home/berryj/link/bin/genMethods "-t" "Testobj*" "-h" "MSet" "-r" "Collection<Testobj*>" "-I" "LINK/basic/MSet.h" "-I" "LINK/userobj/Testobj.h" "-d" "userobj" 
#include <stk.h>
#include <LINK/stkWrapper/LINK_STk.h>

#include <LINK/basic/MSet.h>

#include <LINK/userobj/Testobj.h>

#include <LINK/stkWrapper/Wrapper.h>
#include <LINK/stkWrapper/Register.h>
#include <LINK/stkWrapper/CollectionWrapper.h>


typedef Testobj* _Testobj_;
typedef MSet<Testobj* > _MSet_Testobj__;
static MSet<Testobj* > s__MSet_Testobj__;

#define _MSet_Testobj__DATA(x) ((MSet<Testobj* >*) (EXTDATA(x)))
#define _MSet_Testobj__IS_DATA(x) (TYPEP(x, tc_CXXwrapper) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<MSet<Testobj* > >::type))
#define _MSet_Testobj__ISNT_DATA(x) (!_MSet_Testobj__IS_DATA(x))

#define _MSet_Testobj__CXX_DATA(x) (*(MSet<Testobj* >*) (EXTDATA(VAL(x))))
#define _MSet_Testobj__CXX_IS_DATA(x) (INSTANCEP(x) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<MSet<Testobj* > >::type))
#define _MSet_Testobj__CXX_ISNT_DATA(x) (!_MSet_Testobj__CXX_IS_DATA(x))


PRIMITIVE STk_init__MSet_Testobj__()
{
	Wrapper<_MSet_Testobj__>::type = STk_new_CXXwrapper_id(
			Wrapper<_MSet_Testobj__>::name, 
			Wrapper<Collection<Testobj*> >::name,
			(void (*)(SCM x, SCM port, int mode))
			CollectionWrapper<_Testobj_>::displayTypedCollection,
			(void (*)(SCM x))CollectionWrapper<_Testobj_>::markTypedCollection,
			(void (*)(SCM x))CollectionWrapper<_Testobj_>::freeTypedCollection);
	Tcl_InitHashTable(&Register<_MSet_Testobj__>::objTable, TCL_ONE_WORD_KEYS);
	return UNDEFINED;
}

void genExtra_MSet_Testobj__Methods(void);

PRIMITIVE STk_init_methods__MSet_Testobj__()
{
	genExtra_MSet_Testobj__Methods();
	return UNDEFINED;
}
///home/berryj/link/bin/genMethods "-t" "Testobj*" "-h" "Sequence" "-r" "Collection<Testobj*>" "-I" "LINK/basic/Sequence.h" "-I" "LINK/userobj/Testobj.h" "-d" "userobj" 
#include <stk.h>
#include <LINK/stkWrapper/LINK_STk.h>

#include <LINK/basic/Sequence.h>

#include <LINK/userobj/Testobj.h>

#include <LINK/stkWrapper/Wrapper.h>
#include <LINK/stkWrapper/Register.h>
#include <LINK/stkWrapper/CollectionWrapper.h>


typedef Testobj* _Testobj_;
typedef Sequence<Testobj* > _Sequence_Testobj__;
static Sequence<Testobj* > s__Sequence_Testobj__;

#define _Sequence_Testobj__DATA(x) ((Sequence<Testobj* >*) (EXTDATA(x)))
#define _Sequence_Testobj__IS_DATA(x) (TYPEP(x, tc_CXXwrapper) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<Sequence<Testobj* > >::type))
#define _Sequence_Testobj__ISNT_DATA(x) (!_Sequence_Testobj__IS_DATA(x))

#define _Sequence_Testobj__CXX_DATA(x) (*(Sequence<Testobj* >*) (EXTDATA(VAL(x))))
#define _Sequence_Testobj__CXX_IS_DATA(x) (INSTANCEP(x) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<Sequence<Testobj* > >::type))
#define _Sequence_Testobj__CXX_ISNT_DATA(x) (!_Sequence_Testobj__CXX_IS_DATA(x))


PRIMITIVE STk_init__Sequence_Testobj__()
{
	Wrapper<_Sequence_Testobj__>::type = STk_new_CXXwrapper_id(
			Wrapper<_Sequence_Testobj__>::name, 
			Wrapper<Collection<Testobj*> >::name,
			(void (*)(SCM x, SCM port, int mode))
			CollectionWrapper<_Testobj_>::displayTypedCollection,
			(void (*)(SCM x))CollectionWrapper<_Testobj_>::markTypedCollection,
			(void (*)(SCM x))CollectionWrapper<_Testobj_>::freeTypedCollection);
	Tcl_InitHashTable(&Register<_Sequence_Testobj__>::objTable, TCL_ONE_WORD_KEYS);
	return UNDEFINED;
}

void genExtra_Sequence_Testobj__Methods(void);

PRIMITIVE STk_init_methods__Sequence_Testobj__()
{
	genExtra_Sequence_Testobj__Methods();
	return UNDEFINED;
}
///home/berryj/link/bin/genMethods "-t" "Testobj*" "-h" "Set" "-r" "MSet<Testobj*>" "-I" "LINK/basic/Set.h" "-I" "LINK/userobj/Testobj.h" "-d" "userobj" 
#include <stk.h>
#include <LINK/stkWrapper/LINK_STk.h>

#include <LINK/basic/Set.h>

#include <LINK/userobj/Testobj.h>

#include <LINK/stkWrapper/Wrapper.h>
#include <LINK/stkWrapper/Register.h>
#include <LINK/stkWrapper/CollectionWrapper.h>


typedef Testobj* _Testobj_;
typedef Set<Testobj* > _Set_Testobj__;
static Set<Testobj* > s__Set_Testobj__;

#define _Set_Testobj__DATA(x) ((Set<Testobj* >*) (EXTDATA(x)))
#define _Set_Testobj__IS_DATA(x) (TYPEP(x, tc_CXXwrapper) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<Set<Testobj* > >::type))
#define _Set_Testobj__ISNT_DATA(x) (!_Set_Testobj__IS_DATA(x))

#define _Set_Testobj__CXX_DATA(x) (*(Set<Testobj* >*) (EXTDATA(VAL(x))))
#define _Set_Testobj__CXX_IS_DATA(x) (INSTANCEP(x) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<Set<Testobj* > >::type))
#define _Set_Testobj__CXX_ISNT_DATA(x) (!_Set_Testobj__CXX_IS_DATA(x))


PRIMITIVE STk_init__Set_Testobj__()
{
	Wrapper<_Set_Testobj__>::type = STk_new_CXXwrapper_id(
			Wrapper<_Set_Testobj__>::name, 
			Wrapper<MSet<Testobj*> >::name,
			(void (*)(SCM x, SCM port, int mode))
			CollectionWrapper<_Testobj_>::displayTypedCollection,
			(void (*)(SCM x))CollectionWrapper<_Testobj_>::markTypedCollection,
			(void (*)(SCM x))CollectionWrapper<_Testobj_>::freeTypedCollection);
	Tcl_InitHashTable(&Register<_Set_Testobj__>::objTable, TCL_ONE_WORD_KEYS);
	return UNDEFINED;
}

void genExtra_Set_Testobj__Methods(void);

PRIMITIVE STk_init_methods__Set_Testobj__()
{
	genExtra_Set_Testobj__Methods();
	return UNDEFINED;
}
///home/berryj/link/bin/genMethods "-t" "Testobj*" "-h" "SortedArray" "-r" "Array<Testobj*>" "-I" "LINK/basic/SortedArray.h" "-I" "LINK/userobj/Testobj.h" "-d" "userobj" 
#include <stk.h>
#include <LINK/stkWrapper/LINK_STk.h>

#include <LINK/basic/SortedArray.h>

#include <LINK/userobj/Testobj.h>

#include <LINK/stkWrapper/Wrapper.h>
#include <LINK/stkWrapper/Register.h>
#include <LINK/stkWrapper/ArrayWrapper.h>


typedef Testobj* _Testobj_;
typedef SortedArray<Testobj* > _SortedArray_Testobj__;
static SortedArray<Testobj* > s__SortedArray_Testobj__;

#define _SortedArray_Testobj__DATA(x) ((SortedArray<Testobj* >*) (EXTDATA(x)))
#define _SortedArray_Testobj__IS_DATA(x) (TYPEP(x, tc_CXXwrapper) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<SortedArray<Testobj* > >::type))
#define _SortedArray_Testobj__ISNT_DATA(x) (!_SortedArray_Testobj__IS_DATA(x))

#define _SortedArray_Testobj__CXX_DATA(x) (*(SortedArray<Testobj* >*) (EXTDATA(VAL(x))))
#define _SortedArray_Testobj__CXX_IS_DATA(x) (INSTANCEP(x) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<SortedArray<Testobj* > >::type))
#define _SortedArray_Testobj__CXX_ISNT_DATA(x) (!_SortedArray_Testobj__CXX_IS_DATA(x))


PRIMITIVE STk_init__SortedArray_Testobj__()
{
	Wrapper<_SortedArray_Testobj__>::type = STk_new_CXXwrapper_id(
			Wrapper<_SortedArray_Testobj__>::name, 
			Wrapper<Array<Testobj*> >::name,
			(void (*)(SCM x, SCM port, int mode))
			ArrayWrapper<_Testobj_>::displayTypedArray,
			(void (*)(SCM x))ArrayWrapper<_Testobj_>::markTypedArray,
			(void (*)(SCM x))ArrayWrapper<_Testobj_>::freeTypedArray);
	Tcl_InitHashTable(&Register<_SortedArray_Testobj__>::objTable, TCL_ONE_WORD_KEYS);
	return UNDEFINED;
}

void genExtra_SortedArray_Testobj__Methods(void);

PRIMITIVE STk_init_methods__SortedArray_Testobj__()
{
	genExtra_SortedArray_Testobj__Methods();
	return UNDEFINED;
}
///home/berryj/link/bin/genMethods "-t" "Testobj*" "-h" "SortedList" "-r" "List<Testobj*>" "-I" "LINK/basic/SortedList.h" "-I" "LINK/userobj/Testobj.h" "-d" "userobj" 
#include <stk.h>
#include <LINK/stkWrapper/LINK_STk.h>

#include <LINK/basic/SortedList.h>

#include <LINK/userobj/Testobj.h>

#include <LINK/stkWrapper/Wrapper.h>
#include <LINK/stkWrapper/Register.h>
#include <LINK/stkWrapper/ListWrapper.h>


typedef Testobj* _Testobj_;
typedef SortedList<Testobj* > _SortedList_Testobj__;
static SortedList<Testobj* > s__SortedList_Testobj__;

#define _SortedList_Testobj__DATA(x) ((SortedList<Testobj* >*) (EXTDATA(x)))
#define _SortedList_Testobj__IS_DATA(x) (TYPEP(x, tc_CXXwrapper) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<SortedList<Testobj* > >::type))
#define _SortedList_Testobj__ISNT_DATA(x) (!_SortedList_Testobj__IS_DATA(x))

#define _SortedList_Testobj__CXX_DATA(x) (*(SortedList<Testobj* >*) (EXTDATA(VAL(x))))
#define _SortedList_Testobj__CXX_IS_DATA(x) (INSTANCEP(x) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<SortedList<Testobj* > >::type))
#define _SortedList_Testobj__CXX_ISNT_DATA(x) (!_SortedList_Testobj__CXX_IS_DATA(x))


PRIMITIVE STk_init__SortedList_Testobj__()
{
	Wrapper<_SortedList_Testobj__>::type = STk_new_CXXwrapper_id(
			Wrapper<_SortedList_Testobj__>::name, 
			Wrapper<List<Testobj*> >::name,
			(void (*)(SCM x, SCM port, int mode))
			ListWrapper<_Testobj_>::displayTypedList,
			(void (*)(SCM x))ListWrapper<_Testobj_>::markTypedList,
			(void (*)(SCM x))ListWrapper<_Testobj_>::freeTypedList);
	Tcl_InitHashTable(&Register<_SortedList_Testobj__>::objTable, TCL_ONE_WORD_KEYS);
	return UNDEFINED;
}

void genExtra_SortedList_Testobj__Methods(void);

PRIMITIVE STk_init_methods__SortedList_Testobj__()
{
	genExtra_SortedList_Testobj__Methods();
	return UNDEFINED;
}
///home/berryj/link/bin/genMethods "-t" "Testobj" "-I" "LINK/userobj/Testobj.h" "-d" "userobj" "-y" "display_testobj" "-w" "free_testobj" 
#include <stk.h>
#include <LINK/stkWrapper/LINK_STk.h>

#include <LINK/userobj/Testobj.h>

#include <LINK/stkWrapper/Wrapper.h>
#include <LINK/stkWrapper/Register.h>

void display_testobj(SCM, SCM, int);
void free_testobj(SCM);

typedef Testobj _Testobj;

#define _TestobjDATA(x) ((Testobj*) (EXTDATA(x)))
#define _TestobjIS_DATA(x) (TYPEP(x, tc_CXXwrapper) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<Testobj >::type))
#define _TestobjISNT_DATA(x) (!_TestobjIS_DATA(x))

#define _TestobjCXX_DATA(x) (*(Testobj*) (EXTDATA(VAL(x))))
#define _TestobjCXX_IS_DATA(x) (INSTANCEP(x) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<Testobj >::type))
#define _TestobjCXX_ISNT_DATA(x) (!_TestobjCXX_IS_DATA(x))


PRIMITIVE STk_init__Testobj()
{
	Wrapper<_Testobj>::type = STk_new_CXXwrapper_id(
			Wrapper<_Testobj>::name, 
			"",
			(void (*)(SCM x, SCM port, int mode))
			display_testobj,
			(void (*)(SCM x))0,
			(void (*)(SCM x))free_testobj);
	Tcl_InitHashTable(&Register<_Testobj>::objTable, TCL_ONE_WORD_KEYS);
	return UNDEFINED;
}

void genExtra_TestobjMethods(void);

PRIMITIVE STk_init_methods__Testobj()
{
	genExtra_TestobjMethods();
	return UNDEFINED;
}
///home/berryj/link/bin/genMethods "-t" "Testobj*" "-I" "LINK/userobj/Testobj.h" "-d" "userobj" "-y" "display_testobjptr" "-m" "mark_testobjptr" "-w" "free_testobjptr" 
#include <stk.h>
#include <LINK/stkWrapper/LINK_STk.h>

#include <LINK/userobj/Testobj.h>

#include <LINK/stkWrapper/Wrapper.h>
#include <LINK/stkWrapper/Register.h>

void display_testobjptr(SCM, SCM, int);
void mark_testobjptr(SCM);
void free_testobjptr(SCM);

typedef Testobj* _Testobj_;

#define _Testobj_DATA(x) ((Testobj**) (EXTDATA(x)))
#define _Testobj_IS_DATA(x) (TYPEP(x, tc_CXXwrapper) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<Testobj* >::type))
#define _Testobj_ISNT_DATA(x) (!_Testobj_IS_DATA(x))

#define _Testobj_CXX_DATA(x) (*(Testobj**) (EXTDATA(VAL(x))))
#define _Testobj_CXX_IS_DATA(x) (INSTANCEP(x) && \
		TYPEP(STk_slot_ref(x,val_scm), tc_CXXwrapper) && \
		(EXTID(STk_slot_ref(x,val_scm)) == Wrapper<Testobj* >::type))
#define _Testobj_CXX_ISNT_DATA(x) (!_Testobj_CXX_IS_DATA(x))


static SCM is_Testobj_(SCM i)
{
	if (_Testobj_CXX_IS_DATA(i))
		return Truth;
	return Ntruth;
}

PRIMITIVE STk_init__Testobj_()
{
	Wrapper<_Testobj_>::type = STk_new_CXXwrapper_id(
			Wrapper<_Testobj_>::name, 
			"",
			(void (*)(SCM x, SCM port, int mode))
			display_testobjptr,
			(void (*)(SCM x))mark_testobjptr,
			(void (*)(SCM x))free_testobjptr);
	Tcl_InitHashTable(&Register<_Testobj_>::objTable, TCL_ONE_WORD_KEYS);
	STk_add_new_cpp_primitive("Testobj?", tc_subr_1,
	(PRIMITIVE (*)(...))  is_Testobj_);
	return UNDEFINED;
}

void genExtra_Testobj_Methods(void);

PRIMITIVE STk_init_methods__Testobj_()
{
	genExtra_Testobj_Methods();
	return UNDEFINED;
}
