aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Framework/Communications/Cache/AssetServerBase.cs2
-rw-r--r--OpenSim/Framework/Communications/Cache/GridAssetClient.cs103
2 files changed, 43 insertions, 62 deletions
diff --git a/OpenSim/Framework/Communications/Cache/AssetServerBase.cs b/OpenSim/Framework/Communications/Cache/AssetServerBase.cs
index 7109910..7c9df88 100644
--- a/OpenSim/Framework/Communications/Cache/AssetServerBase.cs
+++ b/OpenSim/Framework/Communications/Cache/AssetServerBase.cs
@@ -74,7 +74,7 @@ namespace OpenSim.Framework.Communications.Cache
74 _assetRequests.Enqueue(req); 74 _assetRequests.Enqueue(req);
75 } 75 }
76 76
77 public void UpdateAsset(AssetBase asset) 77 public virtual void UpdateAsset(AssetBase asset)
78 { 78 {
79 lock (syncLock) 79 lock (syncLock)
80 { 80 {
diff --git a/OpenSim/Framework/Communications/Cache/GridAssetClient.cs b/OpenSim/Framework/Communications/Cache/GridAssetClient.cs
index 66fa245..ec163fb 100644
--- a/OpenSim/Framework/Communications/Cache/GridAssetClient.cs
+++ b/OpenSim/Framework/Communications/Cache/GridAssetClient.cs
@@ -35,10 +35,9 @@ using OpenSim.Framework.Console;
35 35
36namespace OpenSim.Framework.Communications.Cache 36namespace OpenSim.Framework.Communications.Cache
37{ 37{
38 public class GridAssetClient : IAssetServer 38 public class GridAssetClient : AssetServerBase
39 { 39 {
40 private string _assetServerUrl; 40 private string _assetServerUrl;
41 private IAssetReceiver _receiver;
42 41
43 public GridAssetClient(string serverUrl) 42 public GridAssetClient(string serverUrl)
44 { 43 {
@@ -47,54 +46,60 @@ namespace OpenSim.Framework.Communications.Cache
47 46
48 #region IAssetServer Members 47 #region IAssetServer Members
49 48
50 public void SetReceiver(IAssetReceiver receiver) 49 protected override void RunRequests()
51 { 50 {
52 _receiver = receiver; 51 while (true)
53 }
54
55 public void FetchAsset(LLUUID assetID, bool isTexture)
56 {
57 Stream s = null;
58 try
59 { 52 {
60 MainLog.Instance.Debug("ASSETCACHE", "Querying for {0}", assetID.ToString()); 53 ARequest req = _assetRequests.Dequeue();
61 54
62 RestClient rc = new RestClient(_assetServerUrl); 55 //MainLog.Instance.Verbose("AssetStorage","Requesting asset: " + req.AssetID);
63 rc.AddResourcePath("assets");
64 rc.AddResourcePath(assetID.ToString());
65 if (isTexture)
66 rc.AddQueryParameter("texture");
67 56
68 rc.RequestMethod = "GET";
69 s = rc.Request();
70 57
71 if (s.Length > 0) 58 Stream s = null;
59 try
72 { 60 {
73 XmlSerializer xs = new XmlSerializer(typeof (AssetBase)); 61 MainLog.Instance.Debug("ASSETCACHE", "Querying for {0}", req.AssetID.ToString());
74 AssetBase asset = (AssetBase) xs.Deserialize(s); 62
75 63 RestClient rc = new RestClient(_assetServerUrl);
76 _receiver.AssetReceived(asset, isTexture); 64 rc.AddResourcePath("assets");
65 rc.AddResourcePath(req.AssetID.ToString());
66 if (req.IsTexture)
67 rc.AddQueryParameter("texture");
68
69 rc.RequestMethod = "GET";
70 s = rc.Request();
71
72 if (s.Length > 0)
73 {
74 XmlSerializer xs = new XmlSerializer(typeof(AssetBase));
75 AssetBase newAsset = (AssetBase)xs.Deserialize(s);
76
77 _receiver.AssetReceived(newAsset, req.IsTexture);
78 }
79 else
80 {
81 MainLog.Instance.Debug("ASSETCACHE", "Asset not found {0}", req.AssetID.ToString());
82 _receiver.AssetNotFound(req.AssetID);
83 }
77 } 84 }
78 else 85 catch (Exception e)
79 { 86 {
80 MainLog.Instance.Debug("ASSETCACHE", "Asset not found {0}", assetID.ToString()); 87 MainLog.Instance.Error("ASSETCACHE", e.Message);
81 _receiver.AssetNotFound(assetID); 88 MainLog.Instance.Debug("ASSETCACHE", "Getting asset {0}", req.AssetID.ToString());
89 MainLog.Instance.Error("ASSETCACHE", e.StackTrace);
82 } 90 }
83 } 91
84 catch (Exception e)
85 {
86 MainLog.Instance.Error("ASSETCACHE", e.Message);
87 MainLog.Instance.Debug("ASSETCACHE", "Getting asset {0}", assetID.ToString());
88 MainLog.Instance.Error("ASSETCACHE", e.StackTrace);
89 } 92 }
90 } 93 }
91 94
92 public void UpdateAsset(AssetBase asset) 95
96
97 public override void UpdateAsset(AssetBase asset)
93 { 98 {
94 throw new Exception("The method or operation is not implemented."); 99 throw new Exception("The method or operation is not implemented.");
95 } 100 }
96 101
97 public void StoreAndCommitAsset(AssetBase asset) 102 protected override void StoreAsset(AssetBase asset)
98 { 103 {
99 try 104 try
100 { 105 {
@@ -113,40 +118,16 @@ namespace OpenSim.Framework.Communications.Cache
113 } 118 }
114 } 119 }
115 120
116 public void Close() 121 protected override void CommitAssets()
117 {
118 throw new Exception("The method or operation is not implemented.");
119 }
120
121 public void LoadAsset(AssetBase info, bool image, string filename)
122 { 122 {
123 throw new Exception("The method or operation is not implemented.");
124 } 123 }
125 124
126 public List<AssetBase> GetDefaultAssets() 125 public override void Close()
127 { 126 {
128 throw new Exception("The method or operation is not implemented."); 127 throw new Exception("The method or operation is not implemented.");
129 } 128 }
130 129
131 public AssetBase CreateImageAsset(string assetIdStr, string name, string filename) 130
132 {
133 throw new Exception("The method or operation is not implemented.");
134 }
135
136 public void ForEachDefaultAsset(Action<AssetBase> action)
137 {
138 throw new Exception("The method or operation is not implemented.");
139 }
140
141 public AssetBase CreateAsset(string assetIdStr, string name, string filename, bool isImage)
142 {
143 throw new Exception("The method or operation is not implemented.");
144 }
145
146 public void ForEachXmlAsset(Action<AssetBase> action)
147 {
148 throw new Exception("The method or operation is not implemented.");
149 }
150 131
151 #endregion 132 #endregion
152 } 133 }