FreeCAD

Форк
0
/
StringIDPyImp.cpp 
100 строк · 3.2 Кб
1
/***************************************************************************
2
*   Copyright (c) 2018 Zheng Lei (realthunder) <realthunder.dev@gmail.com> *
3
*                                                                          *
4
*   This file is part of the FreeCAD CAx development system.               *
5
*                                                                          *
6
*   This library is free software; you can redistribute it and/or          *
7
*   modify it under the terms of the GNU Library General Public            *
8
*   License as published by the Free Software Foundation; either           *
9
*   version 2 of the License, or (at your option) any later version.       *
10
*                                                                          *
11
*   This library  is distributed in the hope that it will be useful,       *
12
*   but WITHOUT ANY WARRANTY; without even the implied warranty of         *
13
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
14
*   GNU Library General Public License for more details.                   *
15
*                                                                          *
16
*   You should have received a copy of the GNU Library General Public      *
17
*   License along with this library; see the file COPYING.LIB. If not,     *
18
*   write to the Free Software Foundation, Inc., 59 Temple Place,          *
19
*   Suite 330, Boston, MA  02111-1307, USA                                 *
20
*                                                                          *
21
****************************************************************************/
22

23
#include "PreCompiled.h"
24

25
#include "StringHasher.h"
26

27
#include "StringIDPy.h"
28
#include "StringIDPy.cpp"
29

30
using namespace App;
31

32
// returns a string which represent the object e.g. when printed in python
33
std::string StringIDPy::representation() const
34
{
35
    return getStringIDPtr()->toString(this->_index);
36
}
37

38
PyObject* StringIDPy::isSame(PyObject *args)
39
{
40
    PyObject *other = nullptr;
41
    if (!PyArg_ParseTuple(args, "O!", &StringIDPy::Type, &other)) {
42
        return nullptr;
43
    }
44

45
    auto *otherPy = static_cast<StringIDPy*>(other);
46
    bool same = (otherPy->getStringIDPtr() == this->getStringIDPtr())
47
                && (otherPy->_index == this->_index);
48

49
    return PyBool_FromLong(same ? 1 : 0);
50
}
51

52
Py::Long StringIDPy::getValue() const
53
{
54
    return Py::Long(getStringIDPtr()->value());
55
}
56

57
Py::List StringIDPy::getRelated() const
58
{
59
    Py::List list;
60
    for (const auto &id : getStringIDPtr()->relatedIDs()) {
61
        list.append(Py::Long(id.value()));
62
    }
63

64
    return list;
65
}
66

67
Py::String StringIDPy::getData() const
68
{
69
    return {getStringIDPtr()->dataToText(this->_index)};
70
}
71

72
Py::Boolean StringIDPy::getIsBinary() const
73
{
74
    return {getStringIDPtr()->isBinary()};
75
}
76

77
Py::Boolean StringIDPy::getIsHashed() const
78
{
79
    return {getStringIDPtr()->isHashed()};
80
}
81

82
Py::Long StringIDPy::getIndex() const
83
{
84
    return Py::Long(this->_index);
85
}
86

87
void StringIDPy::setIndex(Py::Long index)
88
{
89
    this->_index = index;
90
}
91

92
PyObject *StringIDPy::getCustomAttributes(const char* /*attr*/) const
93
{
94
    return nullptr;
95
}
96

97
int StringIDPy::setCustomAttributes(const char* /*attr*/, PyObject* /*obj*/)
98
{
99
    return 0;
100
}
101

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.