/* Copyright (C) 2017 Belledonne Communications SARL This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef {{define}} #define {{define}} {{#includes}} {{#external}} #include <{{name}}> {{/external}} {{#internal}} #include "{{name}}.hh" {{/internal}} {{/includes}} {{#_class}}{{#isVcard}} #include {{/isVcard}}{{/_class}} {{#_class}}{{#isfactory}} #include "config.hh" {{/isfactory}}{{/_class}} #include "linphone/linphonecore.h" #include "linphone/linphone_tunnel.h" #include "linphone/linphonecore_utils.h" #include "linphone/wrapper_utils.h" namespace linphone { {{#priorDeclarations}} class {{{name}}}; {{/priorDeclarations}} {{#_class}} class {{className}}: public {{{parentClassName}}} { {{#friendClasses}} friend class {{name}}; {{/friendClasses}} public: {{#isNotListener}} {{{className}}}(::belle_sip_object_t *ptr, bool takeRef=true); {{/isNotListener}} {{#ismonolistenable}} void setListener(const std::shared_ptr<{{{listenerClassName}}}> &listener); {{/ismonolistenable}} {{#ismultilistenable}} void addListener(std::shared_ptr<{{{listenerClassName}}}> &listener); void removeListener(std::shared_ptr<{{{listenerClassName}}}> &listener); {{/ismultilistenable}} public: {{#isfactory}} std::shared_ptr createCore(const std::shared_ptr & cbs, const std::string & configPath, const std::string & factoryConfigPath) const; std::shared_ptr createCoreWithConfig(const std::shared_ptr & cbs, const std::shared_ptr & config) const; {{/isfactory}} {{#isVcard}} std::shared_ptr &getVcard(); {{/isVcard}} {{#methods}} {{{prototype}}} {{/methods}} {{#staticMethods}} {{{prototype}}} {{/staticMethods}} {{#ismultilistenable}} private: static {{{cListenerName}}} *createCallbacks(const std::shared_ptr<{{{listenerClassName}}}> &listener); {{/ismultilistenable}} {{#islistenable}} private: {{#wrapperCbs}} {{decl}} {{/wrapperCbs}} {{/islistenable}} }; {{/_class}} }; #endif // {{define}}