void TickCursor::decodeHeader()

in src/tick_cursor.cpp [139:165]


void TickCursor::decodeHeader(PyObject * message_object) {
    //decode timestamp
    PythonRefHolder ts_obj(PyLong_FromLongLong(instrument_message_->timestamp));
    PyObject_SetAttr(message_object, TIMESTAMP_PROPERTY1, ts_obj.getReference());

    //decode symbol
    const std::string *symbol_string = cursor_->getInstrument(instrument_message_->entityId);
    if (symbol_string == NULL) {
        PyObject_SetAttr(message_object, SYMBOL_PROPERTY1, Py_None);
    } else {
        PythonRefHolder symbol_obj(PyUnicode_FromString(symbol_string->c_str()));
        PyObject_SetAttr(message_object, SYMBOL_PROPERTY1, symbol_obj.getReference());
    }

    //decode type id
    PythonRefHolder type_id_obj(PyLong_FromLong(instrument_message_->typeId));
    PyObject_SetAttr(message_object, TYPE_ID_PROPERTY1, type_id_obj.getReference());

    //decode type name
    const std::string *type_name_string = cursor_->getMessageTypeName(instrument_message_->typeId);
    if (type_name_string == NULL) {
        PyObject_SetAttr(message_object, TYPE_NAME_PROPERTY1, Py_None);
    } else {
        PythonRefHolder type_name_obj(PyUnicode_FromString(type_name_string->c_str()));
        PyObject_SetAttr(message_object, TYPE_NAME_PROPERTY1, type_name_obj.getReference());
    }
}