Update to version 3.2
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
%feature("notabstract") Gempa::CAPS::AnyDataRecord;
|
||||
%feature("notabstract") Gempa::CAPS::AnyDataRecord;
|
||||
%include "stdint.i"
|
||||
|
||||
%init
|
||||
@@ -27,83 +27,122 @@ typedef Gempa::CAPS::Plugin::Buffer Buffer;
|
||||
%}
|
||||
|
||||
%extend Gempa::CAPS::Plugin {
|
||||
Gempa::CAPS::Plugin::Status push(const std::string &net, const std::string &sta,
|
||||
const std::string &loc, const std::string &cha,
|
||||
const Time &stime, int16_t numerator, int16_t denominator,
|
||||
const std::string &uom,
|
||||
PyObject *obj, int type
|
||||
) {
|
||||
PyArrayObject *arr = NULL;
|
||||
Gempa::CAPS::DataType dataType = (Gempa::CAPS::DataType)type;
|
||||
Gempa::CAPS::Plugin::Status status = Gempa::CAPS::Plugin::PacketLoss;
|
||||
switch(type) {
|
||||
case Gempa::CAPS::DT_INT8:
|
||||
arr = (PyArrayObject*) PyArray_ContiguousFromObject(obj, PyArray_CHAR, 1, 1);
|
||||
if ( arr == NULL )
|
||||
break;
|
||||
Gempa::CAPS::Plugin::Status push(const std::string &net, const std::string &sta,
|
||||
const std::string &loc, const std::string &cha,
|
||||
const Time &stime, int16_t numerator, int16_t denominator,
|
||||
const std::string &uom,
|
||||
PyObject *obj, int type) {
|
||||
PyArrayObject *arr = NULL;
|
||||
Gempa::CAPS::DataType dataType = (Gempa::CAPS::DataType)type;
|
||||
Gempa::CAPS::Plugin::Status status = Gempa::CAPS::Plugin::PacketLoss;
|
||||
switch ( type ) {
|
||||
case Gempa::CAPS::DT_INT8:
|
||||
arr = (PyArrayObject*) PyArray_ContiguousFromObject(obj, NPY_INT8, 1, 1);
|
||||
if ( arr == NULL )
|
||||
break;
|
||||
|
||||
status = self->push(net, sta, loc, cha, stime, numerator, denominator,
|
||||
uom, (int8_t*)(arr->data), arr->dimensions[0], dataType);
|
||||
break;
|
||||
case Gempa::CAPS::DT_INT16:
|
||||
arr = (PyArrayObject*) PyArray_ContiguousFromObject(obj, PyArray_INT16, 1, 1);
|
||||
if ( arr == NULL )
|
||||
break;
|
||||
status = self->push(net, sta, loc, cha, stime, numerator, denominator,
|
||||
uom, (int8_t*)(arr->data), arr->dimensions[0], dataType);
|
||||
break;
|
||||
case Gempa::CAPS::DT_INT16:
|
||||
arr = (PyArrayObject*) PyArray_ContiguousFromObject(obj, NPY_INT16, 1, 1);
|
||||
if ( arr == NULL )
|
||||
break;
|
||||
|
||||
status = self->push(net, sta, loc, cha, stime, numerator, denominator,
|
||||
uom, (int16_t*)(arr->data), arr->dimensions[0], dataType);
|
||||
break;
|
||||
case Gempa::CAPS::DT_INT32:
|
||||
arr = (PyArrayObject*) PyArray_ContiguousFromObject(obj, PyArray_INT32, 1, 1);
|
||||
if ( arr == NULL )
|
||||
break;
|
||||
status = self->push(net, sta, loc, cha, stime, numerator, denominator,
|
||||
uom, (int16_t*)(arr->data), arr->dimensions[0], dataType);
|
||||
break;
|
||||
case Gempa::CAPS::DT_INT32:
|
||||
arr = (PyArrayObject*) PyArray_ContiguousFromObject(obj, NPY_INT32, 1, 1);
|
||||
if ( arr == NULL )
|
||||
break;
|
||||
|
||||
status = self->push(net, sta, loc, cha, stime, numerator, denominator,
|
||||
uom, (int32_t*)(arr->data), arr->dimensions[0], dataType);
|
||||
break;
|
||||
case Gempa::CAPS::DT_FLOAT:
|
||||
arr = (PyArrayObject*) PyArray_ContiguousFromObject(obj, PyArray_FLOAT32, 1, 1);
|
||||
if ( arr == NULL )
|
||||
break;
|
||||
status = self->push(net, sta, loc, cha, stime, numerator, denominator,
|
||||
uom, (int32_t*)(arr->data), arr->dimensions[0], dataType);
|
||||
break;
|
||||
case Gempa::CAPS::DT_FLOAT:
|
||||
arr = (PyArrayObject*) PyArray_ContiguousFromObject(obj, NPY_FLOAT32, 1, 1);
|
||||
if ( arr == NULL )
|
||||
break;
|
||||
|
||||
status = self->push(net, sta, loc, cha, stime, numerator, denominator,
|
||||
uom, (float*)(arr->data), arr->dimensions[0], dataType);
|
||||
break;
|
||||
case Gempa::CAPS::DT_DOUBLE:
|
||||
arr = (PyArrayObject*) PyArray_ContiguousFromObject(obj, PyArray_FLOAT64, 1, 1);
|
||||
if ( arr == NULL )
|
||||
break;
|
||||
status = self->push(net, sta, loc, cha, stime, numerator, denominator,
|
||||
uom, (float*)(arr->data), arr->dimensions[0], dataType);
|
||||
break;
|
||||
case Gempa::CAPS::DT_DOUBLE:
|
||||
arr = (PyArrayObject*) PyArray_ContiguousFromObject(obj, NPY_FLOAT64, 1, 1);
|
||||
if ( arr == NULL )
|
||||
break;
|
||||
|
||||
status = self->push(net, sta, loc, cha, stime, numerator, denominator,
|
||||
uom, (double*)(arr->data), arr->dimensions[0], dataType);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
status = self->push(net, sta, loc, cha, stime, numerator, denominator,
|
||||
uom, (double*)(arr->data), arr->dimensions[0], dataType);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Py_XDECREF(arr);
|
||||
return status;
|
||||
}
|
||||
Py_XDECREF(arr);
|
||||
return status;
|
||||
}
|
||||
|
||||
Gempa::CAPS::Plugin::Status push(const std::string &net, const std::string &sta,
|
||||
const std::string &loc, const std::string &cha,
|
||||
const Time &stime, uint16_t numerator,
|
||||
uint16_t denominator, const std::string &format,
|
||||
PyObject *obj) {
|
||||
char *data;
|
||||
Py_ssize_t len;
|
||||
if ( PyBytes_AsStringAndSize(obj, &data, &len) == -1 )
|
||||
return Gempa::CAPS::Plugin::PacketLoss;
|
||||
Gempa::CAPS::Plugin::Status push(const std::string &net, const std::string &sta,
|
||||
const std::string &loc, const std::string &cha,
|
||||
const std::string &uom, PyObject *obj) {
|
||||
char *data;
|
||||
Py_ssize_t len;
|
||||
if ( PyBytes_AsStringAndSize(obj, &data, &len) == -1 )
|
||||
return Gempa::CAPS::Plugin::PacketLoss;
|
||||
|
||||
Gempa::CAPS::MSEEDDataRecord *mseed = new Gempa::CAPS::MSEEDDataRecord;
|
||||
Gempa::CAPS::DataRecordPtr rec(mseed);
|
||||
mseed->setData(data ,len);
|
||||
|
||||
return self->push(net, sta, loc, cha, rec, uom);
|
||||
}
|
||||
|
||||
Gempa::CAPS::Plugin::Status push(const std::string &net, const std::string &sta,
|
||||
const std::string &loc, const std::string &cha,
|
||||
const Time &stime, uint16_t numerator,
|
||||
uint16_t denominator, const std::string &format,
|
||||
PyObject *obj) {
|
||||
char *data;
|
||||
Py_ssize_t len;
|
||||
if ( PyBytes_AsStringAndSize(obj, &data, &len) == -1 )
|
||||
return Gempa::CAPS::Plugin::PacketLoss;
|
||||
|
||||
return self->push(net, sta, loc, cha, stime, numerator,
|
||||
denominator, format, data, len);
|
||||
}
|
||||
|
||||
Gempa::CAPS::Plugin::Status pushAny(const std::string &net, const std::string &sta,
|
||||
const std::string &loc, const std::string &cha,
|
||||
const Time &stime, const Time &etime,
|
||||
uint16_t numerator, uint16_t denominator,
|
||||
const std::string &format, const std::string &uom,
|
||||
PyObject *obj) {
|
||||
char *data;
|
||||
Py_ssize_t len;
|
||||
if ( PyBytes_AsStringAndSize(obj, &data, &len) == -1 )
|
||||
return Gempa::CAPS::Plugin::PacketLoss;
|
||||
|
||||
return self->pushAny(net, sta, loc, cha, stime, etime,
|
||||
numerator, denominator, format, uom, data, len);
|
||||
}
|
||||
|
||||
return self->push(net, sta, loc, cha, stime, numerator,
|
||||
denominator, format, data, len);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
%include "exception.i"
|
||||
%include "std_string.i"
|
||||
%include "numpy.i"
|
||||
|
||||
|
||||
%exception Gempa::CAPS::Plugin::push {
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
$action
|
||||
Py_END_ALLOW_THREADS
|
||||
}
|
||||
|
||||
|
||||
%include "gempa/caps/api.h"
|
||||
%include "gempa/caps/datetime.h"
|
||||
%include "gempa/caps/packet.h"
|
||||
@@ -115,7 +154,9 @@ typedef Gempa::CAPS::Plugin::Buffer Buffer;
|
||||
%include "gempa/caps/encoderfactory.h"
|
||||
%include "gempa/caps/mseedpacket.h"
|
||||
typedef Gempa::CAPS::Plugin::Buffer Buffer;
|
||||
%apply SWIGTYPE *DISOWN {Gempa::CAPS::EncoderFactory *factory};
|
||||
%include "gempa/caps/plugin.h"
|
||||
%clear Gempa::CAPS::EncoderFactory *factory;
|
||||
%include "gempa/caps/rawpacket.h"
|
||||
%include "gempa/caps/riff.h"
|
||||
%include "gempa/caps/rtcm2packet.h"
|
||||
|
||||
Reference in New Issue
Block a user