1// leaving this undefined ensures we will get a linker error if we try to use SBTypeToSWIGWrapper()
2// for a type for which we did not specialze this function
3template <typename SBClass>
4PyObject*
5SBTypeToSWIGWrapper (SBClass* sb_object);
6
7template <typename SBClass>
8PyObject*
9SBTypeToSWIGWrapper (SBClass& sb_object)
10{
11    return SBTypeToSWIGWrapper(&sb_object);
12}
13
14template <typename SBClass>
15PyObject*
16SBTypeToSWIGWrapper (const SBClass& sb_object)
17{
18    return SBTypeToSWIGWrapper(&sb_object);
19}
20
21template <>
22PyObject*
23SBTypeToSWIGWrapper (PyObject* py_object)
24{
25    return py_object;
26}
27
28template <>
29PyObject*
30SBTypeToSWIGWrapper (unsigned int* c_int)
31{
32    if (!c_int)
33        return NULL;
34    return PyInt_FromLong(*c_int);
35}
36
37template <>
38PyObject*
39SBTypeToSWIGWrapper (lldb::SBEvent* event_sb)
40{
41    return SWIG_NewPointerObj((void *) event_sb, SWIGTYPE_p_lldb__SBEvent, 0);
42}
43
44template <>
45PyObject*
46SBTypeToSWIGWrapper (lldb::SBProcess* process_sb)
47{
48    return SWIG_NewPointerObj((void *) process_sb, SWIGTYPE_p_lldb__SBProcess, 0);
49}
50
51template <>
52PyObject*
53SBTypeToSWIGWrapper (lldb::SBThread* thread_sb)
54{
55    return SWIG_NewPointerObj((void *) thread_sb, SWIGTYPE_p_lldb__SBThread, 0);
56}
57
58template <>
59PyObject*
60SBTypeToSWIGWrapper (lldb::SBThreadPlan* thread_plan_sb)
61{
62    return SWIG_NewPointerObj((void *) thread_plan_sb, SWIGTYPE_p_lldb__SBThreadPlan, 0);
63}
64
65template <>
66PyObject*
67SBTypeToSWIGWrapper (lldb::SBTarget* target_sb)
68{
69    return SWIG_NewPointerObj((void *) target_sb, SWIGTYPE_p_lldb__SBTarget, 0);
70}
71
72template <>
73PyObject*
74SBTypeToSWIGWrapper (lldb::SBFrame* frame_sb)
75{
76    return SWIG_NewPointerObj((void *) frame_sb, SWIGTYPE_p_lldb__SBFrame, 0);
77}
78
79template <>
80PyObject*
81SBTypeToSWIGWrapper (lldb::SBDebugger* debugger_sb)
82{
83    return SWIG_NewPointerObj((void *) debugger_sb, SWIGTYPE_p_lldb__SBDebugger, 0);
84}
85
86template <>
87PyObject*
88SBTypeToSWIGWrapper (lldb::SBBreakpoint* breakpoint_sb)
89{
90    return SWIG_NewPointerObj((void *) breakpoint_sb, SWIGTYPE_p_lldb__SBBreakpoint, 0);
91}
92
93template <>
94PyObject*
95SBTypeToSWIGWrapper (lldb::SBWatchpoint* watchpoint_sb)
96{
97    return SWIG_NewPointerObj((void *) watchpoint_sb, SWIGTYPE_p_lldb__SBWatchpoint, 0);
98}
99
100template <>
101PyObject*
102SBTypeToSWIGWrapper (lldb::SBBreakpointLocation* breakpoint_location_sb)
103{
104    return SWIG_NewPointerObj((void *) breakpoint_location_sb, SWIGTYPE_p_lldb__SBBreakpointLocation, 0);
105}
106
107template <>
108PyObject*
109SBTypeToSWIGWrapper (lldb::SBBreakpointName* breakpoint_name_sb)
110{
111    return SWIG_NewPointerObj((void *) breakpoint_name_sb, SWIGTYPE_p_lldb__SBBreakpointName, 0);
112}
113
114template <>
115PyObject*
116SBTypeToSWIGWrapper (lldb::SBValue* value_sb)
117{
118    return SWIG_NewPointerObj((void *) value_sb, SWIGTYPE_p_lldb__SBValue, 0);
119}
120
121template <>
122PyObject*
123SBTypeToSWIGWrapper (lldb::SBCommandReturnObject* cmd_ret_obj_sb)
124{
125    return SWIG_NewPointerObj((void *) cmd_ret_obj_sb, SWIGTYPE_p_lldb__SBCommandReturnObject, 0);
126}
127
128template <>
129PyObject*
130SBTypeToSWIGWrapper (lldb::SBExecutionContext* ctx_sb)
131{
132    return SWIG_NewPointerObj((void *) ctx_sb, SWIGTYPE_p_lldb__SBExecutionContext, 0);
133}
134
135template <>
136PyObject*
137SBTypeToSWIGWrapper (lldb::SBTypeSummaryOptions* summary_options_sb)
138{
139    return SWIG_NewPointerObj((void *) summary_options_sb, SWIGTYPE_p_lldb__SBTypeSummaryOptions, 0);
140}
141
142template <>
143PyObject*
144SBTypeToSWIGWrapper (lldb::SBStructuredData* structured_data_sb)
145{
146    return SWIG_NewPointerObj((void *) structured_data_sb, SWIGTYPE_p_lldb__SBStructuredData, 0);
147}
148
149template <>
150PyObject*
151SBTypeToSWIGWrapper (lldb::SBSymbolContext* sym_ctx_sb)
152{
153    return SWIG_NewPointerObj((void *) sym_ctx_sb, SWIGTYPE_p_lldb__SBSymbolContext, 0);
154}
155