[mapguide-commits] r9710 - in trunk/MgDev: . Common/Foundation Common/Foundation/System UnitTest/WebTier/DotNet Web/src/DotNetUnmanagedApi/Foundation Web/src/WebSupport

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Wed Aug 12 04:28:23 PDT 2020


Author: jng
Date: 2020-08-12 04:28:23 -0700 (Wed, 12 Aug 2020)
New Revision: 9710

Added:
   trunk/MgDev/Common/Foundation/System/LibraryInit.cpp
   trunk/MgDev/Common/Foundation/System/LibraryInit.h
   trunk/MgDev/UnitTest/WebTier/DotNet/TestStandalone/
   trunk/MgDev/Web/src/DotNetUnmanagedApi/Foundation/InitializeLibrary.i
Modified:
   trunk/MgDev/
   trunk/MgDev/Common/Foundation/Foundation.h
   trunk/MgDev/Common/Foundation/Foundation.vcxproj
   trunk/MgDev/Common/Foundation/Foundation.vcxproj.filters
   trunk/MgDev/Common/Foundation/FoundationBuild.cpp
   trunk/MgDev/UnitTest/WebTier/DotNet/
   trunk/MgDev/UnitTest/WebTier/DotNet/DotNet.sln
   trunk/MgDev/UnitTest/WebTier/DotNet/prebuild.bat
   trunk/MgDev/Web/src/DotNetUnmanagedApi/Foundation/FoundationApi.vcxproj
   trunk/MgDev/Web/src/DotNetUnmanagedApi/Foundation/FoundationApiGen.xml
   trunk/MgDev/Web/src/WebSupport/InitializeWebTier.cpp
Log:
Merged revision(s) 9700-9709 from sandbox/jng/library_init: Implement MapGuide RFC 182 - Library init entry point


Index: trunk/MgDev
===================================================================
--- trunk/MgDev	2020-08-04 16:32:00 UTC (rev 9709)
+++ trunk/MgDev	2020-08-12 11:28:23 UTC (rev 9710)

Property changes on: trunk/MgDev
___________________________________________________________________
Modified: svn:mergeinfo
## -21,6 +21,7 ##
 /sandbox/jng/geoprocessing:9205-9229
 /sandbox/jng/geos34x:8256-8259
 /sandbox/jng/layer_bbox_toggle:9635-9643
+/sandbox/jng/library_init:9700-9709
 /sandbox/jng/mvt:9527-9528,9535,9537,9546-9547
 /sandbox/jng/mvt_alt:9604-9629
 /sandbox/jng/ogc:9240-9255
Modified: trunk/MgDev/Common/Foundation/Foundation.h
===================================================================
--- trunk/MgDev/Common/Foundation/Foundation.h	2020-08-04 16:32:00 UTC (rev 9709)
+++ trunk/MgDev/Common/Foundation/Foundation.h	2020-08-12 11:28:23 UTC (rev 9710)
@@ -137,6 +137,7 @@
 #include "System/Configuration.h"
 #include "System/Resources.h"
 #endif
+#include "System/LibraryInit.h"
 
 // Base exception classes and defines
 #include "Exception/ExceptionDefs.h"
@@ -193,7 +194,6 @@
 #include "Exception/XmlException.h"
 #include "Exception/XmlParserException.h"
 
-
 #ifndef SWIG_PUBLIC_API
 #include "System/ByteSourceFileImpl.h"
 #include "System/ByteSourceMemoryImpl.h"

Modified: trunk/MgDev/Common/Foundation/Foundation.vcxproj
===================================================================
--- trunk/MgDev/Common/Foundation/Foundation.vcxproj	2020-08-04 16:32:00 UTC (rev 9709)
+++ trunk/MgDev/Common/Foundation/Foundation.vcxproj	2020-08-12 11:28:23 UTC (rev 9710)
@@ -694,6 +694,12 @@
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
     </ClCompile>
