Initial commit based on common repo commit ffeb9c9b
This commit is contained in:
		
							
								
								
									
										125
									
								
								libs/swig/gempa/CAPS.i
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								libs/swig/gempa/CAPS.i
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,125 @@
 | 
			
		||||
%feature("notabstract") Gempa::CAPS::AnyDataRecord;
 | 
			
		||||
%include "stdint.i"
 | 
			
		||||
 | 
			
		||||
%init
 | 
			
		||||
%{
 | 
			
		||||
import_array();
 | 
			
		||||
%}
 | 
			
		||||
 | 
			
		||||
%module CAPS
 | 
			
		||||
%{
 | 
			
		||||
#define SWIG_FILE_WITH_INIT
 | 
			
		||||
#include <gempa/caps/utils.h>
 | 
			
		||||
#include <gempa/caps/anypacket.h>
 | 
			
		||||
#include <gempa/caps/datetime.h>
 | 
			
		||||
#include <gempa/caps/log.h>
 | 
			
		||||
#include <gempa/caps/mseedpacket.h>
 | 
			
		||||
#include <gempa/caps/packet.h>
 | 
			
		||||
#include <gempa/caps/plugin.h>
 | 
			
		||||
typedef Gempa::CAPS::Plugin::Buffer Buffer;
 | 
			
		||||
#include <gempa/caps/rawpacket.h>
 | 
			
		||||
#include <gempa/caps/riff.h>
 | 
			
		||||
#include <gempa/caps/rtcm2packet.h>
 | 
			
		||||
#include <gempa/caps/socket.h>
 | 
			
		||||
#include <gempa/caps/mseed/spclock.h>
 | 
			
		||||
#include <numpy/ndarrayobject.h>
 | 
			
		||||
 | 
			
		||||
%}
 | 
			
		||||
 | 
			
		||||
%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;
 | 
			
		||||
 | 
			
		||||
                                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, (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, (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, (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, (double*)(arr->data), arr->dimensions[0], dataType);
 | 
			
		||||
                                break;
 | 
			
		||||
                        default:
 | 
			
		||||
                                break;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                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;
 | 
			
		||||
 | 
			
		||||
                return self->push(net, sta, loc, cha, stime, numerator,
 | 
			
		||||
                                  denominator, format, data, len);
 | 
			
		||||
        }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
%include "exception.i"
 | 
			
		||||
%include "std_string.i"
 | 
			
		||||
%include "numpy.i"
 | 
			
		||||
 | 
			
		||||
%include "gempa/caps/api.h"
 | 
			
		||||
%include "gempa/caps/datetime.h"
 | 
			
		||||
%include "gempa/caps/packet.h"
 | 
			
		||||
%include "gempa/caps/pluginpacket.h"
 | 
			
		||||
%include "gempa/caps/anypacket.h"
 | 
			
		||||
%include "gempa/caps/log.h"
 | 
			
		||||
%include "gempa/caps/mseed/spclock.h"
 | 
			
		||||
%include "gempa/caps/mseed/encoder.h"
 | 
			
		||||
%include "gempa/caps/encoderfactory.h"
 | 
			
		||||
%include "gempa/caps/mseedpacket.h"
 | 
			
		||||
typedef Gempa::CAPS::Plugin::Buffer Buffer;
 | 
			
		||||
%include "gempa/caps/plugin.h"
 | 
			
		||||
%include "gempa/caps/rawpacket.h"
 | 
			
		||||
%include "gempa/caps/riff.h"
 | 
			
		||||
%include "gempa/caps/rtcm2packet.h"
 | 
			
		||||
%include "gempa/caps/socket.h"
 | 
			
		||||
%include <carrays.i>
 | 
			
		||||
%array_class(char, charArray);
 | 
			
		||||
%include "gempa/caps/utils.h"
 | 
			
		||||
							
								
								
									
										1928
									
								
								libs/swig/gempa/CAPS.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1928
									
								
								libs/swig/gempa/CAPS.py
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										26030
									
								
								libs/swig/gempa/CAPSPYTHON_wrap.cxx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26030
									
								
								libs/swig/gempa/CAPSPYTHON_wrap.cxx
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										79
									
								
								libs/swig/gempa/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								libs/swig/gempa/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,79 @@
 | 
			
		||||
FIND_PACKAGE(PythonLibs REQUIRED)
 | 
			
		||||
FIND_PACKAGE(PythonInterp REQUIRED)
 | 
			
		||||
SET(PYTHON_LIBRARY_SUFFIX /python)
 | 
			
		||||
SET(PYTHON_LIBRARY_PATH lib${PYTHON_LIBRARY_SUFFIX})
 | 
			
		||||
 | 
			
		||||
FIND_PACKAGE(Numpy)
 | 
			
		||||
 | 
			
		||||
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIR})
 | 
			
		||||
