corrade-vassal – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 vero 1 /*
2 * Copyright (c) 2006-2014, openmetaverse.org
3 * All rights reserved.
4 *
5 * - Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 *
8 * - Redistributions of source code must retain the above copyright notice, this
9 * list of conditions and the following disclaimer.
10 * - Neither the name of the openmetaverse.org nor the names
11 * of its contributors may be used to endorse or promote products derived from
12 * this software without specific prior written permission.
13 *
14 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
18 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 * POSSIBILITY OF SUCH DAMAGE.
25 */
26  
27 using System;
28 using OpenMetaverse;
29  
30 namespace OpenMetaverse.Assets
31 {
32 /// <summary>
33 /// Base class for all Asset types
34 /// </summary>
35 public abstract class Asset
36 {
37 /// <summary>A byte array containing the raw asset data</summary>
38 public byte[] AssetData;
39 /// <summary>True if the asset it only stored on the server temporarily</summary>
40 public bool Temporary;
41 /// <summary>A unique ID</summary>
42 private UUID _AssetID;
43 /// <summary>The assets unique ID</summary>
44 public UUID AssetID
45 {
46 get { return _AssetID; }
47 internal set { _AssetID = value; }
48 }
49  
50 /// <summary>
51 /// The "type" of asset, Notecard, Animation, etc
52 /// </summary>
53 public abstract AssetType AssetType
54 {
55 get;
56 }
57  
58 /// <summary>
59 /// Construct a new Asset object
60 /// </summary>
61 public Asset() { }
62  
63 /// <summary>
64 /// Construct a new Asset object
65 /// </summary>
66 /// <param name="assetID">A unique <see cref="UUID"/> specific to this asset</param>
67 /// <param name="assetData">A byte array containing the raw asset data</param>
68 public Asset(UUID assetID, byte[] assetData)
69 {
70 _AssetID = assetID;
71 AssetData = assetData;
72 }
73  
74 /// <summary>
75 /// Regenerates the <code>AssetData</code> byte array from the properties
76 /// of the derived class.
77 /// </summary>
78 public abstract void Encode();
79  
80 /// <summary>
81 /// Decodes the AssetData, placing it in appropriate properties of the derived
82 /// class.
83 /// </summary>
84 /// <returns>True if the asset decoding succeeded, otherwise false</returns>
85 public abstract bool Decode();
86 }
87 }