+    <ClCompile Include="System\LibraryInit.cpp">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+    </ClCompile>
     <ClCompile Include="System\MemoryStreamHelper.cpp">
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
@@ -884,6 +890,7 @@
     <ClInclude Include="System\FoundationClassId.h" />
     <ClInclude Include="System\FoundationConfigProperties.h" />
     <ClInclude Include="System\GuardDisposable.h" />
+    <ClInclude Include="System\LibraryInit.h" />
     <ClInclude Include="System\LinuxMemoryStatus.h" />
     <ClInclude Include="System\MemoryStreamHelper.h" />
     <ClInclude Include="System\NamedSerializable.h" />

Modified: trunk/MgDev/Common/Foundation/Foundation.vcxproj.filters
===================================================================
--- trunk/MgDev/Common/Foundation/Foundation.vcxproj.filters	2020-08-04 16:32:00 UTC (rev 9709)
+++ trunk/MgDev/Common/Foundation/Foundation.vcxproj.filters	2020-08-12 11:28:23 UTC (rev 9710)
@@ -304,6 +304,9 @@
       <Filter>System</Filter>
     </ClCompile>
     <ClCompile Include="FoundationBuild.cpp" />
+    <ClCompile Include="System\LibraryInit.cpp">
+      <Filter>System</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="Exception\ApplicationException.h">
@@ -650,8 +653,11 @@
     </ClInclude>
     <ClInclude Include="Foundation.h" />
     <ClInclude Include="FoundationDefs.h" />
+    <ClInclude Include="System\LibraryInit.h">
+      <Filter>System</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="Foundation.rc" />
   </ItemGroup>
-</Project>
+</Project>
\ No newline at end of file

Modified: trunk/MgDev/Common/Foundation/FoundationBuild.cpp
===================================================================
--- trunk/MgDev/Common/Foundation/FoundationBuild.cpp	2020-08-04 16:32:00 UTC (rev 9709)
+++ trunk/MgDev/Common/Foundation/FoundationBuild.cpp	2020-08-12 11:28:23 UTC (rev 9710)
@@ -104,6 +104,7 @@
 #include "System/FileUtil.cpp"
 #include "System/FoundationConfigProperties.cpp"
 #include "System/GuardDisposable.cpp"
+#include "System/LibraryInit.cpp"
 #include "System/MemoryStreamHelper.cpp"
 #include "System/NamedSerializable.cpp"
 #include "System/Object.cpp"

Copied: trunk/MgDev/Common/Foundation/System/LibraryInit.cpp (from rev 9709, sandbox/jng/library_init/Common/Foundation/System/LibraryInit.cpp)
===================================================================
--- trunk/MgDev/Common/Foundation/System/LibraryInit.cpp	                        (rev 0)
+++ trunk/MgDev/Common/Foundation/System/LibraryInit.cpp	2020-08-12 11:28:23 UTC (rev 9710)
@@ -0,0 +1,76 @@
+//
+//  Copyright (C) 2004-2020 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#include "Foundation.h"
+#include "LibraryInit.h"
+
+// Initialize only once per process
+static bool m_bInitialized = false;
+
+void MgInitializeLibraryInternal(CREFSTRING stringResourcesPath, CREFSTRING locale)
+{
+    MG_TRY()
+
+    if (m_bInitialized)
+        return;
+
+    // Initialize ACE, this should enable sockets as well
+    ACE::init();
+
+    // Initialize resource path as well
+    MgResources* resources = MgResources::GetInstance();
+    resources->Initialize(stringResourcesPath);
+    resources->LoadResources(locale);
+
+    m_bInitialized = true;
+
+    MG_CATCH_AND_THROW(L"MgInitializeLibraryInternal")
+}
+
+void MgInitializeLibrary(CREFSTRING stringResourcesPath, CREFSTRING locale)
+{
+    MG_TRY()
+
+    ACE_MT(ACE_GUARD_ACTION(ACE_Recursive_Thread_Mutex, ace_mon, *ACE_Static_Object_Lock::instance(), MgInitializeLibraryInternal(stringResourcesPath, locale); , ;));
+
+    MG_CATCH_AND_THROW(L"MgInitializeLibrary")
+}
+
+void MgUninitializeLibrary()
+{
+    // ACE::fini removes the thread mutex so we cannot use it to protect this call.
+    MG_TRY()
+
+    MgUninitializeLibraryInternal();
+
+    MG_CATCH_AND_THROW(L"MgUninitializeLibrary")
+}
+
+void MgUninitializeLibraryInternal()
+{
+    MG_TRY()
+
+    if (!m_bInitialized)
+        return;
+
+    // Uninitialize ACE
+    ACE::fini();
+
+    m_bInitialized = false;
+
+    MG_CATCH_AND_THROW(L"MgUninitializeLibraryInternal")
+}