INCLUDE_DIRECTORIES(${PYTHON_NUMPY_INCLUDE_DIR})
 | 
			
		||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
 | 
			
		||||
INCLUDE_DIRECTORIES(../../../system/libs/swig)
 | 
			
		||||
 | 
			
		||||
FIND_PACKAGE(Boost REQUIRED COMPONENTS filesystem)
 | 
			
		||||
 | 
			
		||||
IF (CMAKE_COMPILER_IS_GNUCC)
 | 
			
		||||
    # Important for O2 compilation
 | 
			
		||||
    ADD_DEFINITIONS("-fno-strict-aliasing")
 | 
			
		||||
ENDIF (CMAKE_COMPILER_IS_GNUCC)
 | 
			
		||||
 | 
			
		||||
SET(
 | 
			
		||||
        WRAPPER_MODULES
 | 
			
		||||
				CAPS
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
FIND_PACKAGE(OpenSSL REQUIRED)
 | 
			
		||||
 | 
			
		||||
SET(WRAPPER_MODULE_CAPS_EXTRA_LIBS capsclient ${Boost_filesystem_LIBRARY} ${OPENSSL_LIBRARIES})
 | 
			
		||||
 | 
			
		||||
FOREACH (wrapper_module ${WRAPPER_MODULES})
 | 
			
		||||
        SET(
 | 
			
		||||
                ${wrapper_module}_SOURCES
 | 
			
		||||
                        ${wrapper_module}PYTHON_wrap.cxx
 | 
			
		||||
                        ${WRAPPER_MODULE_${wrapper_module}_EXTRA_FILES}
 | 
			
		||||
        )
 | 
			
		||||
        ADD_LIBRARY(_${wrapper_module} MODULE ${${wrapper_module}_SOURCES})
 | 
			
		||||
        SET_TARGET_PROPERTIES(_${wrapper_module} PROPERTIES PREFIX "")
 | 
			
		||||
        TARGET_LINK_LIBRARIES(_${wrapper_module} ${PYTHON_LIBRARIES})
 | 
			
		||||
        TARGET_LINK_LIBRARIES(_${wrapper_module} ${WRAPPER_MODULE_${wrapper_module}_EXTRA_LIBS})
 | 
			
		||||
ENDFOREACH (wrapper_module)
 | 
			
		||||
 | 
			
		||||
#SC_SWIG_GET_MODULE_PATH(_module_path)
 | 
			
		||||
SET(_module_path ${CMAKE_INSTALL_PREFIX}/lib/python/gempa)
 | 
			
		||||
 | 
			
		||||
FOREACH (wrapper_module ${WRAPPER_MODULES})
 | 
			
		||||
        INSTALL(
 | 
			
		||||
                TARGETS _${wrapper_module}
 | 
			
		||||
                LIBRARY DESTINATION ${_module_path}
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
	 INSTALL(
 | 
			
		||||
                FILES ${CMAKE_CURRENT_SOURCE_DIR}/__init__.py
 | 
			
		||||
                DESTINATION ${_module_path}
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        INSTALL(
 | 
			
		||||
                FILES ${CMAKE_CURRENT_SOURCE_DIR}/${wrapper_module}.py
 | 
			
		||||
                DESTINATION ${_module_path}
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        INSTALL(
 | 
			
		||||
                FILES ${CMAKE_CURRENT_BINARY_DIR}/${wrapper_module}.pyc
 | 
			
		||||
                DESTINATION ${_module_path}
 | 
			
		||||
                OPTIONAL
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        INSTALL(
 | 
			
		||||
                FILES ${CMAKE_CURRENT_BINARY_DIR}/${wrapper_module}.pyo
 | 
			
		||||
                DESTINATION ${_module_path}
 | 
			
		||||
                OPTIONAL
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        ADD_CUSTOM_COMMAND(
 | 
			
		||||
                TARGET _${wrapper_module}
 | 
			
		||||
                POST_BUILD
 | 
			
		||||
                COMMAND ${CMAKE_SOURCE_DIR}/py-compile ARGS --python \"${PYTHON_EXECUTABLE}\" --destdir ${CMAKE_CURRENT_BINARY_DIR} ${wrapper_module}.py
 | 
			
		||||
        )
 | 
			
		||||
ENDFOREACH (wrapper_module)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										0
									
								
								libs/swig/gempa/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								libs/swig/gempa/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										2
									
								
								libs/swig/gempa/codegen.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								libs/swig/gempa/codegen.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
swig -c++ -I../../ -o CAPSPYTHON_wrap.cxx -python CAPS.i
 | 
			
		||||
							
								
								
									
										3161
									
								
								libs/swig/gempa/numpy.i
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3161
									
								
								libs/swig/gempa/numpy.i
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user