SST 12.1.0
Structural Simulation Toolkit
pymodel_stat.h
1// -*- c++ -*-
2
3// Copyright 2009-2022 NTESS. Under the terms
4// of Contract DE-NA0003525 with NTESS, the U.S.
5// Government retains certain rights in this software.
6//
7// Copyright (c) 2009-2022, NTESS
8// All rights reserved.
9//
10// This file is part of the SST software package. For license
11// information, see the LICENSE file in the top level directory of the
12// distribution.
13
14#ifndef SST_CORE_MODEL_PYTHON_PYMODEL_STAT_H
15#define SST_CORE_MODEL_PYTHON_PYMODEL_STAT_H
16
17#include "sst/core/sst_types.h"
18#include "sst/core/warnmacros.h"
19
20DISABLE_WARN_DEPRECATED_REGISTER
21#include <Python.h>
22REENABLE_WARNING
23
24namespace SST {
25class ConfigStatistic;
26
27extern "C" {
28
29struct StatisticPy_t;
30struct PyStatistic;
31
33{
34 StatisticId_t id;
35
36 PyStatistic(StatisticId_t id) : id(id) {}
37 virtual ~PyStatistic() {}
38 ConfigStatistic* getStat();
39 int compare(PyStatistic* other);
40 StatisticId_t getID();
41};
42
44{
45 PyObject_HEAD PyStatistic* obj;
46};
47
48extern PyTypeObject PyModel_StatType;
49
50static inline ConfigStatistic*
51getStat(PyObject* pobj)
52{
53 ConfigStatistic* c = ((StatisticPy_t*)pobj)->obj->getStat();
54 if ( c == nullptr ) { PyErr_SetString(PyExc_RuntimeError, "Failed to find ConfigStatistic"); }
55 return c;
56}
57
58} /* extern C */
59
60} // namespace SST
61
62#endif // SST_CORE_MODEL_PYTHON_PYMODEL_STAT_H
Definition: configGraph.h:126
Definition: pymodel_stat.h:33
Definition: pymodel_stat.h:44