Copied: trunk/MgDev/Common/Foundation/System/LibraryInit.h (from rev 9709, sandbox/jng/library_init/Common/Foundation/System/LibraryInit.h)
===================================================================
--- trunk/MgDev/Common/Foundation/System/LibraryInit.h	                        (rev 0)
+++ trunk/MgDev/Common/Foundation/System/LibraryInit.h	2020-08-12 11:28:23 UTC (rev 9710)
@@ -0,0 +1,56 @@
+//
+//  Copyright (C) 2004-2020 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+#ifndef MGLIBRARYINIT_H_
+#define MGLIBRARYINIT_H_
+
+#include "FoundationDefs.h"
+
+#if defined(_WIN32) || defined(__CYGWIN32__)
+#  define DllExport   __declspec( dllexport )
+#  define SWIGSTDCALL __stdcall
+#else
+#  define DllExport
+#  define SWIGSTDCALL
+#endif
+
+void MgInitializeLibraryInternal(CREFSTRING stringResourcesPath, CREFSTRING locale);
+
+///////////////////////////////////////////////////////////////////////////
+/// \brief
+///
+/// Initializes this library for use in contexts outside of MapGuide web
+/// applications
+///
+/// \param stringResourcesPath
+/// Path to the localized mapguide string bundle
+///
+/// \param locale
+/// The locale of the given string bundle
+///
+DllExport void MgInitializeLibrary(CREFSTRING stringResourcesPath, CREFSTRING locale);
+
+///////////////////////////////////////////////////////////////////////////
+/// \brief
+///
+/// Tears down this library. Only call this if you called MgInitializeLibrary
+/// to initialize
+///
+DllExport void MgUninitializeLibrary();
+
+void MgUninitializeLibraryInternal();
+
+#endif 
\ No newline at end of file

Index: trunk/MgDev/UnitTest/WebTier/DotNet
===================================================================
--- trunk/MgDev/UnitTest/WebTier/DotNet	2020-08-04 16:32:00 UTC (rev 9709)
+++ trunk/MgDev/UnitTest/WebTier/DotNet	2020-08-12 11:28:23 UTC (rev 9710)

Property changes on: trunk/MgDev/UnitTest/WebTier/DotNet
___________________________________________________________________
Modified: svn:ignore
## -1,3 +1,4 ##
 Libs
 *.suo
 build.log
+.vs
Modified: trunk/MgDev/UnitTest/WebTier/DotNet/DotNet.sln
===================================================================
--- trunk/MgDev/UnitTest/WebTier/DotNet/DotNet.sln	2020-08-04 16:32:00 UTC (rev 9709)
+++ trunk/MgDev/UnitTest/WebTier/DotNet/DotNet.sln	2020-08-12 11:28:23 UTC (rev 9710)
@@ -1,6 +1,8 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Express 2012 for Windows Desktop
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30320.27
+MinimumVisualStudioVersion = 10.0.40219.1
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestCommon", "TestCommon\TestCommon.csproj", "{80EAA5CB-E709-485A-86AC-DE9B5236EAB9}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestMapGuideApi", "TestMapGuideApi\TestMapGuideApi.csproj", "{54A7F4EE-D977-4DFB-9922-C46C5FFB6822}"
@@ -7,40 +9,65 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MgTestRunner", "MgTestRunner\MgTestRunner.csproj", "{C920EC51-255B-4257-81AA-8D984B5B5A48}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestStandalone", "TestStandalone\TestStandalone.csproj", "{EA557D7D-37FC-4D99-A823-0BF22E6AE255}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
 		Debug|x64 = Debug|x64
 		Debug|x86 = Debug|x86
