linphone-ios/wrappers/cpp/class_header.mustache

136 lines
3.4 KiB
Text

/*
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 <belcard/belcard.hpp>
{{/isVcard}}{{/_class}}
{{#_class}}{{#isfactory}}
#include "config.hh"
{{/isfactory}}{{/_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}}
{{/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<Core> createCore(const std::shared_ptr<CoreListener> &listener, const std::string & configPath, const std::string & factoryConfigPath) const;
LINPHONECXX_PUBLIC std::shared_ptr<Core> createCoreWithConfig(const std::shared_ptr<CoreListener> &listener, const std::shared_ptr<Config> & config) const;
{{/isfactory}}
{{#isVcard}}
LINPHONECXX_PUBLIC std::shared_ptr<belcard::BelCard> &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}}