frepple::utils::PythonObject Class Reference

This class handles two-way translation between the data types in C++ and Python. More...

#include <utils.h>

Inheritance diagram for frepple::utils::PythonObject:

List of all members.

Public Member Functions

bool check (const MetaClass *c) const
bool check (const PythonType &c) const
bool getBool () const
Date getDate () const
double getDouble () const
int getInt () const
long getLong () const
string getString () const
TimePeriod getTimeperiod () const
unsigned long getUnsignedLong () const
 operator bool () const
 operator PyObject * () const
PythonObjectoperator= (const PythonObject &o)
 PythonObject ()
 PythonObject (const PyObject *o)
 PythonObject (Object *p)
 PythonObject (const string &val)
 PythonObject (const double val)
 PythonObject (const int val)
 PythonObject (const long val)
 PythonObject (const unsigned long val)
 PythonObject (const bool val)
 PythonObject (const TimePeriod val)
 PythonObject (const Date &val)

Detailed Description

This class handles two-way translation between the data types in C++ and Python.

This class is basically a wrapper around a PyObject pointer.

When creating a PythonObject from a C++ object, make sure to increment the reference count of the object.
When constructing a PythonObject from an existing Python object, the code that provided us the PyObject pointer should have incremented the reference count already.

Definition at line 2604 of file utils.h.


Constructor & Destructor Documentation

frepple::utils::PythonObject::PythonObject ( ) [inline, explicit]

Default constructor. The default value is equal to Py_None.

Definition at line 2611 of file utils.h.

frepple::utils::PythonObject::PythonObject ( const PyObject *  o) [inline]

Constructor from an existing Python object.
The reference count isn't increased.

Definition at line 2616 of file utils.h.

frepple::utils::PythonObject::PythonObject ( Object p)

Constructor from a pointer to an Object.
The metadata of the Object instances allow us to create a Python object that works as a proxy for the C++ object.

Definition at line 422 of file pythonutils.cpp.

frepple::utils::PythonObject::PythonObject ( const string &  val) [inline]

Convert a C++ string into a (raw) Python string.

Definition at line 2790 of file utils.h.

frepple::utils::PythonObject::PythonObject ( const double  val) [inline]

Convert a C++ double into a Python number.

Definition at line 2802 of file utils.h.

frepple::utils::PythonObject::PythonObject ( const int  val) [inline]

Convert a C++ integer into a Python integer.

Definition at line 2808 of file utils.h.

frepple::utils::PythonObject::PythonObject ( const long  val) [inline]

Convert a C++ long into a Python long.

Definition at line 2814 of file utils.h.

frepple::utils::PythonObject::PythonObject ( const unsigned long  val) [inline]

Convert a C++ unsigned long into a Python long.

Definition at line 2820 of file utils.h.

frepple::utils::PythonObject::PythonObject ( const bool  val) [inline]

Convert a C++ boolean into a Python boolean.

Definition at line 2826 of file utils.h.

frepple::utils::PythonObject::PythonObject ( const TimePeriod  val) [inline]

Convert a frePPLe TimePeriod into a Python number representing the number of seconds.

Definition at line 2834 of file utils.h.

frepple::utils::PythonObject::PythonObject ( const Date val)

Convert a frePPLe date into a Python datetime.datetime object.

Definition at line 365 of file pythonutils.cpp.


Member Function Documentation

bool frepple::utils::PythonObject::check ( const MetaClass c) const [inline]

Check whether the Python object is of a certain type.
Subclasses of the argument type will also give a true return value.

Definition at line 2637 of file utils.h.

bool frepple::utils::PythonObject::check ( const PythonType c) const [inline]

Check whether the Python object is of a certain type.
Subclasses of the argument type will also give a true return value.

Definition at line 2647 of file utils.h.

bool frepple::utils::PythonObject::getBool ( ) const [inline, virtual]

Convert a Python number into a C++ bool.

Reimplemented from frepple::utils::DataElement.

Definition at line 2756 of file utils.h.

Date frepple::utils::PythonObject::getDate ( ) const [virtual]

Convert a Python datetime.date or datetime.datetime object into a frePPLe date.

Reimplemented from frepple::utils::DataElement.

Definition at line 387 of file pythonutils.cpp.

double frepple::utils::PythonObject::getDouble ( ) const [inline, virtual]

Convert a Python number or string into a C++ double.

Reimplemented from frepple::utils::DataElement.

Definition at line 2703 of file utils.h.

int frepple::utils::PythonObject::getInt ( ) const [inline, virtual]

Convert a Python number or string into a C++ integer.

Reimplemented from frepple::utils::DataElement.

Definition at line 2718 of file utils.h.

long frepple::utils::PythonObject::getLong ( ) const [inline, virtual]

Convert a Python number into a C++ long.

Reimplemented from frepple::utils::DataElement.

Definition at line 2737 of file utils.h.

string frepple::utils::PythonObject::getString ( ) const [inline, virtual]

Convert a Python string into a C++ string.

Reimplemented from frepple::utils::DataElement.

Definition at line 2655 of file utils.h.

TimePeriod frepple::utils::PythonObject::getTimeperiod ( ) const [inline, virtual]

Convert a Python number as a number of seconds into a frePPLe TimePeriod.
A TimePeriod is represented as a number of seconds in Python.

Reimplemented from frepple::utils::DataElement.

Definition at line 2765 of file utils.h.

unsigned long frepple::utils::PythonObject::getUnsignedLong ( ) const [inline, virtual]

Extract an unsigned long from the Python object.

Reimplemented from frepple::utils::DataElement.

Definition at line 2682 of file utils.h.

frepple::utils::PythonObject::operator bool ( ) const [inline, virtual]

Check for null value.

Reimplemented from frepple::utils::DataElement.

Reimplemented in frepple::utils::PythonFunction.

Definition at line 2623 of file utils.h.

frepple::utils::PythonObject::operator PyObject * ( ) const [inline]

This conversion operator casts the object back to a PyObject pointer.

Definition at line 2620 of file utils.h.

PythonObject& frepple::utils::PythonObject::operator= ( const PythonObject o) [inline]

Assignment operator.

Definition at line 2626 of file utils.h.


The documentation for this class was generated from the following files:

Documentation generated for frePPLe by  doxygen