+		Release|Any CPU = Release|Any CPU
 		Release|x64 = Release|x64
 		Release|x86 = Release|x86
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{80EAA5CB-E709-485A-86AC-DE9B5236EAB9}.Debug|Any CPU.ActiveCfg = Debug|x86
 		{80EAA5CB-E709-485A-86AC-DE9B5236EAB9}.Debug|x64.ActiveCfg = Debug|x64
 		{80EAA5CB-E709-485A-86AC-DE9B5236EAB9}.Debug|x64.Build.0 = Debug|x64
 		{80EAA5CB-E709-485A-86AC-DE9B5236EAB9}.Debug|x86.ActiveCfg = Debug|x86
 		{80EAA5CB-E709-485A-86AC-DE9B5236EAB9}.Debug|x86.Build.0 = Debug|x86
+		{80EAA5CB-E709-485A-86AC-DE9B5236EAB9}.Release|Any CPU.ActiveCfg = Release|x86
 		{80EAA5CB-E709-485A-86AC-DE9B5236EAB9}.Release|x64.ActiveCfg = Release|x64
 		{80EAA5CB-E709-485A-86AC-DE9B5236EAB9}.Release|x64.Build.0 = Release|x64
 		{80EAA5CB-E709-485A-86AC-DE9B5236EAB9}.Release|x86.ActiveCfg = Release|x86
 		{80EAA5CB-E709-485A-86AC-DE9B5236EAB9}.Release|x86.Build.0 = Release|x86
+		{54A7F4EE-D977-4DFB-9922-C46C5FFB6822}.Debug|Any CPU.ActiveCfg = Debug|x86
 		{54A7F4EE-D977-4DFB-9922-C46C5FFB6822}.Debug|x64.ActiveCfg = Debug|x64
 		{54A7F4EE-D977-4DFB-9922-C46C5FFB6822}.Debug|x64.Build.0 = Debug|x64
 		{54A7F4EE-D977-4DFB-9922-C46C5FFB6822}.Debug|x86.ActiveCfg = Debug|x86
 		{54A7F4EE-D977-4DFB-9922-C46C5FFB6822}.Debug|x86.Build.0 = Debug|x86
+		{54A7F4EE-D977-4DFB-9922-C46C5FFB6822}.Release|Any CPU.ActiveCfg = Release|x86
 		{54A7F4EE-D977-4DFB-9922-C46C5FFB6822}.Release|x64.ActiveCfg = Release|x64
 		{54A7F4EE-D977-4DFB-9922-C46C5FFB6822}.Release|x64.Build.0 = Release|x64
 		{54A7F4EE-D977-4DFB-9922-C46C5FFB6822}.Release|x86.ActiveCfg = Release|x86
 		{54A7F4EE-D977-4DFB-9922-C46C5FFB6822}.Release|x86.Build.0 = Release|x86
+		{C920EC51-255B-4257-81AA-8D984B5B5A48}.Debug|Any CPU.ActiveCfg = Debug|x86
 		{C920EC51-255B-4257-81AA-8D984B5B5A48}.Debug|x64.ActiveCfg = Debug|x64
 		{C920EC51-255B-4257-81AA-8D984B5B5A48}.Debug|x64.Build.0 = Debug|x64
 		{C920EC51-255B-4257-81AA-8D984B5B5A48}.Debug|x86.ActiveCfg = Debug|x86
 		{C920EC51-255B-4257-81AA-8D984B5B5A48}.Debug|x86.Build.0 = Debug|x86
