mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-27 07:59:20 +00:00
merge master
This commit is contained in:
parent
3e3991acc2
commit
6a90b6371e
23 changed files with 236 additions and 85 deletions
|
|
@ -330,6 +330,7 @@ endif()
|
|||
|
||||
add_subdirectory(include)
|
||||
add_subdirectory(java)
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(coreapi)
|
||||
add_subdirectory(share)
|
||||
if(ENABLE_CONSOLE_UI)
|
||||
|
|
|
|||
|
|
@ -33,24 +33,7 @@ if(ANDROID)
|
|||
find_package(Support REQUIRED)
|
||||
endif()
|
||||
|
||||
|
||||
set(LINPHONE_PRIVATE_HEADER_FILES
|
||||
../src/conference/conference-info.hxx
|
||||
../src/conference/conference-listener.h
|
||||
../src/conference/local-conference-event-handler.h
|
||||
../src/conference/remote-conference-event-handler.h
|
||||
../src/cpim/cpim.h
|
||||
../src/cpim/header/cpim-core-headers.h
|
||||
../src/cpim/header/cpim-generic-header.h
|
||||
../src/cpim/header/cpim-header-p.h
|
||||
../src/cpim/header/cpim-header.h
|
||||
../src/cpim/message/cpim-message.h
|
||||
../src/cpim/parser/cpim-grammar.h
|
||||
../src/cpim/parser/cpim-parser.h
|
||||
../src/object/object.h
|
||||
../src/object/singleton.h
|
||||
../src/utils/general.h
|
||||
../src/utils/utils.h
|
||||
list(APPEND LINPHONE_PRIVATE_HEADER_FILES
|
||||
bellesip_sal/sal_impl.h
|
||||
carddav.h
|
||||
conference_private.h
|
||||
|
|
@ -137,18 +120,8 @@ set(LINPHONE_SOURCE_FILES_C
|
|||
)
|
||||
set(LINPHONE_SOURCE_FILES_CXX
|
||||
conference.cc
|
||||
../src/conference/conference-info.cxx
|
||||
../src/conference/local-conference-event-handler.cpp
|
||||
../src/conference/remote-conference-event-handler.cpp
|
||||
../src/cpim/header/cpim-core-headers.cpp
|
||||
../src/cpim/header/cpim-generic-header.cpp
|
||||
../src/cpim/header/cpim-header.cpp
|
||||
../src/cpim/message/cpim-message.cpp
|
||||
../src/cpim/parser/cpim-grammar.cpp
|
||||
../src/cpim/parser/cpim-parser.cpp
|
||||
../src/utils/utils.cpp
|
||||
)
|
||||
set(LINPHONE_INCLUDE_DIRS ${LINPHONE_INCLUDE_DIRS} /Users/reisbenjamin/xsd-4.0.0-i686-macosx/libxsd /usr/local/Cellar/xerces-c/3.1.4/include)
|
||||
set(LINPHONE_INCLUDE_DIRS ${LINPHONE_INCLUDE_DIRS})
|
||||
if(ANDROID)
|
||||
list(APPEND LINPHONE_SOURCE_FILES_CXX linphonecore_jni.cc)
|
||||
set_source_files_properties(linphonecore_jni.cc PROPERTIES COMPILE_DEFINITIONS "USE_JAVAH")
|
||||
|
|
@ -233,7 +206,10 @@ bc_apply_compile_flags(LINPHONE_SOURCE_FILES_CXX STRICT_OPTIONS_CPP STRICT_OPTIO
|
|||
bc_apply_compile_flags(LINPHONE_SOURCE_FILES_OBJC STRICT_OPTIONS_CPP STRICT_OPTIONS_OBJC)
|
||||
|
||||
if(ENABLE_STATIC)
|
||||
add_library(linphone-static STATIC ${LINPHONE_HEADER_FILES} ${LINPHONE_PRIVATE_HEADER_FILES} ${LINPHONE_SOURCE_FILES_C} ${LINPHONE_SOURCE_FILES_CXX} ${LINPHONE_SOURCE_FILES_OBJC})
|
||||
add_library(linphone-static STATIC ${LINPHONE_HEADER_FILES} ${LINPHONE_PRIVATE_HEADER_FILES}
|
||||
${LINPHONE_SOURCE_FILES_C} ${LINPHONE_SOURCE_FILES_CXX} ${LINPHONE_SOURCE_FILES_OBJC}
|
||||
$<TARGET_OBJECTS:linphone-cxx-objects-static>
|
||||
)
|
||||
set_target_properties(linphone-static PROPERTIES OUTPUT_NAME linphone)
|
||||
add_dependencies(linphone-static liblinphone-git-version)
|
||||
target_include_directories(linphone-static PUBLIC ${LINPHONE_INCLUDE_DIRS})
|
||||
|
|
@ -250,7 +226,10 @@ if(ENABLE_STATIC)
|
|||
)
|
||||
endif()
|
||||
if(ENABLE_SHARED)
|
||||
add_library(linphone SHARED ${LINPHONE_HEADER_FILES} ${LINPHONE_PRIVATE_HEADER_FILES} ${LINPHONE_SOURCE_FILES_C} ${LINPHONE_SOURCE_FILES_CXX} ${LINPHONE_SOURCE_FILES_OBJC})
|
||||
add_library(linphone SHARED ${LINPHONE_HEADER_FILES} ${LINPHONE_PRIVATE_HEADER_FILES}
|
||||
${LINPHONE_SOURCE_FILES_C} ${LINPHONE_SOURCE_FILES_CXX} ${LINPHONE_SOURCE_FILES_OBJC}
|
||||
$<TARGET_OBJECTS:linphone-cxx-objects>
|
||||
)
|
||||
if(IOS)
|
||||
if(IOS)
|
||||
set(MIN_OS ${LINPHONE_IOS_DEPLOYMENT_TARGET})
|
||||
|
|
|
|||
|
|
@ -579,6 +579,7 @@ static const struct addrinfo * find_nat64_addrinfo(const struct addrinfo *ai) {
|
|||
static const struct addrinfo * find_ipv4_addrinfo(const struct addrinfo *ai) {
|
||||
while (ai != NULL) {
|
||||
if (ai->ai_family == AF_INET) break;
|
||||
if (ai->ai_family == AF_INET6 && ai->ai_flags & AI_V4MAPPED) break;
|
||||
ai = ai->ai_next;
|
||||
}
|
||||
return ai;
|
||||
|
|
|
|||
|
|
@ -1946,27 +1946,6 @@ SalStreamDir sal_dir_from_call_params_dir(LinphoneMediaDirection cpdir);
|
|||
/*****************************************************************************
|
||||
* LINPHONE CONTENT PRIVATE ACCESSORS *
|
||||
****************************************************************************/
|
||||
/**
|
||||
* Get the key associated with a RCS file transfer message if encrypted
|
||||
* @param[in] content LinphoneContent object.
|
||||
* @return The key to encrypt/decrypt the file associated to this content.
|
||||
*/
|
||||
LINPHONE_PUBLIC const char *linphone_content_get_key(const LinphoneContent *content);
|
||||
|
||||
/**
|
||||
* Get the size of key associated with a RCS file transfer message if encrypted
|
||||
* @param[in] content LinphoneContent object.
|
||||
* @return The key size in bytes
|
||||
*/
|
||||
size_t linphone_content_get_key_size(const LinphoneContent *content);
|
||||
|
||||
/**
|
||||
* Set the key associated with a RCS file transfer message if encrypted
|
||||
* @param[in] content LinphoneContent object.
|
||||
* @param[in] key The key to be used to encrypt/decrypt file associated to this content.
|
||||
* @param[in] keyLength The lengh of the key.
|
||||
*/
|
||||
void linphone_content_set_key(LinphoneContent *content, const char *key, const size_t keyLength);
|
||||
|
||||
/**
|
||||
* Get the address of the crypto context associated with a RCS file transfer message if encrypted
|
||||
|
|
|
|||
|
|
@ -192,6 +192,28 @@ LINPHONE_PUBLIC LinphoneContent * linphone_content_find_part_by_header(const Lin
|
|||
*/
|
||||
LINPHONE_PUBLIC const char * linphone_content_get_custom_header(const LinphoneContent *content, const char *header_name);
|
||||
|
||||
/**
|
||||
* Get the key associated with a RCS file transfer message if encrypted
|
||||
* @param[in] content LinphoneContent object.
|
||||
* @return The key to encrypt/decrypt the file associated to this content.
|
||||
*/
|
||||
LINPHONE_PUBLIC const char *linphone_content_get_key(const LinphoneContent *content);
|
||||
|
||||
/**
|
||||
* Get the size of key associated with a RCS file transfer message if encrypted
|
||||
* @param[in] content LinphoneContent object.
|
||||
* @return The key size in bytes
|
||||
*/
|
||||
LINPHONE_PUBLIC size_t linphone_content_get_key_size(const LinphoneContent *content);
|
||||
|
||||
/**
|
||||
* Set the key associated with a RCS file transfer message if encrypted
|
||||
* @param[in] content LinphoneContent object.
|
||||
* @param[in] key The key to be used to encrypt/decrypt file associated to this content.
|
||||
* @param[in] keyLength The lengh of the key.
|
||||
*/
|
||||
LINPHONE_PUBLIC void linphone_content_set_key(LinphoneContent *content, const char *key, const size_t keyLength);
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -346,7 +346,7 @@ int sal_media_description_get_nb_active_streams(const SalMediaDescription *md);
|
|||
|
||||
struct SalOpBase;
|
||||
typedef void (*SalOpReleaseCb)(struct SalOpBase *op);
|
||||
|
||||
|
||||
/*this structure must be at the first byte of the SalOp structure defined by implementors*/
|
||||
typedef struct SalOpBase{
|
||||
Sal *root;
|
||||
|
|
@ -658,7 +658,7 @@ void sal_verify_server_certificates(Sal *ctx, bool_t verify);
|
|||
void sal_verify_server_cn(Sal *ctx, bool_t verify);
|
||||
void sal_set_ssl_config(Sal *ctx, void *ssl_config);
|
||||
LINPHONE_PUBLIC void sal_set_uuid(Sal*ctx, const char *uuid);
|
||||
int sal_create_uuid(Sal*ctx, char *uuid, size_t len);
|
||||
LINPHONE_PUBLIC int sal_create_uuid(Sal*ctx, char *uuid, size_t len);
|
||||
int sal_generate_uuid(char *uuid, size_t len);
|
||||
LINPHONE_PUBLIC void sal_enable_test_features(Sal*ctx, bool_t enabled);
|
||||
void sal_use_no_initial_route(Sal *ctx, bool_t enabled);
|
||||
|
|
@ -963,5 +963,3 @@ int sal_get_http_proxy_port(const Sal *sal);
|
|||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
|||
79
src/CMakeLists.txt
Normal file
79
src/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
############################################################################
|
||||
# CMakeLists.txt
|
||||
# Copyright (C) 2017 Belledonne Communications, Grenoble France
|
||||
#
|
||||
############################################################################
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
############################################################################
|
||||
|
||||
set(LINPHONE_CXX_OBJECTS_PRIVATE_HEADER_FILES
|
||||
conference/conference-info.hxx
|
||||
conference/conference-listener.h
|
||||
conference/local-conference-event-handler.h
|
||||
conference/remote-conference-event-handler.h
|
||||
cpim/cpim.h
|
||||
cpim/header/cpim-core-headers.h
|
||||
cpim/header/cpim-generic-header.h
|
||||
cpim/header/cpim-header-p.h
|
||||
cpim/header/cpim-header.h
|
||||
cpim/message/cpim-message.h
|
||||
cpim/parser/cpim-grammar.h
|
||||
cpim/parser/cpim-parser.h
|
||||
object/object.h
|
||||
object/object-p.h
|
||||
object/singleton.h
|
||||
utils/general.h
|
||||
utils/utils.h
|
||||
)
|
||||
|
||||
set(LINPHONE_CXX_OBJECTS_SOURCE_FILES
|
||||
conference/conference-info.cxx
|
||||
conference/local-conference-event-handler.cpp
|
||||
conference/remote-conference-event-handler.cpp
|
||||
cpim/header/cpim-core-headers.cpp
|
||||
cpim/header/cpim-generic-header.cpp
|
||||
cpim/header/cpim-header.cpp
|
||||
cpim/message/cpim-message.cpp
|
||||
cpim/parser/cpim-grammar.cpp
|
||||
cpim/parser/cpim-parser.cpp
|
||||
object/object.cpp
|
||||
utils/utils.cpp
|
||||
)
|
||||
|
||||
set(LINPHONE_CXX_OBJECTS_DEFINITIONS "-DLIBLINPHONE_EXPORTS")
|
||||
set(LINPHONE_CXX_OBJECTS_INCLUDE_DIRS ${BELR_INCLUDE_DIRS} /Users/reisbenjamin/xsd-4.0.0-i686-macosx/libxsd /usr/local/Cellar/xerces-c/3.1.4/include)
|
||||
|
||||
set(LINPHONE_PRIVATE_HEADER_FILES)
|
||||
foreach(header ${LINPHONE_CXX_OBJECTS_PRIVATE_HEADER_FILES})
|
||||
list(APPEND LINPHONE_PRIVATE_HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${header}")
|
||||
endforeach()
|
||||
set(LINPHONE_PRIVATE_HEADER_FILES ${LINPHONE_PRIVATE_HEADER_FILES} PARENT_SCOPE)
|
||||
|
||||
bc_apply_compile_flags(LINPHONE_CXX_OBJECTS_SOURCE_FILES STRICT_OPTIONS_CPP STRICT_OPTIONS_CXX)
|
||||
|
||||
if(ENABLE_STATIC)
|
||||
add_library(linphone-cxx-objects-static OBJECT ${LINPHONE_CXX_OBJECTS_PRIVATE_HEADER_FILES} ${LINPHONE_CXX_OBJECTS_SOURCE_FILES})
|
||||
target_compile_definitions(linphone-cxx-objects-static PRIVATE ${LINPHONE_CXX_OBJECTS_DEFINITIONS})
|
||||
target_include_directories(linphone-cxx-objects-static PRIVATE ${LINPHONE_CXX_OBJECTS_INCLUDE_DIRS} ${LINPHONE_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
if(ENABLE_SHARED)
|
||||
add_library(linphone-cxx-objects OBJECT ${LINPHONE_CXX_OBJECTS_PRIVATE_HEADER_FILES} ${LINPHONE_CXX_OBJECTS_SOURCE_FILES})
|
||||
target_compile_definitions(linphone-cxx-objects PRIVATE ${LINPHONE_CXX_OBJECTS_DEFINITIONS})
|
||||
target_include_directories(linphone-cxx-objects PRIVATE ${LINPHONE_CXX_OBJECTS_INCLUDE_DIRS} ${LINPHONE_INCLUDE_DIRS})
|
||||
target_compile_options(linphone-cxx-objects PRIVATE "-fPIC")
|
||||
endif()
|
||||
|
|
@ -19,6 +19,7 @@
|
|||
#include "local-conference-event-handler.h"
|
||||
#include "conference-info.hxx"
|
||||
#include "private.h"
|
||||
#include "object/object-p.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace conference_info;
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
#include "remote-conference-event-handler.h"
|
||||
#include "conference-info.hxx"
|
||||
#include "private.h"
|
||||
#include "object/object-p.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace conference_info;
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
// =============================================================================
|
||||
|
||||
#define MAKE_CORE_HEADER(CLASS_PREFIX, NAME) \
|
||||
class CLASS_PREFIX ## Header : public CoreHeader { \
|
||||
class LINPHONE_PUBLIC CLASS_PREFIX ## Header : public CoreHeader { \
|
||||
public: \
|
||||
CLASS_PREFIX ## Header() = default; \
|
||||
inline std::string getName() const override { \
|
||||
|
|
@ -43,7 +43,7 @@ namespace LinphonePrivate {
|
|||
// Generic core header.
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
class CoreHeader : public Header {
|
||||
class LINPHONE_PUBLIC CoreHeader : public Header {
|
||||
friend class HeaderNode;
|
||||
|
||||
public:
|
||||
|
|
@ -79,7 +79,7 @@ namespace LinphonePrivate {
|
|||
|
||||
class SubjectHeaderPrivate;
|
||||
|
||||
class SubjectHeader : public CoreHeader {
|
||||
class LINPHONE_PUBLIC SubjectHeader : public CoreHeader {
|
||||
friend class HeaderNode;
|
||||
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -32,8 +32,10 @@ using namespace LinphonePrivate;
|
|||
|
||||
class Cpim::GenericHeaderPrivate : public HeaderPrivate {
|
||||
public:
|
||||
GenericHeaderPrivate () : parameters(make_shared<list<pair<string, string> > >()) {}
|
||||
|
||||
string name;
|
||||
shared_ptr<list<pair<string, string> > > parameters = make_shared<list<pair<string, string> > >();
|
||||
shared_ptr<list<pair<string, string> > > parameters;
|
||||
};
|
||||
|
||||
Cpim::GenericHeader::GenericHeader () : Header(*new GenericHeaderPrivate) {}
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ namespace LinphonePrivate {
|
|||
class GenericHeaderPrivate;
|
||||
class HeaderNode;
|
||||
|
||||
class GenericHeader : public Header {
|
||||
class LINPHONE_PUBLIC GenericHeader : public Header {
|
||||
friend class HeaderNode;
|
||||
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
#define _CPIM_HEADER_P_H_
|
||||
|
||||
#include "cpim-header.h"
|
||||
#include "object/object-p.h"
|
||||
|
||||
// =============================================================================
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ namespace LinphonePrivate {
|
|||
namespace Cpim {
|
||||
class HeaderPrivate;
|
||||
|
||||
class Header : public Object {
|
||||
class LINPHONE_PUBLIC Header : public Object {
|
||||
public:
|
||||
virtual ~Header () = default;
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
#include <algorithm>
|
||||
|
||||
#include "cpim/parser/cpim-parser.h"
|
||||
#include "object/object-p.h"
|
||||
#include "utils/utils.h"
|
||||
|
||||
#include "cpim-message.h"
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ namespace LinphonePrivate {
|
|||
namespace Cpim {
|
||||
class MessagePrivate;
|
||||
|
||||
class Message : public Object {
|
||||
class LINPHONE_PUBLIC Message : public Object {
|
||||
public:
|
||||
Message ();
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
#include "linphone/core.h"
|
||||
|
||||
#include "cpim-grammar.h"
|
||||
#include "object/object-p.h"
|
||||
#include "utils/utils.h"
|
||||
|
||||
#include "cpim-parser.h"
|
||||
|
|
|
|||
41
src/object/object-p.h
Normal file
41
src/object/object-p.h
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
* object-p.h
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _OBJECT_P_H_
|
||||
#define _OBJECT_P_H_
|
||||
|
||||
#include "utils/general.h"
|
||||
|
||||
// =============================================================================
|
||||
|
||||
namespace LinphonePrivate {
|
||||
class Object;
|
||||
|
||||
class ObjectPrivate {
|
||||
public:
|
||||
virtual ~ObjectPrivate () = default;
|
||||
|
||||
protected:
|
||||
Object *mPublic = nullptr;
|
||||
|
||||
private:
|
||||
L_DECLARE_PUBLIC(Object);
|
||||
};
|
||||
}
|
||||
|
||||
#endif // ifndef _OBJECT_P_H_
|
||||
33
src/object/object.cpp
Normal file
33
src/object/object.cpp
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
* object.cpp
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "object-p.h"
|
||||
|
||||
#include "object.h"
|
||||
|
||||
using namespace LinphonePrivate;
|
||||
|
||||
// =============================================================================
|
||||
|
||||
Object::~Object () {
|
||||
delete mPrivate;
|
||||
}
|
||||
|
||||
Object::Object (ObjectPrivate &p) : mPrivate(&p) {
|
||||
mPrivate->mPublic = this;
|
||||
}
|
||||
|
|
@ -24,29 +24,14 @@
|
|||
// =============================================================================
|
||||
|
||||
namespace LinphonePrivate {
|
||||
class Object;
|
||||
class ObjectPrivate;
|
||||
|
||||
class ObjectPrivate {
|
||||
class LINPHONE_PUBLIC Object {
|
||||
public:
|
||||
virtual ~ObjectPrivate () = default;
|
||||
virtual ~Object ();
|
||||
|
||||
protected:
|
||||
Object *mPublic = nullptr;
|
||||
|
||||
private:
|
||||
L_DECLARE_PUBLIC(Object);
|
||||
};
|
||||
|
||||
class Object {
|
||||
public:
|
||||
virtual ~Object () {
|
||||
delete mPrivate;
|
||||
}
|
||||
|
||||
protected:
|
||||
explicit Object (ObjectPrivate &p) : mPrivate(&p) {
|
||||
mPrivate->mPublic = this;
|
||||
}
|
||||
explicit Object (ObjectPrivate &p);
|
||||
|
||||
ObjectPrivate *mPrivate = nullptr;
|
||||
|
||||
|
|
|
|||
|
|
@ -30,8 +30,10 @@ namespace LinphonePrivate {
|
|||
virtual ~Singleton () = default;
|
||||
|
||||
static T *getInstance () {
|
||||
if (!mInstance)
|
||||
if (!mInstance) {
|
||||
mInstance = new T();
|
||||
static SingletonDeleter deleter;
|
||||
}
|
||||
return mInstance;
|
||||
}
|
||||
|
||||
|
|
@ -39,6 +41,12 @@ namespace LinphonePrivate {
|
|||
explicit Singleton (ObjectPrivate &p) : Object(p) {}
|
||||
|
||||
private:
|
||||
struct SingletonDeleter {
|
||||
~SingletonDeleter () {
|
||||
delete mInstance;
|
||||
}
|
||||
};
|
||||
|
||||
static T *mInstance;
|
||||
|
||||
L_DISABLE_COPY(Singleton);
|
||||
|
|
|
|||
|
|
@ -21,6 +21,24 @@
|
|||
#ifndef _GENERAL_H_
|
||||
#define _GENERAL_H_
|
||||
|
||||
#ifndef LINPHONE_PUBLIC
|
||||
#if defined(_MSC_VER)
|
||||
#ifdef LINPHONE_STATIC
|
||||
#define LINPHONE_PUBLIC
|
||||
#else
|
||||
#ifdef LINPHONE_EXPORTS
|
||||
#define LINPHONE_PUBLIC __declspec(dllexport)
|
||||
#else
|
||||
#define LINPHONE_PUBLIC __declspec(dllimport)
|
||||
#endif
|
||||
#endif
|
||||
#else
|
||||
#define LINPHONE_PUBLIC
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
#define L_DECLARE_PRIVATE(CLASS) \
|
||||
inline CLASS ## Private * getPrivate() { \
|
||||
return reinterpret_cast<CLASS ## Private *>(mPrivate); \
|
||||
|
|
|
|||
|
|
@ -2492,12 +2492,12 @@ test_t message_tests[] = {
|
|||
};
|
||||
|
||||
static int message_tester_before_suite(void) {
|
||||
liblinphone_tester_keep_uuid = TRUE;
|
||||
//liblinphone_tester_keep_uuid = TRUE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int message_tester_after_suite(void) {
|
||||
liblinphone_tester_keep_uuid = FALSE;
|
||||
//liblinphone_tester_keep_uuid = FALSE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue