예제 #1
0
        Hashtable RegisterCaps(UUID userID, string authToken)
        {
            lock (invCaps)
            {
                if (invCaps.ContainsKey(userID))
                {
                    // Remove the old ones
                    DeregisterCaps(httpServer, invCaps[userID]);
                    invCaps.Remove(userID);
                }
            }

            Caps caps = new Caps(null, httpServer, m_thisHostname, m_thisPort, authToken, userID, false, "Inventory");
            caps.RegisterInventoryServiceHandlers("/" + authToken + "/InventoryCap/");
            caps.ItemUpdatedCall = UpdateInventoryItemAsset;
            caps.AddNewInventoryItem = AddUploadedInventoryItem;
            caps.AddNewAsset = PostAnAsset;
            //caps.GetClient = 

            Hashtable capsHandlers = caps.CapsHandlers.CapsDetails;

            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<Guid, InventoryCollection>(
                                        "POST", AddAndGetCapUrl(authToken, "GetInventory", capsHandlers), GetUserInventory, CheckAuthSession));

            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryFolderBase, InventoryCollection>(
                                        "POST", AddAndGetCapUrl(authToken, "FetchDescendants", capsHandlers), FetchDescendants, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryFolderBase, bool>(
                                        "POST", AddAndGetCapUrl(authToken, "NewFolder", capsHandlers), m_inventoryService.AddFolder, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryFolderBase, bool>(
                                        "POST", AddAndGetCapUrl(authToken, "UpdateFolder", capsHandlers), m_inventoryService.UpdateFolder, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryFolderBase, bool>(
                                        "POST", AddAndGetCapUrl(authToken, "MoveFolder", capsHandlers), m_inventoryService.MoveFolder, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryFolderBase, bool>(
                                        "POST", AddAndGetCapUrl(authToken, "PurgeFolder", capsHandlers), m_inventoryService.PurgeFolder, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryFolderBase, bool>(
                                        "POST", AddAndGetCapUrl(authToken, "RemoveFolder", capsHandlers), RemoveFolder, CheckAuthSession));

            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryItemBase, InventoryItemBase>(
                                        "POST", AddAndGetCapUrl(authToken, "GetItem", capsHandlers), GetInventoryItem, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryItemBase, InventoryItemBase>(
                                        "POST", AddAndGetCapUrl(authToken, "NewItem", capsHandlers), AddItem, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryItemBase, InventoryItemBase>(
                                        "POST", AddAndGetCapUrl(authToken, "UpdateItem", capsHandlers), UpdateItem, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryItemBase, InventoryItemBase>(
                                        "POST", AddAndGetCapUrl(authToken, "MoveItem", capsHandlers), MoveItem, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryItemBase, InventoryItemBase>(
                                        "POST", AddAndGetCapUrl(authToken, "DeleteItem", capsHandlers), DeleteItem, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryItemBase, InventoryItemBase>(
                                        "POST", AddAndGetCapUrl(authToken, "CopyItem", capsHandlers), CopyItem, CheckAuthSession));

            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<InventoryItemBase, AssetBase>(
                                        "POST", AddAndGetCapUrl(authToken, "GetAsset", capsHandlers), GetAsset, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<AssetBase, bool>(
                                        "POST", AddAndGetCapUrl(authToken, "PostAsset", capsHandlers), PostAsset, CheckAuthSession));

            lock (invCaps)
                invCaps.Add(userID, capsHandlers);

            return capsHandlers;
        }
        Hashtable RegisterCaps(UUID userID, string authToken)
        {
            lock (invCaps)
            {
                if (invCaps.ContainsKey(userID))
                {
                    // Remove the old ones
                    DeregisterCaps(httpServer, invCaps[userID]);
                    invCaps.Remove(userID);
                }
            }

            Caps caps = new Caps(null, httpServer, m_thisHostname, m_thisPort, authToken, userID, false, "Inventory");

            caps.RegisterInventoryServiceHandlers("/" + authToken + "/InventoryCap/");
            caps.ItemUpdatedCall     = UpdateInventoryItemAsset;
            caps.AddNewInventoryItem = AddUploadedInventoryItem;
            caps.AddNewAsset         = PostAnAsset;
            //caps.GetClient =

            Hashtable capsHandlers = caps.CapsHandlers.CapsDetails;

            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler <Guid, InventoryCollection>(
                                            "POST", AddAndGetCapUrl(authToken, "GetInventory", capsHandlers), GetUserInventory, CheckAuthSession));

            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler <InventoryFolderBase, InventoryCollection>(
                                            "POST", AddAndGetCapUrl(authToken, "FetchDescendants", capsHandlers), FetchDescendants, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler <InventoryFolderBase, bool>(
                                            "POST", AddAndGetCapUrl(authToken, "NewFolder", capsHandlers), m_inventoryService.AddFolder, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler <InventoryFolderBase, bool>(
                                            "POST", AddAndGetCapUrl(authToken, "UpdateFolder", capsHandlers), m_inventoryService.UpdateFolder, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler <InventoryFolderBase, bool>(
                                            "POST", AddAndGetCapUrl(authToken, "MoveFolder", capsHandlers), m_inventoryService.MoveFolder, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler <InventoryFolderBase, bool>(
                                            "POST", AddAndGetCapUrl(authToken, "PurgeFolder", capsHandlers), m_inventoryService.PurgeFolder, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler <InventoryFolderBase, bool>(
                                            "POST", AddAndGetCapUrl(authToken, "RemoveFolder", capsHandlers), RemoveFolder, CheckAuthSession));

            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler <InventoryItemBase, InventoryItemBase>(
                                            "POST", AddAndGetCapUrl(authToken, "GetItem", capsHandlers), GetInventoryItem, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler <InventoryItemBase, InventoryItemBase>(
                                            "POST", AddAndGetCapUrl(authToken, "NewItem", capsHandlers), AddItem, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler <InventoryItemBase, InventoryItemBase>(
                                            "POST", AddAndGetCapUrl(authToken, "UpdateItem", capsHandlers), UpdateItem, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler <InventoryItemBase, InventoryItemBase>(
                                            "POST", AddAndGetCapUrl(authToken, "MoveItem", capsHandlers), MoveItem, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler <InventoryItemBase, InventoryItemBase>(
                                            "POST", AddAndGetCapUrl(authToken, "DeleteItem", capsHandlers), DeleteItem, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler <InventoryItemBase, InventoryItemBase>(
                                            "POST", AddAndGetCapUrl(authToken, "CopyItem", capsHandlers), CopyItem, CheckAuthSession));

            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler <InventoryItemBase, AssetBase>(
                                            "POST", AddAndGetCapUrl(authToken, "GetAsset", capsHandlers), GetAsset, CheckAuthSession));
            httpServer.AddStreamHandler(new RestDeserialiseSecureHandler <AssetBase, bool>(
                                            "POST", AddAndGetCapUrl(authToken, "PostAsset", capsHandlers), PostAsset, CheckAuthSession));

            lock (invCaps)
                invCaps.Add(userID, capsHandlers);

            return(capsHandlers);
        }