+		{C920EC51-255B-4257-81AA-8D984B5B5A48}.Release|Any CPU.ActiveCfg = Release|x86
 		{C920EC51-255B-4257-81AA-8D984B5B5A48}.Release|x64.ActiveCfg = Release|x64
 		{C920EC51-255B-4257-81AA-8D984B5B5A48}.Release|x64.Build.0 = Release|x64
 		{C920EC51-255B-4257-81AA-8D984B5B5A48}.Release|x86.ActiveCfg = Release|x86
 		{C920EC51-255B-4257-81AA-8D984B5B5A48}.Release|x86.Build.0 = Release|x86
+		{EA557D7D-37FC-4D99-A823-0BF22E6AE255}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{EA557D7D-37FC-4D99-A823-0BF22E6AE255}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{EA557D7D-37FC-4D99-A823-0BF22E6AE255}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{EA557D7D-37FC-4D99-A823-0BF22E6AE255}.Debug|x64.Build.0 = Debug|Any CPU
+		{EA557D7D-37FC-4D99-A823-0BF22E6AE255}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{EA557D7D-37FC-4D99-A823-0BF22E6AE255}.Debug|x86.Build.0 = Debug|Any CPU
+		{EA557D7D-37FC-4D99-A823-0BF22E6AE255}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{EA557D7D-37FC-4D99-A823-0BF22E6AE255}.Release|Any CPU.Build.0 = Release|Any CPU
+		{EA557D7D-37FC-4D99-A823-0BF22E6AE255}.Release|x64.ActiveCfg = Release|Any CPU
+		{EA557D7D-37FC-4D99-A823-0BF22E6AE255}.Release|x64.Build.0 = Release|Any CPU
+		{EA557D7D-37FC-4D99-A823-0BF22E6AE255}.Release|x86.ActiveCfg = Release|Any CPU
+		{EA557D7D-37FC-4D99-A823-0BF22E6AE255}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {EAC49B87-D297-418B-A6A3-6FEE20C07B19}
+	EndGlobalSection
 EndGlobal

Modified: trunk/MgDev/UnitTest/WebTier/DotNet/prebuild.bat
===================================================================
--- trunk/MgDev/UnitTest/WebTier/DotNet/prebuild.bat	2020-08-04 16:32:00 UTC (rev 9709)
+++ trunk/MgDev/UnitTest/WebTier/DotNet/prebuild.bat	2020-08-12 11:28:23 UTC (rev 9710)
@@ -27,11 +27,15 @@
 if "%PLAT%"=="x64" (
     echo Copying x64 binaries from %SLN_DIR%..\..\..\Web\bin\%CFG%64
     copy /Y "%SLN_DIR%..\..\..\Web\bin\%CFG%64\*.*" "%SLN_DIR%Libs\"
+    echo Copying x64 binaries from %SLN_DIR%..\..\..\Common\bin\%CFG%64
+    copy /Y "%SLN_DIR%..\..\..\Common\bin\%CFG%64\*.*" "%SLN_DIR%Libs\"
     echo Copying x64 SqliteDotNet.dll from %SLN_DIR%..\..\..\Oem\SQLite\bin\%CFG%64\SqliteDotNet.dll
     copy /Y "%SLN_DIR%..\..\..\Oem\SQLite\bin\%CFG%64\SqliteDotNet.dll" "%SLN_DIR%Libs\"
 ) else (
     echo Copying x86 binaries from %SLN_DIR%..\..\..\Web\bin\%CFG%
     copy /Y "%SLN_DIR%..\..\..\Web\bin\%CFG%\*.*" "%SLN_DIR%Libs\"
+    echo Copying x86 binaries from %SLN_DIR%..\..\..\Common\bin\%CFG%
+    copy /Y "%SLN_DIR%..\..\..\Common\bin\%CFG%\*.*" "%SLN_DIR%Libs\"
     echo Copying x86 SqliteDotNet.dll
     copy /Y "%SLN_DIR%..\..\..\Oem\SQLite\bin\%CFG%\SqliteDotNet.dll" "%SLN_DIR%Libs\"
 )

