~z-man/armagetronad/0.4-armagetronad-ct-unified

« back to all changes in this revision

Viewing changes to src/swig/ext/python.i

  • Committer: Voodoo
  • Date: 2012-04-06 15:54:12 UTC
  • Revision ID: erollet@yahoo.fr-20120406155412-sy2qxgd66zxeb36x
reorganize .i files + fix some warnings

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
%{
 
2
#include "scripting/sScripting.h"
 
3
extern sCallable::ptr CreateCallablePython(PyObject * input);
 
4
#include "tString.h"
 
5
#include <string>"
 
6
%}
 
7
 
 
8
%import "std_string.i"
 
9
 
 
10
%typemap(in) sCallable::ptr {
 
11
    $1 = CreateCallablePython($input);
 
12
}
 
13
 
 
14
/* Return the results as a string object in the scripting language */
 
15
%typemap(argout) std::ostream&
 
16
{
 
17
    std::ostringstream *output = static_cast<std::ostringstream *> ($1);
 
18
    Py_DECREF($result);
 
19
    $result = PyString_FromString(output->str().c_str());
 
20
}
 
21
/* This typemap allows the scripting language to pass in a string
 
22
   which will be converted to an istringstream */
 
23
%typemap(in) std::istream& (std::stringstream stream)
 
24
{
 
25
    if (!PyString_Check($input))
 
26
    {
 
27
        PyErr_SetString(PyExc_TypeError, "not a string");
 
28
        return NULL;
 
29
    }
 
30
    std::string str(PyString_AsString($input));
 
31
    stream << str;
 
32
    $1 = &stream;
 
33
}
 
34
 
 
35
 
 
36
%typemap(in) tString {
 
37
    $1 = tString(PyString_AsString($input));
 
38
}
 
39
%typemap(in) tString & (tString str) {
 
40
    str=PyString_AsString($input);
 
41
    $1 = &str;
 
42
}
 
43
%typemap(out) tString {
 
44
    $result = PyString_FromString($1.c_str());
 
45
}
 
46
%typemap(out) tString * {
 
47
    $result = PyString_FromString($1->c_str());
 
48
}
 
49
%typemap(out) tString & {
 
50
    $result = PyString_FromString($1->c_str());
 
51
}
 
52
 
 
53