Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / amd64 / share / swig / 1.3.26 / python / std_wstring.i
CommitLineData
920dae64
AT
1//
2// std::wstring
3//
4
5#ifndef SWIG_STD_BASIC_STRING
6#define SWIG_STD_WSTRING
7
8%{
9#include <cwchar>
10%}
11
12%include <pywstrings.swg>
13
14namespace std
15{
16 %feature("novaluewrapper") wstring;
17 class wstring;
18}
19
20/* defining the std::string asptr/from methods */
21
22%fragment(SWIG_AsPtr_frag(std::wstring),"header",
23 fragment="SWIG_AsWCharPtrAndSize") {
24SWIGINTERN int
25 SWIG_AsPtr(std::wstring)(PyObject* obj, std::wstring **val)
26 {
27 static swig_type_info* string_info = SWIG_TypeQuery("std::wstring *");
28 std::wstring *vptr;
29 if (SWIG_ConvertPtr(obj, (void**)&vptr, string_info, 0) != -1) {
30 if (val) *val = vptr;
31 return SWIG_OLDOBJ;
32 } else {
33 PyErr_Clear();
34 wchar_t *buf = 0 ; size_t size = 0;
35 int res = 0;
36 if ((res = SWIG_AsWCharPtrAndSize(obj, &buf, &size))) {
37 if (buf) {
38 if (val) *val = new std::wstring(buf, size - 1);
39 if (res == SWIG_NEWOBJ) SWIG_delete_array(buf);
40 return SWIG_NEWOBJ;
41 }
42 } else {
43 PyErr_Clear();
44 }
45 if (val) {
46 PyErr_SetString(PyExc_TypeError,"a wstring is expected");
47 }
48 return 0;
49 }
50 }
51
52}
53
54%fragment(SWIG_From_frag(std::wstring),"header",
55 fragment="SWIG_FromWCharArray") {
56SWIGINTERNINLINE PyObject*
57 SWIG_From(std::wstring)(const std::wstring& s)
58 {
59 return SWIG_FromWCharArray(s.data(), s.size());
60 }
61}
62
63
64%fragment(SWIG_AsVal_frag(std::wstring),"header",
65 fragment=SWIG_AsPtr_frag(std::wstring)) {
66SWIGINTERN int
67 SWIG_AsVal(std::wstring)(PyObject* obj, std::wstring *val)
68 {
69 std::wstring *s;
70 int res = SWIG_AsPtr(std::wstring)(obj, &s);
71 if ((res != 0) && s) {
72 if (val) *val = *s;
73 if (res == SWIG_NEWOBJ) delete s;
74 return res;
75 }
76 if (val) {
77 PyErr_SetString(PyExc_TypeError,"a wstring is expected");
78 }
79 return 0;
80 }
81}
82
83%typemap_asptrfromn(SWIG_CCode(UNISTRING), std::wstring);
84
85#else
86
87%include <std/std_wstring.i>
88
89#endif