Kurento:添加"属性"时自定义模块错误

时间:2016-08-26 14:21:40

标签: kurento

我试图添加"属性"在我的自定义模块中使用以下代码

在我的* .kdm.json文件中:

"properties": [
{
  "name": "params",
  "doc": "set params",
  "type": "String"
}
]

我的.hpp文件

virtual std::string getParams();
virtual void setParams (std::string params);

在我的.cpp文件中

void myCustomFilterImpl::setParams (std::string params)
{
    //code here
}

std::string myCustomFilterImpl::getParams ()
{
  return params.c_str();
}

我在运行debuild

时遇到以下错误
 error: cannot allocate an object of abstract type ‘kurento::module::mycustomfilter::myCustomFilterImpl’ return new myCustomFilterImpl (conf, mediaPipeline);

..... note:   because the following virtual functions are pure within ‘kurento::module::mycustomfilter::myCustomFilterImpl’:   class myCustomFilterImpl:public FilterImpl, public virtual myCustomFilter
         ^
.... note:  virtual void kurento::module::mycustomfilter::myCustomFilter::setParams(const string&)
   virtual void setParams (const std::string &params) = 0;
                ^
... error: control reaches end of non-void function [-Werror=return-type]
       }
       ^

我在这里缺少什么可以添加到我的自定义模块代码中?

properties对我的其他自定义模块工作正常,但我不知道我是如何在此自定义模块中收到此错误的。

1 个答案:

答案 0 :(得分:2)

问题是该方法是由模板声明的:

virtual void setParams (const std::string &params);

但你是这样实现的:

virtual void setParams (std::string params);

请注意params声明(&const)的差异