[mapguide-commits] r4489 - sandbox/adsk/2.1/Common/MapGuideCommon/Services

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Thu Jan 7 15:26:31 EST 2010


Author: brucedechant
Date: 2010-01-07 15:26:31 -0500 (Thu, 07 Jan 2010)
New Revision: 4489

Modified:
   sandbox/adsk/2.1/Common/MapGuideCommon/Services/SiteManager.cpp
Log:
Fix for trac ticket 1131 - Load balancing doesn't support fail over
http://trac.osgeo.org/mapguide/ticket/1131

Notes:
- Small update to GetSiteInfo



Modified: sandbox/adsk/2.1/Common/MapGuideCommon/Services/SiteManager.cpp
===================================================================
--- sandbox/adsk/2.1/Common/MapGuideCommon/Services/SiteManager.cpp	2010-01-07 17:40:26 UTC (rev 4488)
+++ sandbox/adsk/2.1/Common/MapGuideCommon/Services/SiteManager.cpp	2010-01-07 20:26:31 UTC (rev 4489)
@@ -479,7 +479,7 @@
 {
     ACE_MT(ACE_GUARD_RETURN(ACE_Recursive_Thread_Mutex, ace_mon, m_mutex, NULL));
 
-    MgSiteInfo* matchingSiteInfo = NULL;
+    Ptr<MgSiteInfo> matchingSiteInfo;
 
     for (INT32 i = 0; i < (INT32)m_sites.size(); i++)
     {
@@ -490,12 +490,12 @@
                 siteInfo->GetPort(MgSiteInfo::Client) == port ||
                 siteInfo->GetPort(MgSiteInfo::Admin)  == port))
         {
-            matchingSiteInfo = siteInfo;
+            matchingSiteInfo = SAFE_ADDREF(siteInfo);
             break;
         }
     }
 
-    return SAFE_ADDREF(matchingSiteInfo);
+    return matchingSiteInfo.Detach();
 }
 
 ///----------------------------------------------------------------------------
@@ -506,7 +506,7 @@
 ///----------------------------------------------------------------------------
 MgSiteInfo* MgSiteManager::GetSiteInfo(CREFSTRING hexString)
 {
-    MgSiteInfo* matchingSiteInfo = NULL;
+    Ptr<MgSiteInfo> matchingSiteInfo;
 
     if(hexString.length() >= MgSiteInfo::HexStringLength)
     {
@@ -534,13 +534,16 @@
                     siteInfo->GetPort(MgSiteInfo::Client) == clientPort ||
                     siteInfo->GetPort(MgSiteInfo::Admin)  == adminPort))
             {
-                matchingSiteInfo = siteInfo;
+                matchingSiteInfo = SAFE_ADDREF(siteInfo);
                 break;
             }
         }
     }
 
-    return SAFE_ADDREF(matchingSiteInfo);
+    if (matchingSiteInfo == NULL)
+        matchingSiteInfo = new MgSiteInfo(hexString);
+
+    return matchingSiteInfo.Detach();
 }
 
 MgSiteVector* MgSiteManager::GetSites()



More information about the mapguide-commits mailing list