SODBASE CEP学习进阶篇(一):除了Java还有C++

许多监测系统、交易系统、实时数据挖掘分析算法是用C++写的,而且第三方接口也往往以C++动态库的方式出现。当你更偏好于使用C++编程语言的话,可以用SODBASE CEP C++ 接口来搭建流式计算系统。本文相关的软件和代码可以到http://www.sodbase.com/page/service/product.php,下载软件。里面有较为详细的介绍。

1. 只用C++

一些项目中,希望就将SODBASE CEP引擎作为一个C++的库,由C++程序来调用。可以用C++版的接口,例如下面的代码

#include <time.h>
#include <errno.h>
#include <string.h>
#include "CEPModelExecutionUtil.h"
#include "ServerManagementImpl.h"
int main(int argc,char** argv)
{
	//set the CEP engine home path
	GraphModelExecutionUtil_set_cep_home("./cep_home");
	//run the CEP model
	GraphModelExecutionUtil_runXML("files/filter6.xml");
	struct timespec req, rem;
	req.tv_sec =  1;
	req.tv_nsec = 0;
	nanosleep(&req,&rem);
	//inset event to the stream
	ServerManagementImpl_insertevent("filter6.input","price:20.0,name:Google,volumn:100","double,string,double");
	cepengine_wait_to_close();
	return 0; 
}


2. Java调用C/C++库

如果用Java版的SODBASE CEP引擎或服务器,里面需要调用C++的代码或程序,linux下可以使用com.sodbase.outputadaptor.clib.linux.LinuxClibraryOutputAdaptor适配器,每个事件输出会调用动态链接库中函数。配置如下

参数1:动态库路径。可以为绝对地址。如果设置为相对地址,目前版本的LinuxClibraryOutputAdaptor会到SODBASE CEP  Server的clib目录中寻找。

参数2:函数名

参数3:函数的第1个参数

参数4:函数的第2个参数

。。。函数还有参数就继续往下加

参数里面可以引用输出结果中的字段值,例如下面的?{id}

    <outputAdaptors>
        <isOutputAsSelection>true</isOutputAsSelection>
        <outputAdaptorClassName>com.sodbase.outputadaptor.clib.linux.LinuxClibraryOutputAdaptor</outputAdaptorClassName>
        <adaptorParams>sodbase_c_trade_stub.so</adaptorParams>
        <adaptorParams>buy</adaptorParams>
        <adaptorParams>?{id}</adaptorParams>
        <adaptorParams>20</adaptorParams>
        <isExternal>false</isExternal>
        <queryName>filter5</queryName>
    </outputAdaptors>



SODBASE CEP用于轻松、高效实施数据监测、监控类项目微笑。EPL语法见SODSQL写法与示例。图形化建模请使用SODBASE Studio

其它推荐文章:

SODBASE CEP学习(四):EPL与Storm集成

SODBASE CEP学习进阶篇(三):自己写输入输出适配器


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值