rhoconnect-client 5.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +9 -0
- data/CREDITS +0 -0
- data/LICENSE +9 -0
- data/README.md +47 -0
- data/ext/rhoconnect-client/RhoConnectClient.rb +190 -0
- data/ext/rhoconnect-client/ext/RhoConnectClient.xml +726 -0
- data/ext/rhoconnect-client/ext/build +26 -0
- data/ext/rhoconnect-client/ext/build.bat +30 -0
- data/ext/rhoconnect-client/ext/platform/android/ext_java.files +1 -0
- data/ext/rhoconnect-client/ext/platform/android/ext_native.files +14 -0
- data/ext/rhoconnect-client/ext/platform/android/src/com/rhoconnectclient/RhoconnectClient.java +1 -0
- data/ext/rhoconnect-client/ext/platform/iphone/.gitignore +1 -0
- data/ext/rhoconnect-client/ext/platform/iphone/Rakefile +74 -0
- data/ext/rhoconnect-client/ext/platform/iphone/RhoconnectClient.xcodeproj/project.pbxproj +390 -0
- data/ext/rhoconnect-client/ext/platform/iphone/RhoconnectClient_Prefix.pch +7 -0
- data/ext/rhoconnect-client/ext/platform/iphone/impl/readme.txt +7 -0
- data/ext/rhoconnect-client/ext/platform/qt/Rakefile +35 -0
- data/ext/rhoconnect-client/ext/platform/qt/rhoconnect-client.pro +88 -0
- data/ext/rhoconnect-client/ext/platform/wm/Rhoconnect-client.sln +36 -0
- data/ext/rhoconnect-client/ext/platform/wm/Rhoconnect-client.vcproj +774 -0
- data/ext/rhoconnect-client/ext/platform/wm/Rhoconnect-client.vsprops +15 -0
- data/ext/rhoconnect-client/ext/platform/wm/src/rhoconnectclient_wm.cpp +40 -0
- data/ext/rhoconnect-client/ext/platform/wm/src/rhoconnectclient_wm.h +2 -0
- data/ext/rhoconnect-client/ext/platform/wp8/Rhoconnect-client.props +22 -0
- data/ext/rhoconnect-client/ext/platform/wp8/Rhoconnect-client.sln +32 -0
- data/ext/rhoconnect-client/ext/platform/wp8/Rhoconnect-client.vcxproj +220 -0
- data/ext/rhoconnect-client/ext/platform/wp8/Rhoconnect-client.vcxproj.filters +103 -0
- data/ext/rhoconnect-client/ext/shared/RhoConnectClientImpl.cpp +273 -0
- data/ext/rhoconnect-client/ext/shared/RhoConnectClientImpl.h +60 -0
- data/ext/rhoconnect-client/ext/shared/RhoConnectClientSingletonImpl.h +53 -0
- data/ext/rhoconnect-client/ext/shared/initRhoconnectClient.cpp +207 -0
- data/ext/rhoconnect-client/ext/shared/rhoconnectclient.c +18 -0
- data/ext/rhoconnect-client/ext/shared/sync/ClientRegister.cpp +398 -0
- data/ext/rhoconnect-client/ext/shared/sync/ClientRegister.h +147 -0
- data/ext/rhoconnect-client/ext/shared/sync/ISyncProtocol.h +91 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncEngine.cpp +1245 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncEngine.h +213 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncNotify.cpp +737 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncNotify.h +209 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncProtocol_3.h +220 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncProtocol_4.h +259 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncSource.cpp +1694 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncSource.h +212 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncThread.cpp +583 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncThread.h +250 -0
- data/ext/rhoconnect-client/ext.yml +12 -0
- data/lib/build/run_rhoconnect_spec.rb +135 -0
- data/lib/rhoconnect-client.rb +3 -0
- data/platform/shared/RhoConnectClient/RhoConnectClient.cpp +1673 -0
- data/platform/shared/RhoConnectClient/RhoConnectClient.h +181 -0
- data/platform/shared/RhoConnectClient/RhoError.h +77 -0
- data/rhoconnect-client/C++/Tests/RhoConnectClientTest.cpp +830 -0
- data/rhoconnect-client/C++/Tests/win32/.gitignore +3 -0
- data/rhoconnect-client/C++/Tests/win32/RhoConnectClient.sln +65 -0
- data/rhoconnect-client/C++/Tests/win32/RhoConnectClient.vcproj +634 -0
- data/rhoconnect-client/C++/Tests/win32/RhoConnectClientTest/RhoConnectClientTest.vcproj +222 -0
- data/rhoconnect-client/C++/Tests/win32/RhoConnectClientTest/stdafx.h +65 -0
- data/rhoconnect-client/C++/Tests/win32/stdafx.h +65 -0
- data/rhoconnect-client/CHANGELOG +18 -0
- data/rhoconnect-client/Java/Android/build/android.rake +387 -0
- data/rhoconnect-client/Java/Android/build/android_sdk.rb +582 -0
- data/rhoconnect-client/Java/Android/build/libcurl_build.files +73 -0
- data/rhoconnect-client/Java/Android/build/libjson_build.files +9 -0
- data/rhoconnect-client/Java/Android/build/librhocommon_build.files +14 -0
- data/rhoconnect-client/Java/Android/build/librhodb_build.files +5 -0
- data/rhoconnect-client/Java/Android/build/librhoimpl_build.files +13 -0
- data/rhoconnect-client/Java/Android/build/librholog_build.files +4 -0
- data/rhoconnect-client/Java/Android/build/libsqlite_build.files +1 -0
- data/rhoconnect-client/Java/Android/build/libsync_build.files +7 -0
- data/rhoconnect-client/Java/Android/build/libunzip_build.files +1 -0
- data/rhoconnect-client/Java/Android/build/rhoconnectclient_build.files +3 -0
- data/rhoconnect-client/Java/Android/build/rhoimpljava_build.files +21 -0
- data/rhoconnect-client/Java/Android/src/com/rhomobile/rhodes/Capabilities.java +63 -0
- data/rhoconnect-client/Java/Android/src/com/rhomobile/rhodes/MemoryInfoCollector.java +79 -0
- data/rhoconnect-client/Java/Android/src/com/rhomobile/rhodes/util/ContextFactory.java +63 -0
- data/rhoconnect-client/Java/Android/test/.classpath +9 -0
- data/rhoconnect-client/Java/Android/test/.project +33 -0
- data/rhoconnect-client/Java/Android/test/AndroidManifest.xml +14 -0
- data/rhoconnect-client/Java/Android/test/assets/apps/androidtest.png +0 -0
- data/rhoconnect-client/Java/Android/test/assets/apps/rhoconfig.txt +19 -0
- data/rhoconnect-client/Java/Android/test/assets/apps/rhoconfig.txt.timestamp +1 -0
- data/rhoconnect-client/Java/Android/test/assets/db/syncdb.schema +44 -0
- data/rhoconnect-client/Java/Android/test/assets/db/syncdb.triggers +10 -0
- data/rhoconnect-client/Java/Android/test/assets/db/syncdb_java.triggers +21 -0
- data/rhoconnect-client/Java/Android/test/assets/rho.dat +9 -0
- data/rhoconnect-client/Java/Android/test/proguard.cfg +36 -0
- data/rhoconnect-client/Java/Android/test/project.properties +11 -0
- data/rhoconnect-client/Java/Android/test/res/drawable-hdpi/icon.png +0 -0
- data/rhoconnect-client/Java/Android/test/res/drawable-ldpi/icon.png +0 -0
- data/rhoconnect-client/Java/Android/test/res/drawable-mdpi/icon.png +0 -0
- data/rhoconnect-client/Java/Android/test/res/layout/main.xml +12 -0
- data/rhoconnect-client/Java/Android/test/res/values/strings.xml +5 -0
- data/rhoconnect-client/Java/Android/test/rhoimpl.jar +0 -0
- data/rhoconnect-client/Java/Android/test/src/com/rhomobile/rhoconnect_client_test/TestRhoConnectClient.java +343 -0
- data/rhoconnect-client/Java/Android/test/src/com/rhomobile/rhoconnect_client_test/TestRhoConnectClientBlobs.java +219 -0
- data/rhoconnect-client/Java/RhoConnect/.classpath +6 -0
- data/rhoconnect-client/Java/RhoConnect/.project +93 -0
- data/rhoconnect-client/Java/RhoConnect/assets/apps/rhoconfig.txt +19 -0
- data/rhoconnect-client/Java/RhoConnect/assets/apps/rhoconfig.txt.timestamp +1 -0
- data/rhoconnect-client/Java/RhoConnect/assets/db/syncdb.schema +44 -0
- data/rhoconnect-client/Java/RhoConnect/assets/db/syncdb.triggers +10 -0
- data/rhoconnect-client/Java/RhoConnect/assets/db/syncdb_java.triggers +21 -0
- data/rhoconnect-client/Java/RhoConnect/assets/rho.dat +8 -0
- data/rhoconnect-client/Java/RhoConnect/jni/include/RhoConnectJniNotify.h +61 -0
- data/rhoconnect-client/Java/RhoConnect/jni/include/com_rhomobile_rhoconnect_RhoConnectClient.h +181 -0
- data/rhoconnect-client/Java/RhoConnect/jni/include/com_rhomobile_rhoconnect_RhoConnectNotify.h +13 -0
- data/rhoconnect-client/Java/RhoConnect/jni/include/com_rhomobile_rhoconnect_RhoConnectNotify_IDelegate.h +13 -0
- data/rhoconnect-client/Java/RhoConnect/jni/include/com_rhomobile_rhoconnect_RhoConnectObjectNotify.h +13 -0
- data/rhoconnect-client/Java/RhoConnect/jni/include/com_rhomobile_rhoconnect_RhoConnectObjectNotify_IDelegate.h +13 -0
- data/rhoconnect-client/Java/RhoConnect/jni/include/com_rhomobile_rhoconnect_RhomModel.h +103 -0
- data/rhoconnect-client/Java/RhoConnect/jni/include/rhojava.inc +76 -0
- data/rhoconnect-client/Java/RhoConnect/jni/src/RhoConnectJniClient.cpp +401 -0
- data/rhoconnect-client/Java/RhoConnect/jni/src/RhoConnectJniModel.cpp +332 -0
- data/rhoconnect-client/Java/RhoConnect/jni/src/RhoConnectJniNotify.cpp +223 -0
- data/rhoconnect-client/Java/RhoConnect/jni/src/RhoConnectUtil.cpp +82 -0
- data/rhoconnect-client/Java/RhoConnect/jni/src/RhodesApp.cpp +114 -0
- data/rhoconnect-client/Java/RhoConnect/src/com/rhomobile/rhoconnect/RhoConnectClient.java +108 -0
- data/rhoconnect-client/Java/RhoConnect/src/com/rhomobile/rhoconnect/RhoConnectNotify.java +78 -0
- data/rhoconnect-client/Java/RhoConnect/src/com/rhomobile/rhoconnect/RhoConnectObjectNotify.java +71 -0
- data/rhoconnect-client/Java/RhoConnect/src/com/rhomobile/rhoconnect/RhomModel.java +195 -0
- data/rhoconnect-client/JavaScript/.classpath +10 -0
- data/rhoconnect-client/JavaScript/.gitignore +4 -0
- data/rhoconnect-client/JavaScript/.project +17 -0
- data/rhoconnect-client/JavaScript/README.textile +1 -0
- data/rhoconnect-client/JavaScript/build.xml +185 -0
- data/rhoconnect-client/JavaScript/doc/fsm-sample.js +44 -0
- data/rhoconnect-client/JavaScript/doc/fsm-sample.png +0 -0
- data/rhoconnect-client/JavaScript/src/RhoSyncJS.gwt.xml +21 -0
- data/rhoconnect-client/JavaScript/stubs/RhoSyncStubsJS.gwt.xml +21 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/Capabilities.java +7 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/IRhoRubyHelper.java +7 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/Mutex.java +5 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/RhoAppAdapter.java +39 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/RhoClassFactory.java +29 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/RhoConf.java +100 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/RhoEmptyLogger.java +7 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/RhoEmptyProfiler.java +5 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/RhoLogger.java +32 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/RhoProfiler.java +27 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/RhodesApp.java +25 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/TimeInterval.java +22 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/Tokenizer.java +23 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/db/DBAdapter.java +174 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/db/DBAttrManager.java +15 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/db/DBException.java +5 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/db/IDBResult.java +27 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/file/IFileAccess.java +7 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/file/SimpleFile.java +15 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/net/IHttpConnection.java +22 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/net/NetRequest.java +324 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/net/NetResponse.java +51 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/net/URI.java +64 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/sync/ClientRegister.java +15 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/sync/JSONArrayIterator.java +37 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/sync/JSONEntry.java +48 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/sync/JSONStructIterator.java +41 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/sync/SyncNotify.java +98 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/sync/SyncThread.java +92 -0
- data/rhoconnect-client/JavaScript/war/WEB-INF/lib/gwt-servlet-deps.jar +0 -0
- data/rhoconnect-client/JavaScript/war/WEB-INF/lib/gwt-servlet.jar +0 -0
- data/rhoconnect-client/JavaScript/war/js/fsm-sample.js +54 -0
- data/rhoconnect-client/JavaScript/war/js/rhosync-api.js +237 -0
- data/rhoconnect-client/JavaScript/war/js/rhosync-fsm.js +307 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/4C71D69C9BBC9E6F05C6BA49B01BCBC1.cache.html +3122 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/5146F4FFF34511C8BB2661E920B49E3A.cache.html +3254 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/5248C67481D9D27AD0703D15CDBD2A1C.cache.html +3147 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/EE1DC2692C9C32367B53A39E2358AF23.cache.html +3195 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/clear.cache.gif +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/corner.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/corner_ie6.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/hborder.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/hborder_ie6.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/ie6/corner_dialog_topleft.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/ie6/corner_dialog_topright.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/ie6/hborder_blue_shadow.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/ie6/hborder_gray_shadow.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/ie6/vborder_blue_shadow.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/ie6/vborder_gray_shadow.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/splitPanelThumb.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/vborder.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/vborder_ie6.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/standard.css +1144 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/standard_rtl.css +1145 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/hosted.html +350 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/rhosyncjs.nocache.js +314 -0
- data/rhoconnect-client/JavaScript/war/test/SpecRunner.html +35 -0
- data/rhoconnect-client/JavaScript/war/test/dbtest.html +38 -0
- data/rhoconnect-client/JavaScript/war/test/lib/jasmine-1.0.1/MIT.LICENSE +20 -0
- data/rhoconnect-client/JavaScript/war/test/lib/jasmine-1.0.1/jasmine-html.js +188 -0
- data/rhoconnect-client/JavaScript/war/test/lib/jasmine-1.0.1/jasmine.css +166 -0
- data/rhoconnect-client/JavaScript/war/test/lib/jasmine-1.0.1/jasmine.js +2421 -0
- data/rhoconnect-client/JavaScript/war/test/spec/SpecHelper.js +7 -0
- data/rhoconnect-client/JavaScript/war/test/spec/SyncApiSpec.js +573 -0
- data/rhoconnect-client/JavaScript/war/test/spec/samples/PlayerSpec.js +58 -0
- data/rhoconnect-client/JavaScript/war/test/worker-test.js +17 -0
- data/rhoconnect-client/LICENSE +41 -0
- data/rhoconnect-client/ObjectiveC/RhoConnectClient.h +118 -0
- data/rhoconnect-client/ObjectiveC/RhoConnectClient.m +641 -0
- data/rhoconnect-client/ObjectiveC/RhoConnectClient.xcodeproj/project.pbxproj +1434 -0
- data/rhoconnect-client/ObjectiveC/RhoConnectNotify.h +83 -0
- data/rhoconnect-client/ObjectiveC/RhoConnectNotify.m +181 -0
- data/rhoconnect-client/ObjectiveC/RhoConnectObjectNotify.h +65 -0
- data/rhoconnect-client/ObjectiveC/RhoConnectObjectNotify.m +73 -0
- data/rhoconnect-client/ObjectiveC/RhomModel.h +101 -0
- data/rhoconnect-client/ObjectiveC/RhomModel.m +320 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/MainWindow.xib +198 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/RhoConnectClientTest-Info.plist +30 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/RhoConnectClientTest.xcodeproj/project.pbxproj +373 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/RhoConnectClientTestAppDelegate.h +58 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/RhoConnectClientTestAppDelegate.m +84 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/RhoConnectClientTest_Prefix.pch +8 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/invalid_import_db.zip +0 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/main.m +1096 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/test.png +0 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/test2.png +0 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/valid_import_db.zip +0 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/Classes/ptestsAppDelegate.h +62 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/Classes/ptestsAppDelegate.m +35 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/Classes/ptestsViewController.h +78 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/Classes/ptestsViewController.m +549 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/MainWindow.xib +227 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/main.m +17 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/ptests-Info.plist +30 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/ptests.xcodeproj/project.pbxproj +363 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/ptestsViewController.xib +641 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/ptests_Prefix.pch +8 -0
- data/rhoconnect-client/README.textile +23 -0
- data/rhoconnect-client/Rakefile +20 -0
- data/rhoconnect-client/Samples/Java/android_store/.classpath +8 -0
- data/rhoconnect-client/Samples/Java/android_store/.project +33 -0
- data/rhoconnect-client/Samples/Java/android_store/AndroidManifest.xml +24 -0
- data/rhoconnect-client/Samples/Java/android_store/assets/apps/rhoconfig.txt +19 -0
- data/rhoconnect-client/Samples/Java/android_store/assets/apps/rhoconfig.txt.timestamp +1 -0
- data/rhoconnect-client/Samples/Java/android_store/assets/db/syncdb.schema +44 -0
- data/rhoconnect-client/Samples/Java/android_store/assets/db/syncdb.triggers +10 -0
- data/rhoconnect-client/Samples/Java/android_store/assets/db/syncdb_java.triggers +21 -0
- data/rhoconnect-client/Samples/Java/android_store/assets/rho.dat +8 -0
- data/rhoconnect-client/Samples/Java/android_store/default.properties +11 -0
- data/rhoconnect-client/Samples/Java/android_store/project.properties +14 -0
- data/rhoconnect-client/Samples/Java/android_store/res/drawable-hdpi/icon.png +0 -0
- data/rhoconnect-client/Samples/Java/android_store/res/drawable-ldpi/icon.png +0 -0
- data/rhoconnect-client/Samples/Java/android_store/res/drawable-mdpi/icon.png +0 -0
- data/rhoconnect-client/Samples/Java/android_store/res/layout/main.xml +12 -0
- data/rhoconnect-client/Samples/Java/android_store/res/values/strings.xml +5 -0
- data/rhoconnect-client/Samples/Java/android_store/rhoimpl.jar +0 -0
- data/rhoconnect-client/Samples/Java/android_store/src/com/rhomobile/android_store/StoreActivity.java +68 -0
- data/rhoconnect-client/Samples/Java/android_store/src/com/rhomobile/android_store/StoreApplication.java +15 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/LoginViewController.h +70 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/LoginViewController.m +94 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/RhoConnectEngine.h +82 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/RhoConnectEngine.m +119 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/RootViewController.h +63 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/RootViewController.m +314 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/WaitLoginController.h +65 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/WaitLoginController.m +110 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/storeAppDelegate.h +61 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/storeAppDelegate.m +171 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/LoginViewController.xib +779 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/MainWindow.xib +580 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/RootViewController.xib +384 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/WaitLoginController.xib +557 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/icon.png +0 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/main.m +22 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/store-Info.plist +30 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/store.xcodeproj/project.pbxproj +367 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/store_Prefix.pch +14 -0
- data/rhoconnect-client/build.yml +3 -0
- data/rhoconnect-client/version +1 -0
- metadata +314 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
describe("Player", function() {
|
|
2
|
+
var player;
|
|
3
|
+
var song;
|
|
4
|
+
|
|
5
|
+
beforeEach(function() {
|
|
6
|
+
player = new Player();
|
|
7
|
+
song = new Song();
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
it("should be able to play a Song", function() {
|
|
11
|
+
player.play(song);
|
|
12
|
+
expect(player.currentlyPlayingSong).toEqual(song);
|
|
13
|
+
|
|
14
|
+
//demonstrates use of custom matcher
|
|
15
|
+
expect(player).toBePlaying(song);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
describe("when song has been paused", function() {
|
|
19
|
+
beforeEach(function() {
|
|
20
|
+
player.play(song);
|
|
21
|
+
player.pause();
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it("should indicate that the song is currently paused", function() {
|
|
25
|
+
expect(player.isPlaying).toBeFalsy();
|
|
26
|
+
|
|
27
|
+
// demonstrates use of 'not' with a custom matcher
|
|
28
|
+
expect(player).not.toBePlaying(song);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it("should be possible to resume", function() {
|
|
32
|
+
player.resume();
|
|
33
|
+
expect(player.isPlaying).toBeTruthy();
|
|
34
|
+
expect(player.currentlyPlayingSong).toEqual(song);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// demonstrates use of spies to intercept and test method calls
|
|
39
|
+
it("tells the current song if the user has made it a favorite", function() {
|
|
40
|
+
spyOn(song, 'persistFavoriteStatus');
|
|
41
|
+
|
|
42
|
+
player.play(song);
|
|
43
|
+
player.makeFavorite();
|
|
44
|
+
|
|
45
|
+
expect(song.persistFavoriteStatus).toHaveBeenCalledWith(true);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
//demonstrates use of expected exceptions
|
|
49
|
+
describe("#resume", function() {
|
|
50
|
+
it("should throw an exception if song is already playing", function() {
|
|
51
|
+
player.play(song);
|
|
52
|
+
|
|
53
|
+
expect(function() {
|
|
54
|
+
player.resume();
|
|
55
|
+
}).toThrow("song is already playing");
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
onmessage = function(e){
|
|
2
|
+
if ( e.data === "start" ) {
|
|
3
|
+
// Do some computation
|
|
4
|
+
done()
|
|
5
|
+
}
|
|
6
|
+
};
|
|
7
|
+
function done(){
|
|
8
|
+
// Send back the results to the parent page
|
|
9
|
+
var async = null;
|
|
10
|
+
var sync = null;
|
|
11
|
+
try { async = openDatabase } catch (ex) { async = ex };
|
|
12
|
+
try { sync = openDatabaseSync } catch (ex) { sync = ex };
|
|
13
|
+
postMessage('In the Worker:');
|
|
14
|
+
postMessage(' openDatabase is: ' +async);
|
|
15
|
+
postMessage(' openDatabaseSync is: ' +sync);
|
|
16
|
+
}
|
|
17
|
+
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
(The MIT License)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2008-2010 Rhomobile, Inc.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
|
22
|
+
|
|
23
|
+
Copyright (c) 2011-2016 Symbol Technologies, Inc.
|
|
24
|
+
|
|
25
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
26
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
27
|
+
in the Software without restriction, including without limitation the rights
|
|
28
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
29
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
30
|
+
furnished to do so, subject to the following conditions:
|
|
31
|
+
|
|
32
|
+
The above copyright notice and this permission notice shall be included in
|
|
33
|
+
all copies or substantial portions of the Software.
|
|
34
|
+
|
|
35
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
36
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
37
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
38
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
39
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
40
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
41
|
+
THE SOFTWARE.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/*------------------------------------------------------------------------
|
|
2
|
+
* (The MIT License)
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2008-2011 Rhomobile, Inc.
|
|
5
|
+
*
|
|
6
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
* in the Software without restriction, including without limitation the rights
|
|
9
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
* furnished to do so, subject to the following conditions:
|
|
12
|
+
*
|
|
13
|
+
* The above copyright notice and this permission notice shall be included in
|
|
14
|
+
* all copies or substantial portions of the Software.
|
|
15
|
+
*
|
|
16
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
22
|
+
* THE SOFTWARE.
|
|
23
|
+
*
|
|
24
|
+
* http://rhomobile.com
|
|
25
|
+
|
|
26
|
+
* Copyright (c) 2011-2016 Symbol Technologies, Inc.
|
|
27
|
+
*
|
|
28
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
29
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
30
|
+
* in the Software without restriction, including without limitation the rights
|
|
31
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
32
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
33
|
+
* furnished to do so, subject to the following conditions:
|
|
34
|
+
*
|
|
35
|
+
* The above copyright notice and this permission notice shall be included in
|
|
36
|
+
* all copies or substantial portions of the Software.
|
|
37
|
+
*
|
|
38
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
39
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
40
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
41
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
42
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
43
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
44
|
+
* THE SOFTWARE.
|
|
45
|
+
*
|
|
46
|
+
* http://symbol.com
|
|
47
|
+
*------------------------------------------------------------------------*/
|
|
48
|
+
|
|
49
|
+
#import <Foundation/Foundation.h>
|
|
50
|
+
#import "RhomModel.h"
|
|
51
|
+
#import "RhoConnectNotify.h"
|
|
52
|
+
#import "RhoConnectObjectNotify.h"
|
|
53
|
+
#include "RhoConnectClient/RhoConnectClient.h"
|
|
54
|
+
|
|
55
|
+
@interface RhoConnectClient : NSObject {
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@property(setter=setThreadedMode:) BOOL threaded_mode;
|
|
59
|
+
@property(setter=setPollInterval:) int poll_interval;
|
|
60
|
+
@property(setter=setLogSeverity:) int log_severity;
|
|
61
|
+
@property(assign, setter=setSyncServer:) NSString* sync_server;
|
|
62
|
+
@property(setter=setBulkSyncState:, getter=getBulkSyncState) int bulksync_state;
|
|
63
|
+
@property(assign, setter=setLogServer:) NSString* log_server;
|
|
64
|
+
@property(assign, setter=setLogName:) NSString* log_name;
|
|
65
|
+
|
|
66
|
+
+ (void) initDatabase;
|
|
67
|
+
+ (void) setNotification: (SEL) callback target:(id)target;
|
|
68
|
+
+ (void) setModelNotification: (int) nSrcID callback: (SEL) callback target:(id)target;
|
|
69
|
+
|
|
70
|
+
- (void) setObjectNotification: (SEL) callback target:(id)target;
|
|
71
|
+
- (void) clearObjectNotification;
|
|
72
|
+
- (void) addObjectNotify: (int) nSrcID szObject:(NSString*) szObject;
|
|
73
|
+
|
|
74
|
+
- (id) init;
|
|
75
|
+
- (void)dealloc;
|
|
76
|
+
|
|
77
|
+
- (void) addModels:(NSMutableArray*)models;
|
|
78
|
+
- (void) updateModels:(NSMutableArray*)models;
|
|
79
|
+
- (void) database_full_reset_and_logout;
|
|
80
|
+
- (void) database_client_reset;
|
|
81
|
+
- (BOOL) is_logged_in;
|
|
82
|
+
|
|
83
|
+
- (NSString*) database_export: (NSString*) partition;
|
|
84
|
+
- (BOOL) database_import: (NSString*) partition zip:(NSString*) zip;
|
|
85
|
+
|
|
86
|
+
- (RhoConnectNotify*) loginWithUser: (NSString*) user pwd:(NSString*) pwd;
|
|
87
|
+
- (void) loginWithUser: (NSString*) user pwd:(NSString*) pwd callback:(SEL) callback target:(id)target;
|
|
88
|
+
- (void) logout;
|
|
89
|
+
- (void) setNotification: (SEL) callback target:(id)target;
|
|
90
|
+
- (void) clearNotification;
|
|
91
|
+
|
|
92
|
+
- (RhoConnectNotify*) syncAll;
|
|
93
|
+
- (BOOL) is_syncing;
|
|
94
|
+
- (void) stop_sync;
|
|
95
|
+
|
|
96
|
+
- (RhoConnectNotify*) search: (NSArray*)models from: (NSString*) from params: (NSString*)params sync_changes: (BOOL) sync_changes progress_step: (int) progress_step;
|
|
97
|
+
|
|
98
|
+
- (void) setConfigString: (NSString*)name param: (NSString*) param;
|
|
99
|
+
- (NSString*) getConfigString: (NSString*)name;
|
|
100
|
+
|
|
101
|
+
- (void) setSourceProperty: (int) nSrcID szPropName:(NSString*) szPropName szPropValue:(NSString*) szPropValue;
|
|
102
|
+
|
|
103
|
+
- (void) onCreateError: (RhoConnectNotify*)notify action: (NSString*)action;
|
|
104
|
+
- (void) onUpdateError: (RhoConnectNotify*)notify action: (NSString*)action;
|
|
105
|
+
- (void) onDeleteError: (RhoConnectNotify*)notify action: (NSString*)action;
|
|
106
|
+
|
|
107
|
+
- (void) sendLog;
|
|
108
|
+
|
|
109
|
+
+ (NSString*) storagePath;
|
|
110
|
+
+ (NSString*) pathForStorageFile: (NSString*) file;
|
|
111
|
+
|
|
112
|
+
+ (NSString*) blobFolder;
|
|
113
|
+
+ (NSString*) blobPath;
|
|
114
|
+
+ (NSString*) pathForBlob: (NSString*) uri;
|
|
115
|
+
|
|
116
|
+
+ (void) fromMainBundle: (NSFileManager*) fileManager copyFile: (NSString*) source toStorage: (NSString*) target forceRemove: (BOOL) remove;
|
|
117
|
+
|
|
118
|
+
@end
|
|
@@ -0,0 +1,641 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RhoConnectClient.m
|
|
3
|
+
// RhoCoonectClientTest
|
|
4
|
+
//
|
|
5
|
+
// Created by evgeny vovchenko on 8/23/10.
|
|
6
|
+
// Copyright 2010 RhoMobile. All rights reserved.
|
|
7
|
+
// Copyright 2011-2016 Symbol Technologies. All rights reserved.
|
|
8
|
+
//
|
|
9
|
+
|
|
10
|
+
#import "RhoConnectClient.h"
|
|
11
|
+
|
|
12
|
+
#include "sync/SyncThread.h"
|
|
13
|
+
#include "common/RhoConf.h"
|
|
14
|
+
#import "common/RhodesAppBase.h"
|
|
15
|
+
#include "logging/RhoLogConf.h"
|
|
16
|
+
#import "logging/RhoLog.h"
|
|
17
|
+
#undef DEFAULT_LOGCATEGORY
|
|
18
|
+
#define DEFAULT_LOGCATEGORY "RhoConnectClient"
|
|
19
|
+
|
|
20
|
+
@interface CCallbackData : NSObject {
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@property(assign) NSThread *targetThread;
|
|
24
|
+
@property SEL targetMethod;
|
|
25
|
+
@property(assign) id targetObject;
|
|
26
|
+
|
|
27
|
+
- (id)init:(SEL)selector target:(id)target thread:(NSThread *)thread;
|
|
28
|
+
@end
|
|
29
|
+
|
|
30
|
+
@implementation CCallbackData
|
|
31
|
+
@synthesize targetThread;
|
|
32
|
+
@synthesize targetMethod;
|
|
33
|
+
@synthesize targetObject;
|
|
34
|
+
- (id)init:(SEL)selector target:(id)target thread:(NSThread *)thread
|
|
35
|
+
{
|
|
36
|
+
self = [super init];
|
|
37
|
+
|
|
38
|
+
targetMethod = selector;
|
|
39
|
+
targetObject = target;
|
|
40
|
+
targetThread = thread;
|
|
41
|
+
return self;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@end
|
|
45
|
+
|
|
46
|
+
int callback_impl(const char *szNotify, void *data)
|
|
47
|
+
{
|
|
48
|
+
RHO_CONNECT_NOTIFY oNotify = { 0 };
|
|
49
|
+
|
|
50
|
+
rho_connectclient_parsenotify(szNotify, &oNotify);
|
|
51
|
+
|
|
52
|
+
RhoConnectNotify *notify = [[RhoConnectNotify alloc] init:&oNotify];
|
|
53
|
+
|
|
54
|
+
CCallbackData *callbackObj = data;
|
|
55
|
+
|
|
56
|
+
if (callbackObj.targetThread != [NSThread currentThread])
|
|
57
|
+
{
|
|
58
|
+
[ callbackObj.targetObject performSelector:callbackObj.targetMethod onThread:callbackObj.targetThread withObject:notify waitUntilDone:TRUE];
|
|
59
|
+
}
|
|
60
|
+
else
|
|
61
|
+
{
|
|
62
|
+
[ callbackObj.targetObject performSelector:callbackObj.targetMethod withObject:notify];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
[callbackObj autorelease];
|
|
67
|
+
[notify autorelease];
|
|
68
|
+
return 0;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
int callback_object_impl(const char *szNotify, void *data)
|
|
72
|
+
{
|
|
73
|
+
RHO_CONNECT_OBJECT_NOTIFY oNotify = { 0 };
|
|
74
|
+
|
|
75
|
+
rho_connectclient_parse_objectnotify(szNotify, &oNotify);
|
|
76
|
+
|
|
77
|
+
RhoConnectObjectNotify *notify = [[RhoConnectObjectNotify alloc] init:&oNotify];
|
|
78
|
+
|
|
79
|
+
CCallbackData *callbackObj = data;
|
|
80
|
+
|
|
81
|
+
if (callbackObj.targetThread != [NSThread currentThread])
|
|
82
|
+
{
|
|
83
|
+
[ callbackObj.targetObject performSelector:callbackObj.targetMethod onThread:callbackObj.targetThread withObject:notify waitUntilDone:TRUE];
|
|
84
|
+
}
|
|
85
|
+
else
|
|
86
|
+
{
|
|
87
|
+
[ callbackObj.targetObject performSelector:callbackObj.targetMethod withObject:notify];
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
[callbackObj autorelease];
|
|
91
|
+
[notify autorelease];
|
|
92
|
+
return 0;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
int callback_send_log_impl(const char *szNotify, void *data)
|
|
96
|
+
{
|
|
97
|
+
return 0;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
void rho_free_callbackdata(void *pData)
|
|
101
|
+
{
|
|
102
|
+
// CCallbackData* callbackObj = pData;
|
|
103
|
+
// [callbackObj release];
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@implementation RhoConnectClient
|
|
107
|
+
|
|
108
|
+
@synthesize threaded_mode;
|
|
109
|
+
@synthesize poll_interval;
|
|
110
|
+
@synthesize log_severity;
|
|
111
|
+
@synthesize sync_server;
|
|
112
|
+
@synthesize bulksync_state;
|
|
113
|
+
@synthesize log_server;
|
|
114
|
+
@synthesize log_name;
|
|
115
|
+
|
|
116
|
+
- (id)init
|
|
117
|
+
{
|
|
118
|
+
self = [super init];
|
|
119
|
+
|
|
120
|
+
// initRhoconnectClient();
|
|
121
|
+
|
|
122
|
+
return self;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
- (void)dealloc
|
|
126
|
+
{
|
|
127
|
+
rho_connectclient_destroy();
|
|
128
|
+
|
|
129
|
+
[sync_server release];
|
|
130
|
+
[log_server release];
|
|
131
|
+
[log_name release];
|
|
132
|
+
[super dealloc];
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
- (void)setSyncServer:(NSString *)server
|
|
136
|
+
{
|
|
137
|
+
sync_server = [server retain];
|
|
138
|
+
rho_sync_set_syncserver([server cStringUsingEncoding:[NSString defaultCStringEncoding]]);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
- (void)setThreadedMode:(BOOL)mode
|
|
142
|
+
{
|
|
143
|
+
threaded_mode = mode;
|
|
144
|
+
rho_sync_set_threaded_mode(mode ? 1 : 0);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
- (void)setPollInterval:(int)interval
|
|
148
|
+
{
|
|
149
|
+
poll_interval = interval;
|
|
150
|
+
rho_sync_set_pollinterval(interval);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
- (void)setLogSeverity:(int)severity
|
|
154
|
+
{
|
|
155
|
+
log_severity = severity;
|
|
156
|
+
rho_logconf_setSeverity(log_severity);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
- (void)setBulkSyncState:(int)state
|
|
160
|
+
{
|
|
161
|
+
rho_conf_setInt("bulksync_state", state);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
- (int)getBulkSyncState
|
|
165
|
+
{
|
|
166
|
+
return rho_conf_getInt("bulksync_state");
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
- (void)setConfigString:(NSString *)name param:(NSString *)param
|
|
170
|
+
{
|
|
171
|
+
if ([name compare:@"MinSeverity"] == 0)
|
|
172
|
+
{
|
|
173
|
+
rho_logconf_setSeverity([param intValue]);
|
|
174
|
+
}
|
|
175
|
+
else
|
|
176
|
+
{
|
|
177
|
+
rho_conf_setString([name cStringUsingEncoding:[NSString defaultCStringEncoding]],
|
|
178
|
+
[param cStringUsingEncoding:[NSString defaultCStringEncoding]]);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
- (NSString *)getConfigString:(NSString *)name
|
|
183
|
+
{
|
|
184
|
+
NSString *ret;
|
|
185
|
+
char *res = rho_conf_getString([name cStringUsingEncoding:[NSString defaultCStringEncoding]]);
|
|
186
|
+
|
|
187
|
+
if (res)
|
|
188
|
+
{
|
|
189
|
+
ret = [NSString stringWithUTF8String:res];
|
|
190
|
+
rho_conf_freeString(res);
|
|
191
|
+
}
|
|
192
|
+
else
|
|
193
|
+
{
|
|
194
|
+
ret = [NSString stringWithUTF8String:""];
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
return ret;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
- (void)setLogServer:(NSString *)server
|
|
201
|
+
{
|
|
202
|
+
log_server = [server retain];
|
|
203
|
+
rho_conf_setString("logserver", [ log_server cStringUsingEncoding:[ NSString defaultCStringEncoding ]]);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
- (void)setLogName:(NSString *)name
|
|
207
|
+
{
|
|
208
|
+
log_name = [name retain];
|
|
209
|
+
rho_conf_setString("logname", [ log_name cStringUsingEncoding:[ NSString defaultCStringEncoding ]]);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
- (void)addModels:(NSMutableArray *)models
|
|
213
|
+
{
|
|
214
|
+
RHOM_MODEL rhom_models[models.count];
|
|
215
|
+
int nModel = 0;
|
|
216
|
+
|
|
217
|
+
for (RhomModel *model in models)
|
|
218
|
+
{
|
|
219
|
+
rho_connectclient_initmodel(&rhom_models[nModel]);
|
|
220
|
+
rhom_models[nModel].name = [model.name cStringUsingEncoding:[NSString defaultCStringEncoding]];
|
|
221
|
+
rhom_models[nModel].partition = [model.partition cStringUsingEncoding:[NSString defaultCStringEncoding]];
|
|
222
|
+
|
|
223
|
+
rhom_models[nModel].sync_type = model.sync_type;
|
|
224
|
+
rhom_models[nModel].type = model.model_type;
|
|
225
|
+
|
|
226
|
+
if (model.associations != NULL)
|
|
227
|
+
{
|
|
228
|
+
for (NSString *key in model.associations)
|
|
229
|
+
{
|
|
230
|
+
rho_connectclient_hash_put(rhom_models[nModel].associations,
|
|
231
|
+
[key cStringUsingEncoding:[NSString defaultCStringEncoding]],
|
|
232
|
+
[[model.associations objectForKey:key] cStringUsingEncoding:[NSString defaultCStringEncoding]]
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
if (0 < [model.blob_attribs length])
|
|
238
|
+
{
|
|
239
|
+
rhom_models[nModel].blob_attribs = [model.blob_attribs cStringUsingEncoding:[NSString defaultCStringEncoding]];
|
|
240
|
+
}
|
|
241
|
+
nModel++;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
rho_connectclient_init(rhom_models, models.count);
|
|
245
|
+
|
|
246
|
+
int i = 0;
|
|
247
|
+
for (RhomModel *model in models)
|
|
248
|
+
{
|
|
249
|
+
model.source_id = rhom_models[i].source_id;
|
|
250
|
+
rho_connectclient_destroymodel(&rhom_models[i]);
|
|
251
|
+
i++;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
[self setThreadedMode:FALSE];
|
|
255
|
+
[self setPollInterval:0];
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
- (void)updateModels:(NSMutableArray *)models
|
|
259
|
+
{
|
|
260
|
+
RHOM_MODEL rhom_models[models.count];
|
|
261
|
+
int nModel = 0;
|
|
262
|
+
|
|
263
|
+
for (RhomModel *model in models)
|
|
264
|
+
{
|
|
265
|
+
rho_connectclient_initmodel(&rhom_models[nModel]);
|
|
266
|
+
rhom_models[nModel].name = [model.name cStringUsingEncoding:[NSString defaultCStringEncoding]];
|
|
267
|
+
|
|
268
|
+
rhom_models[nModel].sync_type = model.sync_type;
|
|
269
|
+
rhom_models[nModel].type = model.model_type;
|
|
270
|
+
|
|
271
|
+
nModel++;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
rho_connectclient_updatemodels(rhom_models, models.count);
|
|
275
|
+
|
|
276
|
+
int i = 0;
|
|
277
|
+
for (RhomModel *model in models)
|
|
278
|
+
{
|
|
279
|
+
model.source_id = rhom_models[i].source_id;
|
|
280
|
+
rho_connectclient_destroymodel(&rhom_models[i]);
|
|
281
|
+
i++;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
- (void)setSourceProperty:(int)nSrcID szPropName:(NSString *)szPropName szPropValue:(NSString *)szPropValue
|
|
286
|
+
{
|
|
287
|
+
rho_sync_set_source_property(nSrcID, [szPropName cStringUsingEncoding:[NSString defaultCStringEncoding]],
|
|
288
|
+
[szPropValue cStringUsingEncoding:[NSString defaultCStringEncoding]]);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
- (void)database_full_reset_and_logout
|
|
292
|
+
{
|
|
293
|
+
rho_connectclient_database_full_reset_and_logout();
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
- (void)database_client_reset
|
|
297
|
+
{
|
|
298
|
+
rho_connectclient_database_client_reset();
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
- (NSString *)database_export:(NSString *)partition
|
|
302
|
+
{
|
|
303
|
+
NSString *ret;
|
|
304
|
+
char *res = rho_connectclient_database_export([partition cStringUsingEncoding:[NSString defaultCStringEncoding]]);
|
|
305
|
+
|
|
306
|
+
if (res != 0)
|
|
307
|
+
{
|
|
308
|
+
ret = [NSString stringWithUTF8String:res];
|
|
309
|
+
free(res);
|
|
310
|
+
}
|
|
311
|
+
else
|
|
312
|
+
{
|
|
313
|
+
ret = [NSString stringWithUTF8String:""];
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
return ret;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
- (BOOL)database_import:(NSString *)partition zip:(NSString *)zip
|
|
320
|
+
{
|
|
321
|
+
int res = rho_connectclient_database_import([partition cStringUsingEncoding:[NSString defaultCStringEncoding]], [zip cStringUsingEncoding:[NSString defaultCStringEncoding]]);
|
|
322
|
+
|
|
323
|
+
return res == 0 ? FALSE : TRUE;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
- (BOOL)is_logged_in
|
|
327
|
+
{
|
|
328
|
+
return rho_sync_logged_in() == 1 ? TRUE : FALSE;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
- (RhoConnectNotify *)loginWithUser:(NSString *)user pwd:(NSString *)pwd
|
|
332
|
+
{
|
|
333
|
+
char *res = (char *)rho_sync_login_c([user cStringUsingEncoding:[NSString defaultCStringEncoding]],
|
|
334
|
+
[pwd cStringUsingEncoding:[NSString defaultCStringEncoding]], NULL, NULL);
|
|
335
|
+
|
|
336
|
+
RHO_CONNECT_NOTIFY oNotify = { 0 };
|
|
337
|
+
|
|
338
|
+
rho_connectclient_parsenotify(res, &oNotify);
|
|
339
|
+
rho_sync_free_string(res);
|
|
340
|
+
|
|
341
|
+
return [[[RhoConnectNotify alloc] init:&oNotify] autorelease];
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
- (void)loginWithUser:(NSString *)user pwd:(NSString *)pwd callback:(SEL)callback target:(id)target
|
|
345
|
+
{
|
|
346
|
+
rho_sync_login_c([user cStringUsingEncoding:NSUTF8StringEncoding],
|
|
347
|
+
[pwd cStringUsingEncoding:NSUTF8StringEncoding],
|
|
348
|
+
callback_impl, [[CCallbackData alloc] init:callback target:target thread:[NSThread currentThread]]
|
|
349
|
+
);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
- (void)logout
|
|
353
|
+
{
|
|
354
|
+
rho_sync_logout();
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
+ (void)setNotification:(SEL)callback target:(id)target
|
|
358
|
+
{
|
|
359
|
+
rho_sync_set_notification_c(-1, callback_impl,
|
|
360
|
+
[[CCallbackData alloc] init:callback target:target thread:[NSThread currentThread]]);
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
- (void)setNotification:(SEL)callback target:(id)target
|
|
364
|
+
{
|
|
365
|
+
rho_sync_set_notification_c(-1, callback_impl,
|
|
366
|
+
[[CCallbackData alloc] init:callback target:target thread:[NSThread currentThread]]);
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
+ (void)setModelNotification:(int)nSrcID callback:(SEL)callback target:(id)target
|
|
370
|
+
{
|
|
371
|
+
rho_sync_set_notification_c(nSrcID, callback_impl,
|
|
372
|
+
[[CCallbackData alloc] init:callback target:target thread:[NSThread currentThread]]);
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
- (void)clearNotification
|
|
376
|
+
{
|
|
377
|
+
rho_sync_clear_notification(-1);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
- (void)setObjectNotification:(SEL)callback target:(id)target
|
|
381
|
+
{
|
|
382
|
+
rho_sync_setobjectnotify_url_c(callback_object_impl,
|
|
383
|
+
[[ CCallbackData alloc] init:callback target:target thread:[NSThread currentThread]]);
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
- (void)clearObjectNotification
|
|
387
|
+
{
|
|
388
|
+
rho_sync_clear_object_notification();
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
- (void)addObjectNotify:(int)nSrcID szObject:(NSString *)szObject
|
|
392
|
+
{
|
|
393
|
+
rho_sync_addobjectnotify(nSrcID, [szObject cStringUsingEncoding:[NSString defaultCStringEncoding]]);
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
- (RhoConnectNotify *)syncAll
|
|
397
|
+
{
|
|
398
|
+
char *res = (char *)rho_sync_doSyncAllSources(0, "", false);
|
|
399
|
+
|
|
400
|
+
RHO_CONNECT_NOTIFY oNotify = { 0 };
|
|
401
|
+
|
|
402
|
+
rho_connectclient_parsenotify(res, &oNotify);
|
|
403
|
+
rho_sync_free_string(res);
|
|
404
|
+
|
|
405
|
+
return [[[RhoConnectNotify alloc] init:&oNotify] autorelease];
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
- (BOOL)is_syncing
|
|
409
|
+
{
|
|
410
|
+
return rho_sync_issyncing() == 1 ? TRUE : FALSE;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
- (void)stop_sync
|
|
414
|
+
{
|
|
415
|
+
rho_sync_stop();
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
- (RhoConnectNotify *)search:(NSArray *)models from:(NSString *)from params:(NSString *)params sync_changes:(BOOL)sync_changes progress_step:(int)progress_step
|
|
419
|
+
{
|
|
420
|
+
unsigned long ar_sources = rho_connectclient_strarray_create();
|
|
421
|
+
|
|
422
|
+
for (RhomModel *model in models)
|
|
423
|
+
{
|
|
424
|
+
rho_connectclient_strarray_add(ar_sources, [model.name cStringUsingEncoding:[NSString defaultCStringEncoding]]);
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
char *res = (char *)rho_sync_doSearchByNames(ar_sources,
|
|
428
|
+
[from cStringUsingEncoding:[NSString defaultCStringEncoding]],
|
|
429
|
+
[params cStringUsingEncoding:[NSString defaultCStringEncoding]],
|
|
430
|
+
sync_changes ? 1 : 0,
|
|
431
|
+
progress_step, "", "");
|
|
432
|
+
|
|
433
|
+
rho_connectclient_strarray_delete(ar_sources);
|
|
434
|
+
|
|
435
|
+
RHO_CONNECT_NOTIFY oNotify = { 0 };
|
|
436
|
+
rho_connectclient_parsenotify(res, &oNotify);
|
|
437
|
+
rho_sync_free_string(res);
|
|
438
|
+
|
|
439
|
+
return [[[RhoConnectNotify alloc] init:&oNotify] autorelease];
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
- (void)onCreateError:(RhoConnectNotify *)notify action:(NSString *)action
|
|
443
|
+
{
|
|
444
|
+
rho_connectclient_on_sync_create_error(
|
|
445
|
+
[notify.source_name cStringUsingEncoding:[NSString defaultCStringEncoding]],
|
|
446
|
+
[notify getNotifyPtr],
|
|
447
|
+
[action cStringUsingEncoding:[NSString defaultCStringEncoding]]
|
|
448
|
+
);
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
- (void)onUpdateError:(RhoConnectNotify *)notify action:(NSString *)action
|
|
452
|
+
{
|
|
453
|
+
rho_connectclient_on_sync_update_error(
|
|
454
|
+
[notify.source_name cStringUsingEncoding:[NSString defaultCStringEncoding]],
|
|
455
|
+
[notify getNotifyPtr],
|
|
456
|
+
[action cStringUsingEncoding:[NSString defaultCStringEncoding]]
|
|
457
|
+
);
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
- (void)onDeleteError:(RhoConnectNotify *)notify action:(NSString *)action
|
|
461
|
+
{
|
|
462
|
+
rho_connectclient_on_sync_delete_error(
|
|
463
|
+
[notify.source_name cStringUsingEncoding:[NSString defaultCStringEncoding]],
|
|
464
|
+
[notify getNotifyPtr],
|
|
465
|
+
[action cStringUsingEncoding:[NSString defaultCStringEncoding]]
|
|
466
|
+
);
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
- (void)sendLog
|
|
470
|
+
{
|
|
471
|
+
rho_conf_send_log_in_same_thread();
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
void copyFromMainBundle(NSFileManager *fileManager, NSString *source, NSString *target, BOOL remove);
|
|
475
|
+
void createFolder(NSFileManager *fileManager, NSString *target, BOOL remove);
|
|
476
|
+
const char * rho_native_rhopath();
|
|
477
|
+
+ (void)initDatabase
|
|
478
|
+
{
|
|
479
|
+
NSFileManager *fileManager = [NSFileManager defaultManager];
|
|
480
|
+
|
|
481
|
+
NSString *bundleRoot = [[NSBundle mainBundle] resourcePath];
|
|
482
|
+
NSString *rhoRoot = [NSString stringWithUTF8String:rho_native_rhopath()];
|
|
483
|
+
|
|
484
|
+
NSString *dirs[] = { @"db" };
|
|
485
|
+
|
|
486
|
+
copyFromMainBundle(fileManager,
|
|
487
|
+
[bundleRoot stringByAppendingPathComponent:dirs[0]],
|
|
488
|
+
[rhoRoot stringByAppendingPathComponent:dirs[0]],
|
|
489
|
+
NO);
|
|
490
|
+
createFolder(fileManager, [self blobPath], NO);
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
+ (NSString *)storagePath
|
|
494
|
+
{
|
|
495
|
+
return [NSString stringWithUTF8String:rho_native_rhopath()];
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
+ (NSString *)pathForStorageFile:(NSString *)file
|
|
499
|
+
{
|
|
500
|
+
return [[self storagePath] stringByAppendingString:file];
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
+ (NSString *)blobFolder
|
|
504
|
+
{
|
|
505
|
+
return @"db/db-files/";
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
+ (NSString *)blobPath
|
|
509
|
+
{
|
|
510
|
+
return [[self storagePath] stringByAppendingString:[self blobFolder]];
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
+ (NSString *)pathForBlob:(NSString *)uri
|
|
514
|
+
{
|
|
515
|
+
return [[self storagePath] stringByAppendingString:uri];
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
+ (void)fromMainBundle:(NSFileManager *)fileManager copyFile:(NSString *)source toStorage:(NSString *)target forceRemove:(BOOL)remove
|
|
519
|
+
{
|
|
520
|
+
NSString *bundleRoot = [[NSBundle mainBundle] resourcePath];
|
|
521
|
+
|
|
522
|
+
copyFromMainBundle(fileManager, [bundleRoot stringByAppendingPathComponent:source], [self pathForStorageFile:target], remove);
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
@end
|
|
526
|
+
|
|
527
|
+
const char * rho_native_rhopath()
|
|
528
|
+
{
|
|
529
|
+
static bool loaded = FALSE;
|
|
530
|
+
static char root[FILENAME_MAX];
|
|
531
|
+
|
|
532
|
+
if (!loaded)
|
|
533
|
+
{
|
|
534
|
+
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
|
|
535
|
+
NSString *documentsDirectory = // [paths objectAtIndex:0];
|
|
536
|
+
[ [paths objectAtIndex:0] stringByAppendingString:@"/"];
|
|
537
|
+
[documentsDirectory getFileSystemRepresentation:root maxLength:sizeof(root)];
|
|
538
|
+
loaded = TRUE;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
return root;
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
const char * rho_native_rhodbpath()
|
|
545
|
+
{
|
|
546
|
+
return rho_native_rhopath();
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
void copyFromMainBundle(NSFileManager *fileManager, NSString *source, NSString *target, BOOL remove)
|
|
550
|
+
{
|
|
551
|
+
BOOL dir;
|
|
552
|
+
|
|
553
|
+
if (![fileManager fileExistsAtPath:source isDirectory:&dir])
|
|
554
|
+
{
|
|
555
|
+
// NSAssert1(0, @"Source item '%@' does not exists in bundle", source);
|
|
556
|
+
return;
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
if (!remove && dir)
|
|
560
|
+
{
|
|
561
|
+
if (![fileManager fileExistsAtPath:target])
|
|
562
|
+
{
|
|
563
|
+
[fileManager createDirectoryAtPath:target attributes:nil];
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
NSDirectoryEnumerator *enumerator = [fileManager enumeratorAtPath:source];
|
|
567
|
+
NSString *child;
|
|
568
|
+
while (nil != (child = [enumerator nextObject]))
|
|
569
|
+
copyFromMainBundle(fileManager, [source stringByAppendingPathComponent:child],
|
|
570
|
+
[target stringByAppendingPathComponent:child], NO);
|
|
571
|
+
}
|
|
572
|
+
else
|
|
573
|
+
{
|
|
574
|
+
NSError *error;
|
|
575
|
+
if ([fileManager fileExistsAtPath:target] && ![fileManager removeItemAtPath:target error:&error])
|
|
576
|
+
{
|
|
577
|
+
// NSAssert2(0, @"Failed to remove '%@': %@", target, [error localizedDescription]);
|
|
578
|
+
return;
|
|
579
|
+
}
|
|
580
|
+
if (![fileManager copyItemAtPath:source toPath:target error:&error])
|
|
581
|
+
{
|
|
582
|
+
// NSAssert3(0, @"Failed to copy '%@' to '%@': %@", source, target, [error localizedDescription]);
|
|
583
|
+
return;
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
void createFolder(NSFileManager *fileManager, NSString *target, BOOL remove)
|
|
589
|
+
{
|
|
590
|
+
BOOL dir;
|
|
591
|
+
|
|
592
|
+
[fileManager fileExistsAtPath:target isDirectory:&dir];
|
|
593
|
+
if (!remove && dir)
|
|
594
|
+
{
|
|
595
|
+
return;
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
NSError *error;
|
|
599
|
+
if (remove)
|
|
600
|
+
{
|
|
601
|
+
if (![fileManager removeItemAtPath:target error:&error])
|
|
602
|
+
{
|
|
603
|
+
return;
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
if (![fileManager createDirectoryAtPath:target withIntermediateDirectories:YES attributes:nil error:&error])
|
|
608
|
+
{
|
|
609
|
+
return;
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
int rho_net_ping_network(const char *szHost)
|
|
614
|
+
{
|
|
615
|
+
RAWLOG_INFO("PING network.");
|
|
616
|
+
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
|
617
|
+
|
|
618
|
+
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
|
|
619
|
+
NSString *linkString = [NSString stringWithUTF8String:szHost];
|
|
620
|
+
|
|
621
|
+
[request setURL:[NSURL URLWithString:linkString]];
|
|
622
|
+
[request setTimeoutInterval:10];
|
|
623
|
+
|
|
624
|
+
NSError *error = nil;
|
|
625
|
+
NSHTTPURLResponse *response;
|
|
626
|
+
NSData *returnData = NULL;
|
|
627
|
+
returnData = [ NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error ];
|
|
628
|
+
|
|
629
|
+
if (!returnData)
|
|
630
|
+
{
|
|
631
|
+
RAWLOG_ERROR2("PING network FAILED. NSError: %d. NSErrorInfo : %s", [error code], [[error localizedDescription] UTF8String]);
|
|
632
|
+
}
|
|
633
|
+
else
|
|
634
|
+
{
|
|
635
|
+
RAWLOG_INFO("PING network SUCCEEDED.");
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
[pool release];
|
|
639
|
+
|
|
640
|
+
return returnData == NULL ? 0 : 1;
|
|
641
|
+
}
|