diff options
-rwxr-xr-x[-rw-r--r--] | OpenSim/Services/HypergridService/HGAssetService.cs | 83 | ||||
-rw-r--r-- | Prebuild/prebuild.xml | 2 |
2 files changed, 71 insertions, 14 deletions
diff --git a/OpenSim/Services/HypergridService/HGAssetService.cs b/OpenSim/Services/HypergridService/HGAssetService.cs index a66478e..8fef57a 100644..100755 --- a/OpenSim/Services/HypergridService/HGAssetService.cs +++ b/OpenSim/Services/HypergridService/HGAssetService.cs | |||
@@ -39,6 +39,7 @@ using OpenSim.Framework.Serialization.External; | |||
39 | using OpenSim.Server.Base; | 39 | using OpenSim.Server.Base; |
40 | using OpenSim.Services.Interfaces; | 40 | using OpenSim.Services.Interfaces; |
41 | using OpenSim.Services.AssetService; | 41 | using OpenSim.Services.AssetService; |
42 | using OpenSim.Services.Base; | ||
42 | 43 | ||
43 | namespace OpenSim.Services.HypergridService | 44 | namespace OpenSim.Services.HypergridService |
44 | { | 45 | { |
@@ -47,7 +48,7 @@ namespace OpenSim.Services.HypergridService | |||
47 | /// but implements it in ways that are appropriate for inter-grid | 48 | /// but implements it in ways that are appropriate for inter-grid |
48 | /// asset exchanges. | 49 | /// asset exchanges. |
49 | /// </summary> | 50 | /// </summary> |
50 | public class HGAssetService : OpenSim.Services.AssetService.AssetService, IAssetService | 51 | public class HGAssetService : ServiceBase, IAssetService |
51 | { | 52 | { |
52 | private static readonly ILog m_log = | 53 | private static readonly ILog m_log = |
53 | LogManager.GetLogger( | 54 | LogManager.GetLogger( |
@@ -60,7 +61,9 @@ namespace OpenSim.Services.HypergridService | |||
60 | 61 | ||
61 | private AssetPermissions m_AssetPerms; | 62 | private AssetPermissions m_AssetPerms; |
62 | 63 | ||
63 | public HGAssetService(IConfigSource config, string configName) : base(config, configName) | 64 | IAssetService m_assetService = null; |
65 | |||
66 | public HGAssetService(IConfigSource config, string configName) : base(config) | ||
64 | { | 67 | { |
65 | m_log.Debug("[HGAsset Service]: Starting"); | 68 | m_log.Debug("[HGAsset Service]: Starting"); |
66 | IConfig assetConfig = config.Configs[configName]; | 69 | IConfig assetConfig = config.Configs[configName]; |
@@ -86,12 +89,30 @@ namespace OpenSim.Services.HypergridService | |||
86 | // Permissions | 89 | // Permissions |
87 | m_AssetPerms = new AssetPermissions(assetConfig); | 90 | m_AssetPerms = new AssetPermissions(assetConfig); |
88 | 91 | ||
92 | string str = assetConfig.GetString("BackingService", "OpenSim.Services.AssetService.dll:AssetService"); | ||
93 | |||
94 | if (str != string.Empty) | ||
95 | { | ||
96 | args = new object[] { config }; | ||
97 | m_assetService = LoadPlugin<IAssetService>(str, args); | ||
98 | if (m_assetService != null) | ||
99 | { | ||
100 | m_log.InfoFormat("[HGASSETS]: Backing service loaded: {0}", str); | ||
101 | } | ||
102 | else | ||
103 | { | ||
104 | m_log.ErrorFormat("[HGASSETS]: Failed to load backing service {0}", str); | ||
105 | } | ||
106 | } | ||
107 | |||
108 | |||
109 | |||
89 | } | 110 | } |
90 | 111 | ||
91 | #region IAssetService overrides | 112 | #region IAssetService |
92 | public override AssetBase Get(string id) | 113 | public AssetBase Get(string id) |
93 | { | 114 | { |
94 | AssetBase asset = base.Get(id); | 115 | AssetBase asset = m_assetService.Get(id); |
95 | 116 | ||
96 | if (asset == null) | 117 | if (asset == null) |
97 | return null; | 118 | return null; |
@@ -107,9 +128,9 @@ namespace OpenSim.Services.HypergridService | |||
107 | return asset; | 128 | return asset; |
108 | } | 129 | } |
109 | 130 | ||
110 | public override AssetMetadata GetMetadata(string id) | 131 | public AssetMetadata GetMetadata(string id) |
111 | { | 132 | { |
112 | AssetMetadata meta = base.GetMetadata(id); | 133 | AssetMetadata meta = m_assetService.GetMetadata(id); |
113 | 134 | ||
114 | if (meta == null) | 135 | if (meta == null) |
115 | return null; | 136 | return null; |
@@ -119,7 +140,7 @@ namespace OpenSim.Services.HypergridService | |||
119 | return meta; | 140 | return meta; |
120 | } | 141 | } |
121 | 142 | ||
122 | public override byte[] GetData(string id) | 143 | public byte[] GetData(string id) |
123 | { | 144 | { |
124 | AssetBase asset = Get(id); | 145 | AssetBase asset = Get(id); |
125 | 146 | ||
@@ -142,7 +163,7 @@ namespace OpenSim.Services.HypergridService | |||
142 | 163 | ||
143 | //public virtual bool Get(string id, Object sender, AssetRetrieved handler) | 164 | //public virtual bool Get(string id, Object sender, AssetRetrieved handler) |
144 | 165 | ||
145 | public override string Store(AssetBase asset) | 166 | public string Store(AssetBase asset) |
146 | { | 167 | { |
147 | if (!m_AssetPerms.AllowedImport(asset.Type)) | 168 | if (!m_AssetPerms.AllowedImport(asset.Type)) |
148 | return string.Empty; | 169 | return string.Empty; |
@@ -155,15 +176,53 @@ namespace OpenSim.Services.HypergridService | |||
155 | asset.Data = Utils.StringToBytes(xml); | 176 | asset.Data = Utils.StringToBytes(xml); |
156 | } | 177 | } |
157 | 178 | ||
158 | return base.Store(asset); | 179 | return m_assetService.Store(asset); |
159 | } | 180 | } |
160 | 181 | ||
161 | public override bool Delete(string id) | 182 | public bool Delete(string id) |
162 | { | 183 | { |
163 | // NOGO | 184 | // NOGO |
164 | return false; | 185 | return false; |
165 | } | 186 | } |
166 | 187 | ||
188 | public AssetBase GetCached(string id) | ||
189 | { | ||
190 | AssetBase asset = m_assetService.GetCached(id); | ||
191 | |||
192 | if (asset == null) | ||
193 | return null; | ||
194 | |||
195 | if (!m_AssetPerms.AllowedExport(asset.Type)) | ||
196 | return null; | ||
197 | |||
198 | if (asset.Metadata.Type == (sbyte)AssetType.Object) | ||
199 | asset.Data = AdjustIdentifiers(asset.Data); | ||
200 | |||
201 | AdjustIdentifiers(asset.Metadata); | ||
202 | |||
203 | return asset; | ||
204 | } | ||
205 | |||
206 | public bool Get(string id, object sender, AssetRetrieved handler) | ||
207 | { | ||
208 | AssetBase asset = Get(id); | ||
209 | |||
210 | handler?.Invoke(id, sender, asset); | ||
211 | |||
212 | return true; | ||
213 | } | ||
214 | |||
215 | public bool[] AssetsExist(string[] ids) | ||
216 | { | ||
217 | return m_assetService.AssetsExist(ids); | ||
218 | } | ||
219 | |||
220 | public bool UpdateContent(string id, byte[] data) | ||
221 | { | ||
222 | // NO WAY | ||
223 | return false; | ||
224 | } | ||
225 | |||
167 | #endregion | 226 | #endregion |
168 | 227 | ||
169 | protected void AdjustIdentifiers(AssetMetadata meta) | 228 | protected void AdjustIdentifiers(AssetMetadata meta) |
@@ -187,7 +246,5 @@ namespace OpenSim.Services.HypergridService | |||
187 | 246 | ||
188 | return Utils.StringToBytes(ExternalRepresentationUtils.RewriteSOP(xml, "HGAssetService", m_HomeURL, m_Cache, UUID.Zero)); | 247 | return Utils.StringToBytes(ExternalRepresentationUtils.RewriteSOP(xml, "HGAssetService", m_HomeURL, m_Cache, UUID.Zero)); |
189 | } | 248 | } |
190 | |||
191 | } | 249 | } |
192 | |||
193 | } | 250 | } |
diff --git a/Prebuild/prebuild.xml b/Prebuild/prebuild.xml index f0003df..99f576b 100644 --- a/Prebuild/prebuild.xml +++ b/Prebuild/prebuild.xml | |||
@@ -31,7 +31,7 @@ | |||
31 | rootNamespace="Prebuild" | 31 | rootNamespace="Prebuild" |
32 | startupObject="Prebuild.Prebuild" | 32 | startupObject="Prebuild.Prebuild" |
33 | version="2.0.7" | 33 | version="2.0.7" |
34 | frameworkVersion="v4_0" | 34 | frameworkVersion="v4_6" |
35 | > | 35 | > |
36 | <Author>Matthew Holmes (matthew@wildfiregames.com)</Author> | 36 | <Author>Matthew Holmes (matthew@wildfiregames.com)</Author> |
37 | <Author>Dan Moorehead (dan05a@gmail.com)</Author> | 37 | <Author>Dan Moorehead (dan05a@gmail.com)</Author> |