2016-08-26 1 views
1

Я пытаюсь добавить «свойство» в моем пользовательском модуле, используя следующий кодKurento: пользовательские ошибки модуля при добавлении «свойство»

В моем * .kdm.json файл:

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

Im мой .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 работает отлично для моего другого настраиваемого модуля, но я не знаю, как я получаю эту ошибку в этом настраиваемом модуле.

+0

выглядит как добавление '' свойств '' в файле 'kdm.json', делает класс абстрактным, любые идеи, что mi ght будет идти не так? –

ответ

2

Проблема заключается в том, что метод объявлен как это шаблоном:

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

Но вы реализуете это так:

virtual void setParams (std::string params); 

Обратите внимание на разницу в params declararion (& и const)

+0

Спасибо большое, это сработало! –