/* 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}} #include "object.hh" {{#_class}}{{#isVcard}} #include {{/isVcard}}{{/_class}} {{#_class}}{{#isfactory}} #include "config.hh" {{/isfactory}}{{/_class}} {{#_class}} {{#isNotListener}} struct {{{privCClassName}}}; {{/isNotListener}} {{/_class}} namespace linphone { {{#priorDeclarations}} class {{{name}}}; {{/priorDeclarations}} {{#_class}} {{#doc}} /** {{#lines}} * {{{line}}} {{/lines}} */ {{/doc}} class {{className}}{{#parentClassName}}: public {{{parentClassName}}}{{/parentClassName}} { {{#friendClasses}} friend class {{name}}; {{/friendClasses}} public: {{#isNotListener}} {{#isrefcountable}} {{{className}}}(void *ptr, bool takeRef=true); {{/isrefcountable}} {{#isnotrefcountable}} LINPHONECXX_PUBLIC {{{className}}}(); LINPHONECXX_PUBLIC {{{className}}}(const {{{className}}} &src); {{{className}}}(const void *src); LINPHONECXX_PUBLIC ~{{{className}}}(); LINPHONECXX_PUBLIC const void *c_struct() const {return mPrivPtr;} {{/isnotrefcountable}} LINPHONECXX_PUBLIC {{{privCClassName}}} *cPtr() {return ({{{privCClassName}}} *)mPrivPtr;} {{/isNotListener}} {{#ismonolistenable}} LINPHONECXX_PUBLIC void setListener(const std::shared_ptr<{{{listenerClassName}}}> &listener); {{/ismonolistenable}} {{#ismultilistenable}} LINPHONECXX_PUBLIC virtual ~{{{className}}}(); LINPHONECXX_PUBLIC void addListener(const std::shared_ptr<{{{listenerClassName}}}> &listener); LINPHONECXX_PUBLIC void removeListener(const std::shared_ptr<{{{listenerClassName}}}> &listener); {{/ismultilistenable}} public: {{#isfactory}} LINPHONECXX_PUBLIC std::shared_ptr createCore(const std::shared_ptr &listener, const std::string & configPath, const std::string & factoryConfigPath) const; LINPHONECXX_PUBLIC std::shared_ptr createCoreWithConfig(const std::shared_ptr &listener, const std::shared_ptr & config) const; {{/isfactory}} {{#isVcard}} LINPHONECXX_PUBLIC std::shared_ptr &getVcard(); {{/isVcard}} {{#methods}} {{#doc}} /** {{#lines}} * {{{line}}} {{/lines}} */ {{/doc}} {{{prototype}}} {{/methods}} {{#staticMethods}} {{#doc}} /** {{#lines}} * {{{line}}} {{/lines}} */ {{/doc}} {{{prototype}}} {{/staticMethods}} {{#ismultilistenable}} private: static void *createCallbacks(void *userData); {{/ismultilistenable}} {{#ismultilistenable}} private: void *mCallbacks; {{/ismultilistenable}} {{#isnotrefcountable}} private: void *mPrivPtr; {{/isnotrefcountable}} }; {{/_class}} }; #endif // {{define}}