From bad9cdae1e939d2af5baa0164619aa4b8628c319 Mon Sep 17 00:00:00 2001
From: Adam Frisby
Date: Sat, 2 Jun 2007 01:15:47 +0000
Subject: * GridManagementAgent is now documented

---
 .../GridManagementAgent.cs                         | 67 +++++++++++++++++++++-
 .../GridServerManager.cs                           | 53 +++++++++++++++--
 2 files changed, 113 insertions(+), 7 deletions(-)

(limited to 'OpenGridServices')

diff --git a/OpenGridServices/OpenGrid.Framework.Manager/GridManagementAgent.cs b/OpenGridServices/OpenGrid.Framework.Manager/GridManagementAgent.cs
index f4483fb..0ee0e3d 100644
--- a/OpenGridServices/OpenGrid.Framework.Manager/GridManagementAgent.cs
+++ b/OpenGridServices/OpenGrid.Framework.Manager/GridManagementAgent.cs
@@ -1,3 +1,29 @@
+/*
+* Copyright (c) OpenSim project, http://sim.opensecondlife.org/
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the <organization> nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
 using Nwc.XmlRpc;
 using OpenSim.Framework;
 using OpenSim.Servers;
@@ -7,19 +33,46 @@ using libsecondlife;
 
 namespace OpenGrid.Framework.Manager
 {
-
+    /// <summary>
+    /// Used to pass messages to the gridserver
+    /// </summary>
+    /// <param name="param">Pass this argument</param>
     public delegate void GridManagerCallback(string param);
 
+    /// <summary>
+    /// Serverside listener for grid commands
+    /// </summary>
     public class GridManagementAgent
     {
-
+        /// <summary>
+        /// Passes grid server messages
+        /// </summary>
         private GridManagerCallback thecallback;
+
+        /// <summary>
+        /// Security keys
+        /// </summary>
         private string sendkey;
         private string recvkey;
+
+        /// <summary>
+        /// Our component type
+        /// </summary>
         private string component_type;
 
+        /// <summary>
+        /// List of active sessions
+        /// </summary>
         private static ArrayList Sessions;
 
+        /// <summary>
+        /// Initialises a new GridManagementAgent
+        /// </summary>
+        /// <param name="app_httpd">HTTP Daemon for this server</param>
+        /// <param name="component_type">What component type are we?</param>
+        /// <param name="sendkey">Security send key</param>
+        /// <param name="recvkey">Security recieve key</param>
+        /// <param name="thecallback">Message callback</param>
         public GridManagementAgent(BaseHttpServer app_httpd, string component_type, string sendkey, string recvkey, GridManagerCallback thecallback)
         {
             this.sendkey = sendkey;
@@ -41,11 +94,21 @@ namespace OpenGrid.Framework.Manager
             }
         }
 
+        /// <summary>
+        /// Checks if a session exists
+        /// </summary>
+        /// <param name="sessionID">The session ID</param>
+        /// <returns>Exists?</returns>
         public static bool SessionExists(LLUUID sessionID)
         {
             return Sessions.Contains(sessionID);
         }
 
+        /// <summary>
+        /// Logs a new session to the grid manager
+        /// </summary>
+        /// <param name="request">the XMLRPC request</param>
+        /// <returns>An XMLRPC reply</returns>
         public static XmlRpcResponse XmlRpcLoginMethod(XmlRpcRequest request)
         {
             XmlRpcResponse response = new XmlRpcResponse();
diff --git a/OpenGridServices/OpenGrid.Framework.Manager/GridServerManager.cs b/OpenGridServices/OpenGrid.Framework.Manager/GridServerManager.cs
index 7ebf66a..e1d25a6 100644
--- a/OpenGridServices/OpenGrid.Framework.Manager/GridServerManager.cs
+++ b/OpenGridServices/OpenGrid.Framework.Manager/GridServerManager.cs
@@ -1,3 +1,30 @@
+/*
+* Copyright (c) OpenSim project, http://sim.opensecondlife.org/
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the <organization> nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+
 using System;
 using System.Collections;
 using System.Collections.Generic;
@@ -7,13 +34,27 @@ using libsecondlife;
 
 namespace OpenGrid.Framework.Manager {
 
+    /// <summary>
+    /// A remote management system for the grid server
+    /// </summary>
 	public class GridServerManager 
 	{
+        /// <summary>
+        /// Triggers events from the grid manager
+        /// </summary>
 		public static GridManagerCallback thecallback;
 
+        /// <summary>
+        /// Security keys
+        /// </summary>
 		public static string sendkey;
 		public static string recvkey;
 
+        /// <summary>
+        /// Disconnects the grid server and shuts it down
+        /// </summary>
+        /// <param name="request">XmlRpc Request</param>
+        /// <returns>An XmlRpc response containing either a "msg" or an "error"</returns>
 		public static XmlRpcResponse XmlRpcShutdownMethod(XmlRpcRequest request)
          	{
            		XmlRpcResponse response = new XmlRpcResponse();
@@ -23,7 +64,7 @@ namespace OpenGrid.Framework.Manager {
 			if(requestData.ContainsKey("session_id")) {
 				if(GridManagementAgent.SessionExists(new LLUUID((string)requestData["session_id"]))) {
 					responseData["msg"]="Shutdown command accepted";
-					(new Thread(new ThreadStart(ZOMGServerIsNowTerminallyIll))).Start();
+					(new Thread(new ThreadStart(ShutdownServer))).Start();
 				} else {
 					response.IsFault=true;
 					responseData["error"]="bad session ID";
@@ -37,11 +78,13 @@ namespace OpenGrid.Framework.Manager {
 	    		return response;
 		}
 
-		// Brought to by late-night coding
-		public static void ZOMGServerIsNowTerminallyIll()
+		/// <summary>
+        /// Shuts down the grid server
+		/// </summary>
+		public static void ShutdownServer()
 		{
-			Console.WriteLine("ZOMG! THIS SERVER IS TERMINALLY ILL - WE GOT A SHUTDOWN REQUEST FROM A GRID MANAGER!!!!");
-			Console.WriteLine("We have 3 seconds to live...");
+			Console.WriteLine("Shutting down the grid server - recieved a grid manager request");
+			Console.WriteLine("Terminating in three seconds...");
 			Thread.Sleep(3000);
 			thecallback("shutdown");
 		}
-- 
cgit v1.1