Example #1
0
        /// <summary>
        /// Attempts to extract a SceneObjectGroup from the given byte array
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        public OpenSim.Region.Framework.Scenes.SceneObjectGroup DeserializeGroupFromInventoryBytes(byte[] bytes)
        {
            CheckHeader(bytes, HeaderTestFlag.CheckValidGroup | HeaderTestFlag.ThrowOnFailedCheck);

            //we should be able to proceed
            Serialization.SceneObjectGroupSnapshot snap = Serialization.SceneObjectGroupSnapshot.FromBytes(bytes, GROUP_HEADER.Length);

            return(snap.ToSceneObjectGroup());
        }
        public byte[] SerializeGroupToBytes(OpenSim.Region.Framework.Scenes.SceneObjectGroup group, SerializationFlags flags)
        {
            Serialization.SceneObjectGroupSnapshot snap = Serialization.SceneObjectGroupSnapshot.FromSceneObjectGroup(group, flags);

            using (MemoryStream ms = new MemoryStream())
            {
                ProtoBuf.Serializer.Serialize <Serialization.SceneObjectGroupSnapshot>(ms, snap);
                return(ms.ToArray());
            }
        }
Example #3
0
        /// <summary>
        /// Serializes a group into a byte array suitable for storage and retrieval from inventory
        /// </summary>
        /// <param name="group"></param>
        /// <returns></returns>
        public byte[] SerializeGroupToInventoryBytes(OpenSim.Region.Framework.Scenes.SceneObjectGroup group, SerializationFlags flags)
        {
            Serialization.SceneObjectGroupSnapshot snap = Serialization.SceneObjectGroupSnapshot.FromSceneObjectGroup(group, flags);

            using (MemoryStream ms = new MemoryStream())
            {
                ms.Write(GROUP_HEADER, 0, GROUP_HEADER.Length);
                snap.SerializeToStream(ms);

                return(ms.ToArray());
            }
        }