From 8d304725518424131fa42dce1515137e0bb1eada Mon Sep 17 00:00:00 2001
From: Mike Mazur
Date: Mon, 16 Feb 2009 02:25:25 +0000
Subject: Rename NewAssetServer AssetInventoryServer and fully qualify with
OpenSim.Grid.AssetInventoryServer.
---
OpenSim/Grid/AssetInventoryServer/Interfaces.cs | 157 ++++++++++++++++++++++++
1 file changed, 157 insertions(+)
create mode 100644 OpenSim/Grid/AssetInventoryServer/Interfaces.cs
(limited to 'OpenSim/Grid/AssetInventoryServer/Interfaces.cs')
diff --git a/OpenSim/Grid/AssetInventoryServer/Interfaces.cs b/OpenSim/Grid/AssetInventoryServer/Interfaces.cs
new file mode 100644
index 0000000..fd9ed2c
--- /dev/null
+++ b/OpenSim/Grid/AssetInventoryServer/Interfaces.cs
@@ -0,0 +1,157 @@
+/*
+ * Copyright (c) 2008 Intel Corporation
+ * All rights reserved.
+ * 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 Intel Corporation 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 COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``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 THE INTEL OR ITS
+ * CONTRIBUTORS 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.Generic;
+using System.Net;
+using OpenMetaverse;
+using OpenMetaverse.StructuredData;
+using OpenSim.Framework;
+
+namespace OpenSim.Grid.AssetInventoryServer
+{
+ ///
+ /// Response from a call to a backend provider
+ ///
+ public enum BackendResponse
+ {
+ /// The call succeeded
+ Success,
+ /// The resource requested was not found
+ NotFound,
+ /// A server failure prevented the call from
+ /// completing
+ Failure
+ }
+
+ public class AssetInventoryServerPluginInitialiser : PluginInitialiserBase
+ {
+ private AssetInventoryServer server;
+
+ public AssetInventoryServerPluginInitialiser (AssetInventoryServer server)
+ {
+ this.server = server;
+ }
+
+ public override void Initialise (IPlugin plugin)
+ {
+ IAssetInventoryServerPlugin p = plugin as IAssetInventoryServerPlugin;
+ p.Initialise (server);
+ }
+ }
+
+ #region Interfaces
+
+ public interface IAssetInventoryServerPlugin : IPlugin
+ {
+ void Initialise(AssetInventoryServer server);
+ }
+
+ public interface IStorageProvider
+ {
+ BackendResponse TryFetchMetadata(UUID assetID, out Metadata metadata);
+ BackendResponse TryFetchData(UUID assetID, out byte[] assetData);
+ BackendResponse TryFetchDataMetadata(UUID assetID, out Metadata metadata, out byte[] assetData);
+ BackendResponse TryCreateAsset(Metadata metadata, byte[] assetData);
+ BackendResponse TryCreateAsset(Metadata metadata, byte[] assetData, out UUID assetID);
+ int ForEach(Action action, int start, int count);
+ }
+
+ public interface IAssetStorageProvider : IAssetInventoryServerPlugin
+ {
+ BackendResponse TryFetchMetadata(UUID assetID, out Metadata metadata);
+ BackendResponse TryFetchData(UUID assetID, out byte[] assetData);
+ BackendResponse TryFetchDataMetadata(UUID assetID, out Metadata metadata, out byte[] assetData);
+ BackendResponse TryCreateAsset(Metadata metadata, byte[] assetData);
+ BackendResponse TryCreateAsset(Metadata metadata, byte[] assetData, out UUID assetID);
+ int ForEach(Action action, int start, int count);
+ }
+
+ public interface IInventoryProvider
+ {
+ BackendResponse TryFetchItem(Uri owner, UUID itemID, out InventoryItem item);
+ BackendResponse TryFetchFolder(Uri owner, UUID folderID, out InventoryFolder folder);
+ BackendResponse TryFetchFolderContents(Uri owner, UUID folderID, out InventoryCollection contents);
+ BackendResponse TryFetchFolderList(Uri owner, out List folders);
+ BackendResponse TryFetchInventory(Uri owner, out InventoryCollection inventory);
+
+ BackendResponse TryFetchActiveGestures(Uri owner, out List gestures);
+
+ BackendResponse TryCreateItem(Uri owner, InventoryItem item);
+ BackendResponse TryCreateFolder(Uri owner, InventoryFolder folder);
+ BackendResponse TryCreateInventory(Uri owner, InventoryFolder rootFolder);
+
+ BackendResponse TryDeleteItem(Uri owner, UUID itemID);
+ BackendResponse TryDeleteFolder(Uri owner, UUID folderID);
+ BackendResponse TryPurgeFolder(Uri owner, UUID folderID);
+ }
+
+ public interface IAuthenticationProvider
+ {
+ void AddIdentifier(UUID authToken, Uri identifier);
+ bool RemoveIdentifier(UUID authToken);
+ bool TryGetIdentifier(UUID authToken, out Uri identifier);
+ }
+
+ public interface IAuthorizationProvider
+ {
+ bool IsMetadataAuthorized(UUID authToken, UUID assetID);
+ ///
+ /// Authorizes access to the data for an asset. Access to asset data
+ /// also implies access to the metadata for that asset
+ ///
+ /// Authentication token to check for access
+ /// ID of the requested asset
+ /// True if access is granted, otherwise false
+ bool IsDataAuthorized(UUID authToken, UUID assetID);
+ bool IsCreateAuthorized(UUID authToken);
+
+ bool IsInventoryReadAuthorized(UUID authToken, Uri owner);
+ bool IsInventoryWriteAuthorized(UUID authToken, Uri owner);
+ }
+
+ public interface IMetricsProvider
+ {
+ void LogAssetMetadataFetch(string extension, BackendResponse response, UUID assetID, DateTime time);
+ void LogAssetDataFetch(string extension, BackendResponse response, UUID assetID, int dataSize, DateTime time);
+ void LogAssetCreate(string extension, BackendResponse response, UUID assetID, int dataSize, DateTime time);
+
+ void LogInventoryFetch(string extension, BackendResponse response, Uri owner, UUID objID, bool folder, DateTime time);
+ void LogInventoryFetchFolderContents(string extension, BackendResponse response, Uri owner, UUID folderID, DateTime time);
+ void LogInventoryFetchFolderList(string extension, BackendResponse response, Uri owner, DateTime time);
+ void LogInventoryFetchInventory(string extension, BackendResponse response, Uri owner, DateTime time);
+ void LogInventoryFetchActiveGestures(string extension, BackendResponse response, Uri owner, DateTime time);
+ void LogInventoryCreate(string extension, BackendResponse response, Uri owner, bool folder, DateTime time);
+ void LogInventoryCreateInventory(string extension, BackendResponse response, DateTime time);
+ void LogInventoryDelete(string extension, BackendResponse response, Uri owner, UUID objID, bool folder, DateTime time);
+ void LogInventoryPurgeFolder(string extension, BackendResponse response, Uri owner, UUID folderID, DateTime time);
+ }
+
+ #endregion Interfaces
+}
--
cgit v1.1