Modified: trunk/MgDev/Web/src/DotNetUnmanagedApi/Foundation/FoundationApi.vcxproj
===================================================================
--- trunk/MgDev/Web/src/DotNetUnmanagedApi/Foundation/FoundationApi.vcxproj	2020-08-04 16:32:00 UTC (rev 9709)
+++ trunk/MgDev/Web/src/DotNetUnmanagedApi/Foundation/FoundationApi.vcxproj	2020-08-12 11:28:23 UTC (rev 9710)
@@ -247,6 +247,7 @@
     <None Include="FoundationApiGen.xml" />
     <None Include="FoundationConstants.xml" />
     <None Include="..\getclassid.code" />
+    <None Include="InitializeLibrary.i" />
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="FoundationApi.rc" />

Modified: trunk/MgDev/Web/src/DotNetUnmanagedApi/Foundation/FoundationApiGen.xml
===================================================================
--- trunk/MgDev/Web/src/DotNetUnmanagedApi/Foundation/FoundationApiGen.xml	2020-08-04 16:32:00 UTC (rev 9709)
+++ trunk/MgDev/Web/src/DotNetUnmanagedApi/Foundation/FoundationApiGen.xml	2020-08-12 11:28:23 UTC (rev 9710)
@@ -51,6 +51,7 @@
 <SwigInline>
   %include "FoundationApi_Doc.i" //doc fragments
   %include "language.i"   //typemaps specific for each language
+  %include "InitializeLibrary.i"
   %include "../../../../Common/Foundation/System/FoundationClassId.h"
 
 #if defined(PHPSWIG)
@@ -96,6 +97,8 @@
 
     <!-- The MgDisposableCollection depends on the MgCollection above and so must come after it -->
     <Header path="../../../../Common/Foundation/System/DisposableCollection.h" />
+    
+    <Header path="../../../../Common/Foundation/System/LibraryInit.h" />
 
     <Header path="../../../../Common/Foundation/Data/BatchPropertyCollection.h" />
     <Header path="../../../../Common/Foundation/Data/ByteReader.h" />

Copied: trunk/MgDev/Web/src/DotNetUnmanagedApi/Foundation/InitializeLibrary.i (from rev 9709, sandbox/jng/library_init/Web/src/DotNetUnmanagedApi/Foundation/InitializeLibrary.i)
===================================================================
--- trunk/MgDev/Web/src/DotNetUnmanagedApi/Foundation/InitializeLibrary.i	                        (rev 0)
+++ trunk/MgDev/Web/src/DotNetUnmanagedApi/Foundation/InitializeLibrary.i	2020-08-12 11:28:23 UTC (rev 9710)
@@ -0,0 +1,22 @@
+//
+//  Copyright (C) 2004-2020 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+///////////////////////////////////////////////////////////
+// Global functions
+//
+void MgInitializeLibrary(STRINGPARAM stringResourcesPath, STRINGPARAM locale);
+void MgUninitializeLibrary();
\ No newline at end of file

Modified: trunk/MgDev/Web/src/WebSupport/InitializeWebTier.cpp
===================================================================
--- trunk/MgDev/Web/src/WebSupport/InitializeWebTier.cpp	2020-08-04 16:32:00 UTC (rev 9709)
+++ trunk/MgDev/Web/src/WebSupport/InitializeWebTier.cpp	2020-08-12 11:28:23 UTC (rev 9710)
@@ -158,7 +158,7 @@
 
     MgUninitializeWebTierInternal();
 
-    MG_CATCH_AND_THROW(L"MgInitializeWebTier")
+    MG_CATCH_AND_THROW(L"MgUninitializeWebTier")
 }
 
 DllExport bool IsWebTierInitialized()



More information about the mapguide-commits mailing list