rhoconnect-client 5.5.18 → 7.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/extconf-chmod.rb +17 -0
- data/ext/rhoconnect-client/ext/build +5 -0
- data/ext/rhoconnect-client/ext/platform/iphone/Rakefile +9 -63
- data/ext/rhoconnect-client/ext/platform/iphone/RhoconnectClient.xcodeproj/project.pbxproj +8 -4
- data/ext/rhoconnect-client/ext/platform/qt/rhoconnect-client.pro +30 -1
- data/ext/rhoconnect-client/ext/platform/qt/rhoconnect-client.pro.erb +79 -0
- data/ext/rhoconnect-client/ext/shared/sync/ClientRegister.cpp +6 -2
- data/ext/rhoconnect-client/ext/shared/sync/SyncEngine.cpp +27 -27
- data/ext/rhoconnect-client/ext/shared/sync/SyncNotify.cpp +30 -30
- data/ext/rhoconnect-client/ext/shared/sync/SyncSource.cpp +9 -6
- data/ext/rhoconnect-client/ext.yml +3 -0
- data/lib/build/jakercc.rb +41 -0
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a76b1027a569cee7360e2640ffe2b47e6362babd
|
4
|
+
data.tar.gz: 0714d4f39f6e893f3f8a51cc0042f935199251d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6258bca04cdca6484e9d4dd6d7d4427ce3eff45e0a774b9b9a8231d0c6f3bb6574897484d6f756c9226059658078123d571150bd769b5fc782ec1c31dd0a12fd
|
7
|
+
data.tar.gz: eeef5492a9b85571217f0836176ca57f7a1c3a7baf017d6586e9062965c8a5d7f67de66c49f4d97d5702c8728fa4b30fd3a6d54f46e4cedfda47c68643559b52
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
include FileUtils
|
3
|
+
|
4
|
+
#Hack for linux (we should have a writable dirs in the gem subdirs)
|
5
|
+
chmod_R 0777, File.dirname(__FILE__) + "/.."
|
6
|
+
|
7
|
+
#This is the hack, we make all the things to make it look like an extension has compiled
|
8
|
+
|
9
|
+
File.open('Makefile', 'w') { |f| f.write "all:\n\ninstall:\n\n" }
|
10
|
+
File.open('make', 'w') do |f|
|
11
|
+
f.write '#!/bin/sh'
|
12
|
+
f.chmod f.stat.mode | 0111
|
13
|
+
end
|
14
|
+
File.open('rhodes_postinstallhack' + '.so', 'w') { |f| f.chmod 0777}
|
15
|
+
File.open('rhodes_postinstallhack' + '.dll', 'w') { |f| f.chmod 0777}
|
16
|
+
File.open('nmake.bat', 'w') { |f| f.write "ECHO \"Done\""
|
17
|
+
f.chmod 0777}
|
@@ -1,74 +1,20 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
|
3
|
-
USE_STLPORT = true
|
4
|
-
|
5
|
-
puts "Rhoconnect-client extension !"
|
6
|
-
|
7
3
|
namespace "build" do
|
4
|
+
task :all do
|
5
|
+
rhorootdir = ENV['RHO_ROOT']
|
6
|
+
raise "RHO_ROOT is not set" if rhorootdir.nil?
|
8
7
|
|
9
|
-
|
10
|
-
|
11
|
-
$targetdir = ENV['TARGET_TEMP_DIR']
|
12
|
-
raise "TARGET_TEMP_DIR is not set" if $targetdir.nil?
|
13
|
-
|
14
|
-
$tempdir = ENV['TEMP_FILES_DIR']
|
15
|
-
raise "TEMP_FILES_DIR is not set" if $tempdir.nil?
|
16
|
-
|
17
|
-
$rootdir = ENV['RHO_ROOT']
|
18
|
-
raise "RHO_ROOT is not set" if $rootdir.nil?
|
19
|
-
|
20
|
-
$xcodebuild = ENV['XCODEBUILD']
|
21
|
-
raise "XCODEBUILD is not set" if $xcodebuild.nil?
|
22
|
-
|
23
|
-
$configuration = ENV['CONFIGURATION']
|
24
|
-
raise "CONFIGURATION is not set" if $configuration.nil?
|
25
|
-
|
26
|
-
$sdk = ENV['SDK_NAME']
|
27
|
-
raise "SDK_NAME is not set" if $sdk.nil?
|
28
|
-
|
29
|
-
$bindir = ENV['PLATFORM_DEVELOPER_BIN_DIR']
|
30
|
-
raise "PLATFORM_DEVELOPER_BIN_DIR is not set" if $bindir.nil?
|
31
|
-
|
32
|
-
$sdkroot = ENV['SDKROOT']
|
33
|
-
raise "SDKROOT is not set" if $sdkroot.nil?
|
34
|
-
|
35
|
-
$arch = ENV['ARCHS']
|
36
|
-
raise "ARCHS is not set" if $arch.nil?
|
37
|
-
|
38
|
-
$gccbin = $bindir + '/gcc-4.2'
|
39
|
-
$arbin = $bindir + '/ar'
|
40
|
-
|
41
|
-
end
|
8
|
+
require File.join(rhorootdir, 'platform','iphone','rbuild','buildextension')
|
42
9
|
|
43
|
-
|
10
|
+
IPhoneBuild.load_env_for_build_rhodes_ios_extension
|
44
11
|
|
45
|
-
|
12
|
+
extension_name = "Rhoconnect-client"
|
13
|
+
extension_lib_name = extension_name
|
14
|
+
extension_xcode_target_name = extension_name
|
46
15
|
|
47
|
-
|
48
|
-
|
49
|
-
if $configuration == 'Distribution'
|
50
|
-
$configuration = 'Release'
|
16
|
+
ret= IPhoneBuild.build_rhodes_ios_extension(extension_name, extension_lib_name, extension_xcode_target_name)
|
51
17
|
end
|
52
|
-
|
53
|
-
result_lib = iphone_path + '/build/' + $configuration + '-' + ( simulator ? "iphonesimulator" : "iphoneos") + '/libRhoconnect-client.a'
|
54
|
-
target_lib = $targetdir + '/libRhoconnect-client.a'
|
55
|
-
|
56
|
-
rm_rf 'build'
|
57
|
-
rm_rf target_lib
|
58
|
-
|
59
|
-
args = ['build', '-target', 'Rhoconnect-client', '-configuration', $configuration, '-sdk', $sdk]
|
60
|
-
|
61
|
-
require $rootdir + '/lib/build/jake.rb'
|
62
|
-
|
63
|
-
puts Jake.run($xcodebuild,args)
|
64
|
-
ret = $?
|
65
|
-
|
66
|
-
# copy result to $targetdir
|
67
|
-
cp result_lib,target_lib
|
68
|
-
|
69
|
-
end
|
70
|
-
|
71
|
-
|
72
18
|
end
|
73
19
|
|
74
20
|
task :default => "build:all"
|
@@ -266,6 +266,7 @@
|
|
266
266
|
isa = XCBuildConfiguration;
|
267
267
|
buildSettings = {
|
268
268
|
GCC_C_LANGUAGE_STANDARD = c99;
|
269
|
+
CLANG_CXX_LIBRARY = "libc++";
|
269
270
|
GCC_OPTIMIZATION_LEVEL = 0;
|
270
271
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
271
272
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
@@ -276,7 +277,7 @@
|
|
276
277
|
"$(RHO_ROOT)/platform/shared/ruby/iphone",
|
277
278
|
"$(RHO_ROOT)/platform/shared",
|
278
279
|
);
|
279
|
-
IPHONEOS_DEPLOYMENT_TARGET =
|
280
|
+
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
280
281
|
ONLY_ACTIVE_ARCH = NO;
|
281
282
|
PREBINDING = NO;
|
282
283
|
SDKROOT = iphonesimulator4.1;
|
@@ -288,6 +289,7 @@
|
|
288
289
|
isa = XCBuildConfiguration;
|
289
290
|
buildSettings = {
|
290
291
|
GCC_C_LANGUAGE_STANDARD = c99;
|
292
|
+
CLANG_CXX_LIBRARY = "libc++";
|
291
293
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
292
294
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
293
295
|
HEADER_SEARCH_PATHS = (
|
@@ -297,7 +299,7 @@
|
|
297
299
|
"$(RHO_ROOT)/platform/shared/ruby/iphone",
|
298
300
|
"$(RHO_ROOT)/platform/shared",
|
299
301
|
);
|
300
|
-
IPHONEOS_DEPLOYMENT_TARGET =
|
302
|
+
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
301
303
|
ONLY_ACTIVE_ARCH = NO;
|
302
304
|
PREBINDING = NO;
|
303
305
|
SDKROOT = iphonesimulator4.1;
|
@@ -311,6 +313,7 @@
|
|
311
313
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
312
314
|
COPY_PHASE_STRIP = NO;
|
313
315
|
DSTROOT = "/tmp/Rhoconnect-client.dst";
|
316
|
+
CLANG_CXX_LIBRARY = "libc++";
|
314
317
|
GCC_DYNAMIC_NO_PIC = NO;
|
315
318
|
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
316
319
|
GCC_MODEL_TUNING = G5;
|
@@ -329,7 +332,7 @@
|
|
329
332
|
../../shared/sync,
|
330
333
|
);
|
331
334
|
INSTALL_PATH = /usr/local/lib;
|
332
|
-
IPHONEOS_DEPLOYMENT_TARGET =
|
335
|
+
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
333
336
|
MACOSX_DEPLOYMENT_TARGET = 10.5;
|
334
337
|
PRODUCT_NAME = "Rhoconnect-client";
|
335
338
|
SDKROOT = iphoneos;
|
@@ -343,6 +346,7 @@
|
|
343
346
|
DSTROOT = "/tmp/Rhoconnect-client.dst";
|
344
347
|
GCC_MODEL_TUNING = G5;
|
345
348
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
349
|
+
CLANG_CXX_LIBRARY = "libc++";
|
346
350
|
GCC_PREFIX_HEADER = RhoconnectClient_Prefix.pch;
|
347
351
|
HEADER_SEARCH_PATHS = (
|
348
352
|
"$(RHO_ROOT)/platform/shared/common",
|
@@ -356,7 +360,7 @@
|
|
356
360
|
../../shared/sync,
|
357
361
|
);
|
358
362
|
INSTALL_PATH = /usr/local/lib;
|
359
|
-
IPHONEOS_DEPLOYMENT_TARGET =
|
363
|
+
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
360
364
|
MACOSX_DEPLOYMENT_TARGET = 10.5;
|
361
365
|
PRODUCT_NAME = "Rhoconnect-client";
|
362
366
|
SDKROOT = iphoneos;
|
@@ -1,5 +1,12 @@
|
|
1
1
|
QT -= core
|
2
2
|
|
3
|
+
equals(QT_MAJOR_VERSION, 5) {
|
4
|
+
equals(QT_MINOR_VERSION, 6) {
|
5
|
+
DEFINES += OS_SAILFISH OS_LINUX
|
6
|
+
QT += core
|
7
|
+
}
|
8
|
+
}
|
9
|
+
|
3
10
|
TARGET = rhoconnect-client
|
4
11
|
TEMPLATE = lib
|
5
12
|
|
@@ -20,6 +27,7 @@ $$RHODES_ROOT/platform/shared\
|
|
20
27
|
../../shared\
|
21
28
|
../../shared/sync
|
22
29
|
|
30
|
+
|
23
31
|
macx {
|
24
32
|
DESTDIR = $$RHODES_ROOT/platform/osx/bin/extensions
|
25
33
|
OBJECTS_DIR = $$RHODES_ROOT/platform/osx/bin/extensions/rhoconnect-client
|
@@ -28,7 +36,7 @@ macx {
|
|
28
36
|
win32 {
|
29
37
|
DESTDIR = $$RHODES_ROOT/platform/win32/bin/extensions
|
30
38
|
OBJECTS_DIR = $$RHODES_ROOT/platform/win32/bin/extensions/rhoconnect-client
|
31
|
-
DEFINES += WIN32 _WINDOWS _LIB _UNICODE UNICODE
|
39
|
+
DEFINES += WIN32 _WINDOWS _LIB _UNICODE UNICODE WIN32_LEAN_AND_MEAN
|
32
40
|
debug {
|
33
41
|
DEFINES += _DEBUG DEBUG
|
34
42
|
}
|
@@ -49,6 +57,8 @@ DEFINES += RHODES_QT_PLATFORM _XOPEN_SOURCE _DARWIN_C_SOURCE
|
|
49
57
|
QMAKE_CXXFLAGS_WARN_ON += -Wno-extra -Wno-unused -Wno-sign-compare -Wno-format -Wno-parentheses
|
50
58
|
# QMAKE_CFLAGS += -fvisibility=hidden
|
51
59
|
# QMAKE_CXXFLAGS += -fvisibility=hidden
|
60
|
+
#QMAKE_CFLAGS_DEBUG -= -O2
|
61
|
+
#QMAKE_CXXFLAGS_DEBUG -= -O2
|
52
62
|
}
|
53
63
|
win32 {
|
54
64
|
QMAKE_CFLAGS_WARN_ON += /wd4996 /wd4100 /wd4005
|
@@ -57,6 +67,25 @@ win32 {
|
|
57
67
|
QMAKE_CXXFLAGS_RELEASE += /O2
|
58
68
|
}
|
59
69
|
|
70
|
+
unix:!macx {
|
71
|
+
DEFINES += OS_LINUX
|
72
|
+
OBJECTS_DIR = $$RHODES_ROOT/platform/linux/bin/extensions/rhoconnect-client
|
73
|
+
DESTDIR = $$RHODES_ROOT/platform/linux/bin/extensions
|
74
|
+
INCLUDEPATH += $$RHODES_ROOT/platform/shared/ruby/linux
|
75
|
+
|
76
|
+
contains(DEFINES, OS_SAILFISH) {
|
77
|
+
INCLUDEPATH += $$RHODES_ROOT/platform/shared/qt/sailfish/src
|
78
|
+
INCLUDEPATH += $$RHODES_ROOT/platform/shared/qt/sailfish
|
79
|
+
INCLUDEPATH += $$RHODES_ROOT/platform/shared/ruby/sailfish
|
80
|
+
}
|
81
|
+
|
82
|
+
DEFINES += HAVE_CONFIG_H OS_LINUX
|
83
|
+
QMAKE_CFLAGS += -fvisibility=hidden
|
84
|
+
QMAKE_CXXFLAGS += -fvisibility=hidden
|
85
|
+
|
86
|
+
}
|
87
|
+
|
88
|
+
|
60
89
|
HEADERS += \
|
61
90
|
../../shared/RhoConnectClientImpl.h\
|
62
91
|
../../shared/RhoConnectClientSingletonImpl.h\
|
@@ -0,0 +1,79 @@
|
|
1
|
+
QT -= core
|
2
|
+
DEFINES += OS_SAILFISH OS_LINUX
|
3
|
+
QT += core
|
4
|
+
|
5
|
+
|
6
|
+
TARGET = rhoconnect-client
|
7
|
+
TEMPLATE = lib
|
8
|
+
|
9
|
+
CONFIG += staticlib warn_on
|
10
|
+
|
11
|
+
INCLUDEPATH += \
|
12
|
+
<%= @rhoRoot %>/lib/commonAPI/coreapi/ext/shared\
|
13
|
+
<%= @rhoRoot %>/platform/shared/common\
|
14
|
+
<%= @rhoRoot %>/platform/shared/rubyext\
|
15
|
+
<%= @rhoRoot %>/platform/shared/ruby/include\
|
16
|
+
<%= @rhoRoot %>/platform/shared\
|
17
|
+
<%= @rhoRoot %>/platform/shared/sync\
|
18
|
+
<%= @rhoRoot %>/platform/shared\
|
19
|
+
<%= @extRoot %>/ext/shared\
|
20
|
+
<%= @extRoot %>/ext/shared/sync
|
21
|
+
|
22
|
+
DEFINES += RHODES_QT_PLATFORM _XOPEN_SOURCE _DARWIN_C_SOURCE
|
23
|
+
|
24
|
+
!isEmpty(RHOSIMULATOR_BUILD) {
|
25
|
+
DEFINES += RHODES_EMULATOR
|
26
|
+
}
|
27
|
+
|
28
|
+
!win32 {
|
29
|
+
QMAKE_CFLAGS_WARN_ON += -Wno-extra -Wno-unused -Wno-sign-compare -Wno-format -Wno-parentheses
|
30
|
+
QMAKE_CXXFLAGS_WARN_ON += -Wno-extra -Wno-unused -Wno-sign-compare -Wno-format -Wno-parentheses
|
31
|
+
# QMAKE_CFLAGS += -fvisibility=hidden
|
32
|
+
# QMAKE_CXXFLAGS += -fvisibility=hidden
|
33
|
+
}
|
34
|
+
|
35
|
+
unix:!macx {
|
36
|
+
OBJECTS_DIR = $$PWD/bin/tmp
|
37
|
+
INCLUDEPATH += <%= @rhoRoot %>/platform/shared/ruby/sailfish
|
38
|
+
|
39
|
+
DESTDIR = $$PWD/../extensions
|
40
|
+
contains(DEFINES, OS_SAILFISH) {
|
41
|
+
INCLUDEPATH += <%= @rhoRoot %>/platform/shared/qt/sailfish/src
|
42
|
+
INCLUDEPATH += <%= @rhoRoot %>/platform/shared/qt/sailfish
|
43
|
+
}
|
44
|
+
|
45
|
+
DEFINES += HAVE_CONFIG_H OS_LINUX
|
46
|
+
QMAKE_CFLAGS += -fvisibility=hidden
|
47
|
+
QMAKE_CXXFLAGS += -fvisibility=hidden
|
48
|
+
}
|
49
|
+
|
50
|
+
|
51
|
+
HEADERS += \
|
52
|
+
<%= @extRoot %>/ext/shared/RhoConnectClientImpl.h\
|
53
|
+
<%= @extRoot %>/ext/shared/RhoConnectClientSingletonImpl.h\
|
54
|
+
<%= @extRoot %>/ext/shared/generated/cpp/IRhoConnectClient.h\
|
55
|
+
<%= @extRoot %>/ext/shared/generated/cpp/RhoConnectClientBase.h\
|
56
|
+
<%= @extRoot %>/ext/shared/sync/ClientRegister.h\
|
57
|
+
<%= @extRoot %>/ext/shared/sync/ISyncProtocol.h\
|
58
|
+
<%= @extRoot %>/ext/shared/sync/SyncEngine.h\
|
59
|
+
<%= @extRoot %>/ext/shared/sync/SyncNotify.h\
|
60
|
+
<%= @extRoot %>/ext/shared/sync/SyncProtocol_3.h\
|
61
|
+
<%= @extRoot %>/ext/shared/sync/SyncProtocol_4.h\
|
62
|
+
<%= @extRoot %>/ext/shared/sync/SyncSource.h\
|
63
|
+
<%= @extRoot %>/ext/shared/sync/SyncThread.h
|
64
|
+
|
65
|
+
SOURCES += \
|
66
|
+
<%= @extRoot %>/ext/shared/RhoConnectClientImpl.cpp\
|
67
|
+
<%= @extRoot %>/ext/shared/initRhoconnectClient.cpp\
|
68
|
+
<%= @extRoot %>/ext/shared/rhoconnectclient.c\
|
69
|
+
<%= @extRoot %>/ext/shared/generated/rhoconnectclient_api_init.cpp\
|
70
|
+
<%= @extRoot %>/ext/shared/generated/rhoconnectclient_js_api.cpp\
|
71
|
+
<%= @extRoot %>/ext/shared/generated/rhoconnectclient_ruby_api.c\
|
72
|
+
<%= @extRoot %>/ext/shared/generated/cpp/RhoConnectClientBase.cpp\
|
73
|
+
<%= @extRoot %>/ext/shared/generated/cpp/RhoConnectClient_js_wrap.cpp\
|
74
|
+
<%= @extRoot %>/ext/shared/generated/cpp/RhoConnectClient_ruby_wrap.cpp\
|
75
|
+
<%= @extRoot %>/ext/shared/sync/ClientRegister.cpp\
|
76
|
+
<%= @extRoot %>/ext/shared/sync/SyncEngine.cpp\
|
77
|
+
<%= @extRoot %>/ext/shared/sync/SyncNotify.cpp\
|
78
|
+
<%= @extRoot %>/ext/shared/sync/SyncSource.cpp\
|
79
|
+
<%= @extRoot %>/ext/shared/sync/SyncThread.cpp
|
@@ -134,7 +134,7 @@ CClientRegister::CClientRegister() : m_nPollInterval(POLL_INTERVAL_SECONDS), m_s
|
|
134
134
|
CClientRegister::~CClientRegister()
|
135
135
|
{
|
136
136
|
doStop();
|
137
|
-
m_pInstance =
|
137
|
+
m_pInstance = 0;
|
138
138
|
}
|
139
139
|
void CClientRegister::setRhoconnectCredentials(const String& user, const String& pass, const String& session)
|
140
140
|
{
|
@@ -209,7 +209,7 @@ void CClientRegister::run()
|
|
209
209
|
{
|
210
210
|
i++;
|
211
211
|
LOG(INFO)+"Try to (un)register: " + i;
|
212
|
-
if ( CSyncThread::getInstance() !=
|
212
|
+
if ( CSyncThread::getInstance() != 0 )
|
213
213
|
{
|
214
214
|
EnState state = getState();
|
215
215
|
if ( (stRegister==state) && doRegister(CSyncThread::getSyncEngine()) )
|
@@ -231,7 +231,11 @@ void CClientRegister::run()
|
|
231
231
|
|
232
232
|
String CClientRegister::getRegisterBody(const String& strClientID)
|
233
233
|
{
|
234
|
+
#if !defined(OS_SAILFISH) && !defined(OS_LINUX)
|
234
235
|
String strPushType = rho::push::CPushManager::getInstance()->getDefaultID();
|
236
|
+
#else
|
237
|
+
String strPushType = "";
|
238
|
+
#endif
|
235
239
|
if(strPushType == "rhoconnect")
|
236
240
|
{
|
237
241
|
strPushType = "rhoconnect_push";
|
@@ -124,14 +124,14 @@ void CSyncEngine::CSourceOptions::setProperty(int nSrcID, const char* szPropName
|
|
124
124
|
synchronized(m_mxSrcOptions)
|
125
125
|
{
|
126
126
|
Hashtable<String,String>* phashOptions = m_hashSrcOptions.get(nSrcID);
|
127
|
-
if ( phashOptions ==
|
127
|
+
if ( phashOptions == 0 )
|
128
128
|
{
|
129
129
|
phashOptions = new Hashtable<String,String>();
|
130
130
|
m_hashSrcOptions.put( nSrcID, phashOptions );
|
131
131
|
}
|
132
132
|
|
133
133
|
Hashtable<String,String>& hashOptions = *phashOptions;
|
134
|
-
hashOptions.put(szPropName,szPropValue!=
|
134
|
+
hashOptions.put(szPropName,szPropValue!=0?szPropValue:"");
|
135
135
|
}
|
136
136
|
}
|
137
137
|
|
@@ -141,7 +141,7 @@ String CSyncEngine::CSourceOptions::getProperty(int nSrcID, const char* szPropNa
|
|
141
141
|
synchronized(m_mxSrcOptions)
|
142
142
|
{
|
143
143
|
Hashtable<String,String>* phashOptions = m_hashSrcOptions.get(nSrcID);
|
144
|
-
if ( phashOptions !=
|
144
|
+
if ( phashOptions != 0 )
|
145
145
|
{
|
146
146
|
Hashtable<String,String>& hashOptions = *phashOptions;
|
147
147
|
res = hashOptions.get(szPropName);
|
@@ -198,11 +198,11 @@ void CSyncEngine::prepareSync(ESyncState eState, const CSourceID* oSrcID)
|
|
198
198
|
}else
|
199
199
|
m_nErrCode = RhoAppAdapter.ERR_CLIENTISNOTLOGGEDIN;
|
200
200
|
|
201
|
-
CSyncSource* src =
|
202
|
-
if ( oSrcID !=
|
201
|
+
CSyncSource* src = 0;
|
202
|
+
if ( oSrcID != 0 )
|
203
203
|
src = findSource(*oSrcID);
|
204
204
|
|
205
|
-
if ( src !=
|
205
|
+
if ( src != 0 )
|
206
206
|
{
|
207
207
|
src->m_nErrCode = m_nErrCode;
|
208
208
|
src->m_strError = m_strError;
|
@@ -217,7 +217,7 @@ void CSyncEngine::prepareSync(ESyncState eState, const CSourceID* oSrcID)
|
|
217
217
|
|
218
218
|
void CSyncEngine::doSyncAllSources(const String& strQueryParams, boolean bSyncOnlyChangedSources)
|
219
219
|
{
|
220
|
-
prepareSync(esSyncAllSources,
|
220
|
+
prepareSync(esSyncAllSources, 0);
|
221
221
|
|
222
222
|
if ( isContinueSync() )
|
223
223
|
{
|
@@ -304,7 +304,7 @@ bool CSyncEngine::recoverSearch(const String& strUrl, const String& strBody, int
|
|
304
304
|
|
305
305
|
String strSrcName = oSrcArr.getCurItem().getString("source");
|
306
306
|
CSyncSource* pSrc = findSourceByName(strSrcName);
|
307
|
-
if ( pSrc ==
|
307
|
+
if ( pSrc == 0 )
|
308
308
|
{
|
309
309
|
LOG(ERROR) + "Sync server send search data for unknown source name:" + strSrcName;
|
310
310
|
errorCode = RhoAppAdapter.ERR_UNEXPECTEDSERVERRESPONSE;
|
@@ -323,7 +323,7 @@ bool CSyncEngine::recoverSearch(const String& strUrl, const String& strBody, int
|
|
323
323
|
|
324
324
|
void CSyncEngine::doSearch(rho::Vector<rho::String>& arSources, String strParams, const String& strFrom, boolean bSearchSyncChanges, int nProgressStep)
|
325
325
|
{
|
326
|
-
prepareSync(esSearch,
|
326
|
+
prepareSync(esSearch, 0);
|
327
327
|
if ( !isContinueSync() )
|
328
328
|
{
|
329
329
|
if ( getState() != esExit )
|
@@ -339,7 +339,7 @@ void CSyncEngine::doSearch(rho::Vector<rho::String>& arSources, String strParams
|
|
339
339
|
for ( int i = 0; i < (int)arSources.size(); i++ )
|
340
340
|
{
|
341
341
|
CSyncSource* pSrc = findSourceByName(arSources.elementAt(i));
|
342
|
-
if ( pSrc !=
|
342
|
+
if ( pSrc != 0 )
|
343
343
|
pSrc->syncClientChanges();
|
344
344
|
}
|
345
345
|
}
|
@@ -374,7 +374,7 @@ void CSyncEngine::doSearch(rho::Vector<rho::String>& arSources, String strParams
|
|
374
374
|
for ( int i = 0; i < (int)arSources.size(); i++ )
|
375
375
|
{
|
376
376
|
CSyncSource* pSrc = findSourceByName(arSources.elementAt(i));
|
377
|
-
if ( pSrc !=
|
377
|
+
if ( pSrc != 0 )
|
378
378
|
{
|
379
379
|
String source_token;
|
380
380
|
if ( !pSrc->isTokenFromDB() && pSrc->getToken() > 1 )
|
@@ -416,7 +416,7 @@ void CSyncEngine::doSearch(rho::Vector<rho::String>& arSources, String strParams
|
|
416
416
|
continue;
|
417
417
|
}
|
418
418
|
|
419
|
-
const char* szData =
|
419
|
+
const char* szData = 0;
|
420
420
|
if ( strTestResp.length() > 0 )
|
421
421
|
{
|
422
422
|
szData = strTestResp.c_str();
|
@@ -466,7 +466,7 @@ void CSyncEngine::doSearch(rho::Vector<rho::String>& arSources, String strParams
|
|
466
466
|
|
467
467
|
String strSrcName = oSrcArr.getCurItem().getString("source");
|
468
468
|
CSyncSource* pSrc = findSourceByName(strSrcName);
|
469
|
-
if ( pSrc ==
|
469
|
+
if ( pSrc == 0 )
|
470
470
|
{
|
471
471
|
LOG(ERROR) + "Sync server send search data for unknown source name:" + strSrcName;
|
472
472
|
stopSync();
|
@@ -487,7 +487,7 @@ void CSyncEngine::doSearch(rho::Vector<rho::String>& arSources, String strParams
|
|
487
487
|
for ( int i = 0; i < (int)arSources.size(); i++ )
|
488
488
|
{
|
489
489
|
CSyncSource* pSrc = findSourceByName(arSources.elementAt(i));
|
490
|
-
if ( pSrc !=
|
490
|
+
if ( pSrc != 0 )
|
491
491
|
pSrc->processToken(0);
|
492
492
|
}
|
493
493
|
|
@@ -506,7 +506,7 @@ void CSyncEngine::doSearch(rho::Vector<rho::String>& arSources, String strParams
|
|
506
506
|
for ( int i = 0; i < (int)arSources.size(); i++ )
|
507
507
|
{
|
508
508
|
CSyncSource* pSrc = findSourceByName(arSources.elementAt(i));
|
509
|
-
if ( pSrc ==
|
509
|
+
if ( pSrc == 0 )
|
510
510
|
continue;
|
511
511
|
CSyncSource& oSrc = *pSrc;
|
512
512
|
oSrc.getDB().executeSQL("UPDATE sources set last_updated=?,last_inserted_size=?,last_deleted_size=?, \
|
@@ -529,7 +529,7 @@ void CSyncEngine::doSyncSource(const CSourceID& oSrcID, const String& strQueryPa
|
|
529
529
|
if ( isContinueSync() )
|
530
530
|
{
|
531
531
|
CSyncSource* pSrc = findSource(oSrcID);
|
532
|
-
if ( pSrc !=
|
532
|
+
if ( pSrc != 0 )
|
533
533
|
{
|
534
534
|
CSyncSource& src = *pSrc;
|
535
535
|
LOG(INFO) +"Started synchronization of the data source: " + src.getName();
|
@@ -564,7 +564,7 @@ CSyncSource* CSyncEngine::findSource(const CSourceID& oSrcID)
|
|
564
564
|
return &src;
|
565
565
|
}
|
566
566
|
|
567
|
-
return
|
567
|
+
return 0;
|
568
568
|
}
|
569
569
|
|
570
570
|
CSyncSource* CSyncEngine::findSourceByName(const String& strSrcName)
|
@@ -581,7 +581,7 @@ CSyncSource* CSyncEngine::findSourceById(int srcId)
|
|
581
581
|
return &src;
|
582
582
|
}
|
583
583
|
|
584
|
-
return
|
584
|
+
return 0;
|
585
585
|
}
|
586
586
|
|
587
587
|
|
@@ -609,7 +609,7 @@ void CSyncEngine::loadAllSources()
|
|
609
609
|
RhoAppAdapter.loadAllSyncSources();
|
610
610
|
else
|
611
611
|
{
|
612
|
-
NetResponse resp = getNet().pushData( getNet().resolveUrl("/system/loadallsyncsources"), "",
|
612
|
+
NetResponse resp = getNet().pushData( getNet().resolveUrl("/system/loadallsyncsources"), "", 0 );
|
613
613
|
}
|
614
614
|
}else
|
615
615
|
RhoAppAdapter.loadAllSyncSources();
|
@@ -748,7 +748,7 @@ void CSyncEngine::processServerSources(String strSources)
|
|
748
748
|
RhoAppAdapter.loadServerSources(strSources);
|
749
749
|
else
|
750
750
|
{
|
751
|
-
NetResponse resp = getNet().pushData( getNet().resolveUrl("/system/loadserversources"), strSources,
|
751
|
+
NetResponse resp = getNet().pushData( getNet().resolveUrl("/system/loadserversources"), strSources, 0 );
|
752
752
|
}
|
753
753
|
}else
|
754
754
|
RhoAppAdapter.loadServerSources(strSources);
|
@@ -762,7 +762,7 @@ void CSyncEngine::processServerSources(String strSources)
|
|
762
762
|
boolean CSyncEngine::resetClientIDByNet(const String& strClientID)//throws Exception
|
763
763
|
{
|
764
764
|
NetResponse resp = getNetClientID().doRequest(getProtocol().getClientResetMethod(),
|
765
|
-
getProtocol().getClientResetUrl(strClientID), getProtocol().getClientResetBody(), this,
|
765
|
+
getProtocol().getClientResetUrl(strClientID), getProtocol().getClientResetBody(), this, 0 );
|
766
766
|
if ( !resp.isOK() )
|
767
767
|
{
|
768
768
|
m_nErrCode = RhoAppAdapter.getErrorFromResponse(resp);
|
@@ -777,8 +777,8 @@ String CSyncEngine::requestClientIDByNet()
|
|
777
777
|
{
|
778
778
|
String clientCreateBody;
|
779
779
|
NetResponse resp = getNetClientID().doRequest(getProtocol().getClientCreateMethod(),
|
780
|
-
getProtocol().getClientCreateUrl(), "", this,
|
781
|
-
if ( resp.isOK() && resp.getCharData() !=
|
780
|
+
getProtocol().getClientCreateUrl(), "", this, 0);
|
781
|
+
if ( resp.isOK() && resp.getCharData() != 0 )
|
782
782
|
{
|
783
783
|
const char* szData = resp.getCharData();
|
784
784
|
|
@@ -906,7 +906,7 @@ void CSyncEngine::loadBulkPartition(const String& strPartition )
|
|
906
906
|
reqHeaders.put(getProtocol().getClientIDHeader(), getClientID());
|
907
907
|
NetResponse resp = getNet().doRequest(getProtocol().getServerBulkDataMethod(), strUrl, strBody, this, &reqHeaders);
|
908
908
|
const char* szData = resp.getCharData();
|
909
|
-
if ( !resp.isOK() || szData ==
|
909
|
+
if ( !resp.isOK() || szData == 0 || *szData == 0)
|
910
910
|
{
|
911
911
|
LOG(ERROR) + "Bulk sync failed: server return an error.";
|
912
912
|
stopSync();
|
@@ -950,7 +950,7 @@ void CSyncEngine::loadBulkPartition(const String& strPartition )
|
|
950
950
|
String strSqlDataUrl = CFilePath::join(getHostFromUrl(serverUrl), strDataUrl) +strZip;
|
951
951
|
LOG(INFO) + "Bulk sync: download data from server: " + strSqlDataUrl;
|
952
952
|
{
|
953
|
-
NetResponse resp1 = getNet().pullFile(strSqlDataUrl, fDataName+strZip, this,
|
953
|
+
NetResponse resp1 = getNet().pullFile(strSqlDataUrl, fDataName+strZip, this, 0, true, false);
|
954
954
|
if ( !resp1.isOK() )
|
955
955
|
{
|
956
956
|
LOG(ERROR) + "Bulk sync failed: cannot download database file.";
|
@@ -1057,7 +1057,7 @@ void CSyncEngine::syncAllSources(const String& strQueryParams, boolean bSyncOnly
|
|
1057
1057
|
}
|
1058
1058
|
|
1059
1059
|
if ( !isSchemaChanged() && getState() != CSyncEngine::esStop )
|
1060
|
-
getNotify().fireSyncNotification(
|
1060
|
+
getNotify().fireSyncNotification(0, true, RhoAppAdapter.ERR_NONE, RhoAppAdapter.getMessageText("sync_completed"));
|
1061
1061
|
}
|
1062
1062
|
|
1063
1063
|
void CSyncEngine::login(String name, String password, const CSyncNotification& oNotify)
|
@@ -1121,7 +1121,7 @@ void CSyncEngine::login(String name, String password, const CSyncNotification& o
|
|
1121
1121
|
RhoAppAdapter.resetDBOnSyncUserChanged();
|
1122
1122
|
else
|
1123
1123
|
{
|
1124
|
-
NetResponse resp = getNet().pushData( getNet().resolveUrl("/system/resetDBOnSyncUserChanged"), "",
|
1124
|
+
NetResponse resp = getNet().pushData( getNet().resolveUrl("/system/resetDBOnSyncUserChanged"), "", 0 );
|
1125
1125
|
}
|
1126
1126
|
}
|
1127
1127
|
}
|
@@ -73,7 +73,7 @@ void CSyncNotify::addObjectNotify(int nSrcID, const String& strObject)
|
|
73
73
|
synchronized(m_mxObjectNotify)
|
74
74
|
{
|
75
75
|
Hashtable<String,int>* phashObject = m_hashSrcIDAndObject.get(nSrcID);
|
76
|
-
if ( phashObject ==
|
76
|
+
if ( phashObject == 0 )
|
77
77
|
{
|
78
78
|
phashObject = new Hashtable<String,int>();
|
79
79
|
m_hashSrcIDAndObject.put( nSrcID, phashObject );
|
@@ -198,7 +198,7 @@ void CSyncNotify::onObjectChanged(int nSrcID, const String& strObject, int nType
|
|
198
198
|
processSingleObject();
|
199
199
|
|
200
200
|
Hashtable<String,int>* phashObject = m_hashSrcIDAndObject.get(nSrcID);
|
201
|
-
if ( phashObject ==
|
201
|
+
if ( phashObject == 0 )
|
202
202
|
return;
|
203
203
|
|
204
204
|
Hashtable<String,int>& hashObject = *phashObject;
|
@@ -212,7 +212,7 @@ void CSyncNotify::addCreateObjectError(int nSrcID, const String& strObject, cons
|
|
212
212
|
synchronized(m_mxObjectNotify)
|
213
213
|
{
|
214
214
|
Hashtable<String,String>* phashErrors = m_hashCreateObjectErrors.get(nSrcID);
|
215
|
-
if ( phashErrors ==
|
215
|
+
if ( phashErrors == 0 )
|
216
216
|
{
|
217
217
|
phashErrors = new Hashtable<String,String>();
|
218
218
|
m_hashCreateObjectErrors.put( nSrcID, phashErrors );
|
@@ -232,7 +232,7 @@ void CSyncNotify::appendCreateObjectErrorInfo(int nSrcID, Hashtable< String, Has
|
|
232
232
|
Hashtable<String,String>* phashErrors = m_hashCreateObjectErrors.get(nSrcID);
|
233
233
|
|
234
234
|
|
235
|
-
if ( phashErrors ==
|
235
|
+
if ( phashErrors == 0 )
|
236
236
|
return ;
|
237
237
|
|
238
238
|
Hashtable<String,String>& hashErrors = *phashErrors;
|
@@ -266,7 +266,7 @@ void CSyncNotify::onSyncSourceEnd( int nSrc, VectorPtr<CSyncSource*>& sources )
|
|
266
266
|
/* if ( getSync().getState() == CSyncEngine::esStop && src.m_nErrCode != RhoAppAdapter.ERR_NONE )
|
267
267
|
{
|
268
268
|
CSyncNotification* pSN = getSyncNotifyBySrc(&src);
|
269
|
-
if ( pSN !=
|
269
|
+
if ( pSN != 0 )
|
270
270
|
fireSyncNotification(&src, true, src.m_nErrCode, "");
|
271
271
|
else
|
272
272
|
fireAllSyncNotifications(true, src.m_nErrCode, src.m_strError, "" );
|
@@ -297,7 +297,7 @@ void CSyncNotify::setSyncNotification(int source_id, CSyncNotification* pNotify
|
|
297
297
|
}
|
298
298
|
|
299
299
|
CSyncNotification::CSyncNotification(const apiGenerator::CMethodResult& callbackData, boolean bRemoveAfterFire) :
|
300
|
-
m_callbackData(callbackData), m_cCallback(
|
300
|
+
m_callbackData(callbackData), m_cCallback(0), m_cCallbackData(0), m_bRemoveAfterFire(bRemoveAfterFire)
|
301
301
|
{
|
302
302
|
// if ( m_callbackData.strUrl.length() > 0 )
|
303
303
|
// m_callbackData.strUrl = RHODESAPPBASE().canonicalizeRhoUrl(m_callbackData.strUrl);
|
@@ -322,7 +322,7 @@ String CSyncNotification::toString()const
|
|
322
322
|
}
|
323
323
|
|
324
324
|
CObjectNotification::CObjectNotification(const apiGenerator::CMethodResult& callbackData) :
|
325
|
-
m_callbackData(callbackData), m_cCallback(
|
325
|
+
m_callbackData(callbackData), m_cCallback(0), m_cCallbackData(0)
|
326
326
|
{
|
327
327
|
}
|
328
328
|
|
@@ -366,7 +366,7 @@ void CSyncNotify::reportSyncStatus(String status, int error, String strDetails)
|
|
366
366
|
{
|
367
367
|
synchronized(m_mxSyncNotifications)
|
368
368
|
{
|
369
|
-
if (/*m_syncStatusListener !=
|
369
|
+
if (/*m_syncStatusListener != 0 && */(isReportingEnabled() || error == RhoAppAdapter.ERR_SYNCVERSION) ) {
|
370
370
|
|
371
371
|
if ( error == RhoAppAdapter.ERR_SYNCVERSION )
|
372
372
|
{
|
@@ -402,7 +402,7 @@ void CSyncNotify::fireBulkSyncNotification( boolean bFinish, String status, Stri
|
|
402
402
|
params.put("bulk_status",status);
|
403
403
|
params.put("sync_type","bulk");
|
404
404
|
|
405
|
-
doFireSyncNotification(
|
405
|
+
doFireSyncNotification( 0, bFinish, nErrCode, "", ¶ms, 0 );
|
406
406
|
}
|
407
407
|
|
408
408
|
|
@@ -413,9 +413,9 @@ void CSyncNotify::fireAllSyncNotifications( boolean bFinish, int nErrCode, Strin
|
|
413
413
|
|
414
414
|
synchronized(m_mxSyncNotifications)
|
415
415
|
{
|
416
|
-
CSyncNotification* pSN = getSyncNotifyBySrc(
|
417
|
-
if ( pSN !=
|
418
|
-
doFireSyncNotification(
|
416
|
+
CSyncNotification* pSN = getSyncNotifyBySrc(0);
|
417
|
+
if ( pSN != 0 )
|
418
|
+
doFireSyncNotification( 0, bFinish, nErrCode, strError, 0, 0/*strServerError*/ );
|
419
419
|
}
|
420
420
|
}
|
421
421
|
|
@@ -429,10 +429,10 @@ void CSyncNotify::fireSyncNotification( CSyncSource* src, boolean bFinish, int n
|
|
429
429
|
{
|
430
430
|
if ( !getSync().isSearch() )
|
431
431
|
{
|
432
|
-
if ( src !=
|
432
|
+
if ( src != 0 && strMessage.length() == 0 )
|
433
433
|
strMessage = RhoAppAdapter.getMessageText("sync_failed_for") + (*src).getName() + ".";
|
434
434
|
|
435
|
-
reportSyncStatus(strMessage,nErrCode, (src !=
|
435
|
+
reportSyncStatus(strMessage,nErrCode, (src != 0 ? (*src).m_strError : "") );
|
436
436
|
}
|
437
437
|
}
|
438
438
|
|
@@ -441,22 +441,22 @@ void CSyncNotify::fireSyncNotification( CSyncSource* src, boolean bFinish, int n
|
|
441
441
|
|
442
442
|
CSyncNotification* CSyncNotify::getSyncNotifyBySrc(CSyncSource* src)
|
443
443
|
{
|
444
|
-
CSyncNotification* pSN =
|
444
|
+
CSyncNotification* pSN = 0;
|
445
445
|
if ( getSync().isSearch() )
|
446
446
|
pSN = m_pSearchNotification;
|
447
447
|
else
|
448
448
|
{
|
449
|
-
if ( src !=
|
449
|
+
if ( src != 0 )
|
450
450
|
pSN = m_mapSyncNotifications.get( (*src).getID());
|
451
451
|
|
452
|
-
if ( pSN ==
|
452
|
+
if ( pSN == 0 )
|
453
453
|
pSN = m_pAllNotification;
|
454
454
|
}
|
455
455
|
|
456
|
-
if ( pSN ==
|
457
|
-
return
|
456
|
+
if ( pSN == 0 && !getSync().isNoThreadedMode() )
|
457
|
+
return 0;
|
458
458
|
|
459
|
-
return pSN !=
|
459
|
+
return pSN != 0 ? pSN : &m_emptyNotify;
|
460
460
|
}
|
461
461
|
|
462
462
|
void CSyncNotify::fireSyncNotification2( CSyncSource* src, boolean bFinish, int nErrCode, const Hashtable<String,String>& serverErrors)
|
@@ -479,7 +479,7 @@ void CSyncNotify::doFireSyncNotification( CSyncSource* src, boolean bFinish, int
|
|
479
479
|
synchronized(m_mxSyncNotifications)
|
480
480
|
{
|
481
481
|
pSN = getSyncNotifyBySrc(src);
|
482
|
-
if ( pSN ==
|
482
|
+
if ( pSN == 0 )
|
483
483
|
return;
|
484
484
|
|
485
485
|
if ( params != 0 ) {
|
@@ -488,7 +488,7 @@ void CSyncNotify::doFireSyncNotification( CSyncSource* src, boolean bFinish, int
|
|
488
488
|
result.put("sync_type","incremental");
|
489
489
|
}
|
490
490
|
|
491
|
-
if ( src !=
|
491
|
+
if ( src != 0 )
|
492
492
|
{
|
493
493
|
result.put("total_count", convertToStringA( (*src).getTotalCount()));
|
494
494
|
result.put("processed_count", convertToStringA( (*src).getTotalCount()));
|
@@ -505,7 +505,7 @@ void CSyncNotify::doFireSyncNotification( CSyncSource* src, boolean bFinish, int
|
|
505
505
|
if ( getSync().isSchemaChanged() )
|
506
506
|
status = "schema_changed";
|
507
507
|
else
|
508
|
-
status = (src ==
|
508
|
+
status = (src == 0 && ( (params==0) || params->size()==0 ) ) ? "complete" : "ok";
|
509
509
|
}
|
510
510
|
else
|
511
511
|
{
|
@@ -519,7 +519,7 @@ void CSyncNotify::doFireSyncNotification( CSyncSource* src, boolean bFinish, int
|
|
519
519
|
String error;
|
520
520
|
if ( strError.length() > 0 ) {
|
521
521
|
error = strError;
|
522
|
-
} else if ( src !=
|
522
|
+
} else if ( src != 0 ) {
|
523
523
|
error = (*src).m_strError;
|
524
524
|
}
|
525
525
|
|
@@ -530,7 +530,7 @@ void CSyncNotify::doFireSyncNotification( CSyncSource* src, boolean bFinish, int
|
|
530
530
|
}
|
531
531
|
}
|
532
532
|
|
533
|
-
if ( src !=
|
533
|
+
if ( src != 0 ) {
|
534
534
|
appendCreateObjectErrorInfo( (*src).getID(), errorsL2 );
|
535
535
|
}
|
536
536
|
} else {
|
@@ -542,7 +542,7 @@ void CSyncNotify::doFireSyncNotification( CSyncSource* src, boolean bFinish, int
|
|
542
542
|
bRemoveAfterFire = bRemoveAfterFire && pSN->m_bRemoveAfterFire;
|
543
543
|
}
|
544
544
|
}
|
545
|
-
LOG(INFO) + "Fire notification. Source : " + (src !=
|
545
|
+
LOG(INFO) + "Fire notification. Source : " + (src != 0 ? (*src).getName():"") + "; " + pSN->toString();
|
546
546
|
|
547
547
|
if ( callNotify(*pSN, result, &errorsL2 ) || bRemoveAfterFire)
|
548
548
|
clearNotification(src);
|
@@ -660,13 +660,13 @@ boolean CSyncNotify::callNotify(const CSyncNotification& oNotify, const Hashtabl
|
|
660
660
|
|
661
661
|
void CSyncNotify::clearNotification(CSyncSource* src)
|
662
662
|
{
|
663
|
-
LOG(INFO) + "Clear notification. Source : " + (src !=
|
663
|
+
LOG(INFO) + "Clear notification. Source : " + (src != 0 ? (*src).getName() : "");
|
664
664
|
|
665
665
|
synchronized(m_mxSyncNotifications)
|
666
666
|
{
|
667
667
|
if ( getSync().isSearch() )
|
668
|
-
m_pSearchNotification =
|
669
|
-
else if ( src !=
|
668
|
+
m_pSearchNotification = 0;
|
669
|
+
else if ( src != 0 )
|
670
670
|
m_mapSyncNotifications.remove( (*src).getID());
|
671
671
|
}
|
672
672
|
}
|
@@ -678,7 +678,7 @@ void CSyncNotify::clearSyncNotification(int source_id)
|
|
678
678
|
synchronized(m_mxSyncNotifications)
|
679
679
|
{
|
680
680
|
if ( source_id == -1 )//Clear all
|
681
|
-
m_pAllNotification =
|
681
|
+
m_pAllNotification = 0;
|
682
682
|
else
|
683
683
|
m_mapSyncNotifications.remove(source_id);
|
684
684
|
}
|
@@ -664,7 +664,7 @@ void CSyncSource::syncServerChanges()
|
|
664
664
|
continue;
|
665
665
|
}
|
666
666
|
|
667
|
-
const char* szData =
|
667
|
+
const char* szData = 0;
|
668
668
|
String strTestResp = getSync().getSourceOptions().getProperty(getID(), "rho_server_response");
|
669
669
|
if ( strTestResp.length() > 0 )
|
670
670
|
{
|
@@ -700,10 +700,10 @@ void CSyncSource::processServerErrors(CJSONEntry& oCmds)
|
|
700
700
|
{
|
701
701
|
Hashtable<String, String> errors;
|
702
702
|
|
703
|
-
const char* arErrTypes[] = {"source-error", "search-error", "create-error", "update-error", "delete-error", "update-rollback",
|
703
|
+
const char* arErrTypes[] = {"source-error", "search-error", "create-error", "update-error", "delete-error", "update-rollback", 0};
|
704
704
|
for( int i = 0; ; i++ )
|
705
705
|
{
|
706
|
-
if ( arErrTypes[i] ==
|
706
|
+
if ( arErrTypes[i] == 0 )
|
707
707
|
break;
|
708
708
|
if ( !oCmds.hasName(arErrTypes[i]) )
|
709
709
|
continue;
|
@@ -1154,7 +1154,7 @@ void CSyncSource::processAssociations(const String& strOldObject, const String&
|
|
1154
1154
|
for ( int i = 0; i < (int)m_arAssociations.size(); i++ )
|
1155
1155
|
{
|
1156
1156
|
CSyncSource* pSrc = getSync().findSourceByName(m_arAssociations.elementAt(i).m_strSrcName);
|
1157
|
-
if ( pSrc !=
|
1157
|
+
if ( pSrc != 0 )
|
1158
1158
|
pSrc->updateAssociation(strOldObject, strNewObject, m_arAssociations.elementAt(i).m_strAttrib);
|
1159
1159
|
}
|
1160
1160
|
}
|
@@ -1653,13 +1653,13 @@ boolean CSyncSource::downloadBlob(CAttrValue& value)//throws Exception
|
|
1653
1653
|
LOG(TRACE) + "Download blob: " + url + " => " + fName;
|
1654
1654
|
|
1655
1655
|
const char* nQuest = strchr(url.c_str(),'?');
|
1656
|
-
if ( nQuest
|
1656
|
+
if ( nQuest != NULL )
|
1657
1657
|
url += "&";
|
1658
1658
|
else
|
1659
1659
|
url += "?";
|
1660
1660
|
url += "client_id=" + getSync().getClientID();
|
1661
1661
|
|
1662
|
-
NetResponse resp = getNet().pullFile(url, fName, &getSync(),
|
1662
|
+
NetResponse resp = getNet().pullFile(url, fName, &getSync(), 0, true, false);
|
1663
1663
|
if ( !resp.isOK() )
|
1664
1664
|
{
|
1665
1665
|
CRhoFile::deleteFile(fName.c_str());
|
@@ -1685,7 +1685,10 @@ void CSyncSource::processToken(uint64 token)
|
|
1685
1685
|
}else
|
1686
1686
|
{
|
1687
1687
|
setToken( token );
|
1688
|
+
|
1689
|
+
getDB().Lock();
|
1688
1690
|
getDB().executeSQL("UPDATE sources SET token=? where source_id=?", token, getID() );
|
1691
|
+
getDB().Unlock();
|
1689
1692
|
}
|
1690
1693
|
|
1691
1694
|
}
|
@@ -6,6 +6,9 @@ libraries: ["Rhoconnect-client"]
|
|
6
6
|
project_paths:
|
7
7
|
wp8: ext/platform/wp8/Rhoconnect-client.vcxproj
|
8
8
|
wm: ext/platform/wm/Rhoconnect-client.vcproj
|
9
|
+
|
10
|
+
sailfish:
|
11
|
+
proerb: ext/platform/qt/rhoconnect-client.pro.erb
|
9
12
|
|
10
13
|
xml_api_paths: ext/RhoConnectClient.xml
|
11
14
|
android:
|
@@ -0,0 +1,41 @@
|
|
1
|
+
|
2
|
+
# Class with around building things
|
3
|
+
class JakeRCC
|
4
|
+
|
5
|
+
|
6
|
+
def self.run3_dont_fail(command, cd = nil, env = {})
|
7
|
+
set_list = []
|
8
|
+
env.each_pair do |k, v|
|
9
|
+
if RUBY_PLATFORM =~ /(win|w)32$/
|
10
|
+
set_list << "set \"#{k}=#{v}\"&&"
|
11
|
+
else
|
12
|
+
set_list << "export #{k}=#{v}&&"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
to_print = "CMD: #{command}"
|
17
|
+
to_run = set_list.join('') + command
|
18
|
+
if !cd.nil?
|
19
|
+
to_print = "PWD: #{cd}\n#{to_print}"
|
20
|
+
|
21
|
+
if RUBY_PLATFORM =~ /(win|w)32$/
|
22
|
+
cd_ = cd.gsub('/', "\\")
|
23
|
+
to_run = "cd /d \"#{cd_}\"&&#{to_run}"
|
24
|
+
else
|
25
|
+
to_run = "cd '#{cd}'&&#{to_run}"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
if !env.nil?
|
30
|
+
to_print = "ENV: #{env}\n#{to_print}"
|
31
|
+
end
|
32
|
+
|
33
|
+
system(to_run)
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.run3(command, cd = nil, env = {})
|
37
|
+
fail "[#{command}]" unless self.run3_dont_fail(command, cd, env)
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
end
|
metadata
CHANGED
@@ -1,23 +1,25 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rhoconnect-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 7.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rhomobile Dev Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-10-06 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: RhoConnect client extension
|
14
14
|
email: rhomobile@googlegroups.com
|
15
15
|
executables: []
|
16
|
-
extensions:
|
16
|
+
extensions:
|
17
|
+
- "./ext/extconf-chmod.rb"
|
17
18
|
extra_rdoc_files:
|
18
19
|
- README.md
|
19
20
|
- LICENSE
|
20
21
|
files:
|
22
|
+
- "./ext/extconf-chmod.rb"
|
21
23
|
- "./ext/rhoconnect-client/RhoConnectClient.rb"
|
22
24
|
- "./ext/rhoconnect-client/ext.yml"
|
23
25
|
- "./ext/rhoconnect-client/ext/RhoConnectClient.xml"
|
@@ -33,6 +35,7 @@ files:
|
|
33
35
|
- "./ext/rhoconnect-client/ext/platform/iphone/impl/readme.txt"
|
34
36
|
- "./ext/rhoconnect-client/ext/platform/qt/Rakefile"
|
35
37
|
- "./ext/rhoconnect-client/ext/platform/qt/rhoconnect-client.pro"
|
38
|
+
- "./ext/rhoconnect-client/ext/platform/qt/rhoconnect-client.pro.erb"
|
36
39
|
- "./ext/rhoconnect-client/ext/platform/wm/Rhoconnect-client.sln"
|
37
40
|
- "./ext/rhoconnect-client/ext/platform/wm/Rhoconnect-client.vcproj"
|
38
41
|
- "./ext/rhoconnect-client/ext/platform/wm/Rhoconnect-client.vsprops"
|
@@ -60,6 +63,7 @@ files:
|
|
60
63
|
- "./ext/rhoconnect-client/ext/shared/sync/SyncSource.h"
|
61
64
|
- "./ext/rhoconnect-client/ext/shared/sync/SyncThread.cpp"
|
62
65
|
- "./ext/rhoconnect-client/ext/shared/sync/SyncThread.h"
|
66
|
+
- "./lib/build/jakercc.rb"
|
63
67
|
- "./lib/build/run_rhoconnect_spec.rb"
|
64
68
|
- "./lib/rhoconnect-client.rb"
|
65
69
|
- "./platform/shared/RhoConnectClient/RhoConnectClient.cpp"
|