1359575Sdim// leaving this undefined ensures we will get a linker error if we try to use SBTypeToSWIGWrapper()
2359575Sdim// for a type for which we did not specialze this function
3359575Sdimtemplate <typename SBClass>
4359575SdimPyObject*
5359575SdimSBTypeToSWIGWrapper (SBClass* sb_object);
6359575Sdim
7359575Sdimtemplate <typename SBClass>
8359575SdimPyObject*
9359575SdimSBTypeToSWIGWrapper (SBClass& sb_object)
10359575Sdim{
11359575Sdim    return SBTypeToSWIGWrapper(&sb_object);
12359575Sdim}
13359575Sdim
14359575Sdimtemplate <typename SBClass>
15359575SdimPyObject*
16359575SdimSBTypeToSWIGWrapper (const SBClass& sb_object)
17359575Sdim{
18359575Sdim    return SBTypeToSWIGWrapper(&sb_object);
19359575Sdim}
20359575Sdim
21359575Sdimtemplate <>
22359575SdimPyObject*
23359575SdimSBTypeToSWIGWrapper (PyObject* py_object)
24359575Sdim{
25359575Sdim    return py_object;
26359575Sdim}
27359575Sdim
28359575Sdimtemplate <>
29359575SdimPyObject*
30359575SdimSBTypeToSWIGWrapper (unsigned int* c_int)
31359575Sdim{
32359575Sdim    if (!c_int)
33359575Sdim        return NULL;
34359575Sdim    return PyInt_FromLong(*c_int);
35359575Sdim}
36359575Sdim
37359575Sdimtemplate <>
38359575SdimPyObject*
39359575SdimSBTypeToSWIGWrapper (lldb::SBEvent* event_sb)
40359575Sdim{
41359575Sdim    return SWIG_NewPointerObj((void *) event_sb, SWIGTYPE_p_lldb__SBEvent, 0);
42359575Sdim}
43359575Sdim
44359575Sdimtemplate <>
45359575SdimPyObject*
46359575SdimSBTypeToSWIGWrapper (lldb::SBProcess* process_sb)
47359575Sdim{
48359575Sdim    return SWIG_NewPointerObj((void *) process_sb, SWIGTYPE_p_lldb__SBProcess, 0);
49359575Sdim}
50359575Sdim
51359575Sdimtemplate <>
52359575SdimPyObject*
53359575SdimSBTypeToSWIGWrapper (lldb::SBThread* thread_sb)
54359575Sdim{
55359575Sdim    return SWIG_NewPointerObj((void *) thread_sb, SWIGTYPE_p_lldb__SBThread, 0);
56359575Sdim}
57359575Sdim
58359575Sdimtemplate <>
59359575SdimPyObject*
60359575SdimSBTypeToSWIGWrapper (lldb::SBThreadPlan* thread_plan_sb)
61359575Sdim{
62359575Sdim    return SWIG_NewPointerObj((void *) thread_plan_sb, SWIGTYPE_p_lldb__SBThreadPlan, 0);
63359575Sdim}
64359575Sdim
65359575Sdimtemplate <>
66359575SdimPyObject*
67359575SdimSBTypeToSWIGWrapper (lldb::SBTarget* target_sb)
68359575Sdim{
69359575Sdim    return SWIG_NewPointerObj((void *) target_sb, SWIGTYPE_p_lldb__SBTarget, 0);
70359575Sdim}
71359575Sdim
72359575Sdimtemplate <>
73359575SdimPyObject*
74359575SdimSBTypeToSWIGWrapper (lldb::SBFrame* frame_sb)
75359575Sdim{
76359575Sdim    return SWIG_NewPointerObj((void *) frame_sb, SWIGTYPE_p_lldb__SBFrame, 0);
77359575Sdim}
78359575Sdim
79359575Sdimtemplate <>
80359575SdimPyObject*
81359575SdimSBTypeToSWIGWrapper (lldb::SBDebugger* debugger_sb)
82359575Sdim{
83359575Sdim    return SWIG_NewPointerObj((void *) debugger_sb, SWIGTYPE_p_lldb__SBDebugger, 0);
84359575Sdim}
85359575Sdim
86359575Sdimtemplate <>
87359575SdimPyObject*
88359575SdimSBTypeToSWIGWrapper (lldb::SBBreakpoint* breakpoint_sb)
89359575Sdim{
90359575Sdim    return SWIG_NewPointerObj((void *) breakpoint_sb, SWIGTYPE_p_lldb__SBBreakpoint, 0);
91359575Sdim}
92359575Sdim
93359575Sdimtemplate <>
94359575SdimPyObject*
95359575SdimSBTypeToSWIGWrapper (lldb::SBWatchpoint* watchpoint_sb)
96359575Sdim{
97359575Sdim    return SWIG_NewPointerObj((void *) watchpoint_sb, SWIGTYPE_p_lldb__SBWatchpoint, 0);
98359575Sdim}
99359575Sdim
100359575Sdimtemplate <>
101359575SdimPyObject*
102359575SdimSBTypeToSWIGWrapper (lldb::SBBreakpointLocation* breakpoint_location_sb)
103359575Sdim{
104359575Sdim    return SWIG_NewPointerObj((void *) breakpoint_location_sb, SWIGTYPE_p_lldb__SBBreakpointLocation, 0);
105359575Sdim}
106359575Sdim
107359575Sdimtemplate <>
108359575SdimPyObject*
109359575SdimSBTypeToSWIGWrapper (lldb::SBBreakpointName* breakpoint_name_sb)
110359575Sdim{
111359575Sdim    return SWIG_NewPointerObj((void *) breakpoint_name_sb, SWIGTYPE_p_lldb__SBBreakpointName, 0);
112359575Sdim}
113359575Sdim
114359575Sdimtemplate <>
115359575SdimPyObject*
116359575SdimSBTypeToSWIGWrapper (lldb::SBValue* value_sb)
117359575Sdim{
118359575Sdim    return SWIG_NewPointerObj((void *) value_sb, SWIGTYPE_p_lldb__SBValue, 0);
119359575Sdim}
120359575Sdim
121359575Sdimtemplate <>
122359575SdimPyObject*
123359575SdimSBTypeToSWIGWrapper (lldb::SBCommandReturnObject* cmd_ret_obj_sb)
124359575Sdim{
125359575Sdim    return SWIG_NewPointerObj((void *) cmd_ret_obj_sb, SWIGTYPE_p_lldb__SBCommandReturnObject, 0);
126359575Sdim}
127359575Sdim
128359575Sdimtemplate <>
129359575SdimPyObject*
130359575SdimSBTypeToSWIGWrapper (lldb::SBExecutionContext* ctx_sb)
131359575Sdim{
132359575Sdim    return SWIG_NewPointerObj((void *) ctx_sb, SWIGTYPE_p_lldb__SBExecutionContext, 0);
133359575Sdim}
134359575Sdim
135359575Sdimtemplate <>
136359575SdimPyObject*
137359575SdimSBTypeToSWIGWrapper (lldb::SBTypeSummaryOptions* summary_options_sb)
138359575Sdim{
139359575Sdim    return SWIG_NewPointerObj((void *) summary_options_sb, SWIGTYPE_p_lldb__SBTypeSummaryOptions, 0);
140359575Sdim}
141359575Sdim
142359575Sdimtemplate <>
143359575SdimPyObject*
144359575SdimSBTypeToSWIGWrapper (lldb::SBStructuredData* structured_data_sb)
145359575Sdim{
146359575Sdim    return SWIG_NewPointerObj((void *) structured_data_sb, SWIGTYPE_p_lldb__SBStructuredData, 0);
147359575Sdim}
148359575Sdim
149359575Sdimtemplate <>
150359575SdimPyObject*
151359575SdimSBTypeToSWIGWrapper (lldb::SBSymbolContext* sym_ctx_sb)
152359575Sdim{
153359575Sdim    return SWIG_NewPointerObj((void *) sym_ctx_sb, SWIGTYPE_p_lldb__SBSymbolContext, 0);
154359575Sdim}
155