예제 #1
0
        /// <summary>
        /// Creates a UserBinaryObject from a byte array, which may be a large object.
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public static LargeUserBinaryObject CreateUserBinaryObject(byte[] byteArray)
        {
            LargeUserBinaryObject binaryObject = null;

            if (byteArray != null)
            {
                int noOfChunks = byteArray.Length / LARGE_OBJECT_SIZE;
                noOfChunks += (byteArray.Length - (noOfChunks * LARGE_OBJECT_SIZE)) != 0 ? 1 : 0;

                binaryObject = new LargeUserBinaryObject(noOfChunks);

                int nextChunk     = 0;
                int nextChunkSize = 0;
                for (int i = 1; i <= noOfChunks; i++)
                {
                    nextChunkSize = byteArray.Length - nextChunk;
                    if (nextChunkSize > LARGE_OBJECT_SIZE)
                    {
                        nextChunkSize = LARGE_OBJECT_SIZE;
                    }

                    byte[] binaryChunk = new byte[nextChunkSize];
                    Buffer.BlockCopy(byteArray, nextChunk, binaryChunk, 0, nextChunkSize);
                    nextChunk += nextChunkSize;
                    binaryObject.AddDataChunk(binaryChunk);
                }
            }

            return(binaryObject);
        }
예제 #2
0
        public static LargeUserBinaryObject CreateUserBinaryObject(Array data)
        {
            LargeUserBinaryObject binaryObject = null;

            if (data != null)
            {
                binaryObject = new LargeUserBinaryObject(data);
            }
            return(binaryObject);
        }
예제 #3
0
        public static UserBinaryObject CreateUserBinaryObject(Array data)
        {
            UserBinaryObject binaryObject = null;

            if (data != null)
            {
                if (data.Length > 1)
                {
                    binaryObject = LargeUserBinaryObject.CreateUserBinaryObject(data);
                }
                else
                {
                    binaryObject = SmallUserBinaryObject.CreateUserBinaryObject(data);
                }
            }

            return(binaryObject);
        }
예제 #4
0
        public static UserBinaryObject CreateUserBinaryObject(ICollection data)
        {
            UserBinaryObject binaryObject = null;

            if (data != null)
            {
                if (data.Count > 1)
                {
                    binaryObject = LargeUserBinaryObject.CreateUserBinaryObject(data);
                }
                else
                {
                    binaryObject = SmallUserBinaryObject.CreateUserBinaryObject(data);
                }
            }

            return(binaryObject);
        }
예제 #5
0
        /// <summary>
        /// Creates a UserBinaryObject from a byte array
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public static UserBinaryObject CreateUserBinaryObject(byte[] byteArray)
        {
            UserBinaryObject binaryObject = null;

            if (byteArray != null)
            {
                float noOfChunks = (float)byteArray.Length / (float)LARGE_OBJECT_SIZE;

                if (noOfChunks < 1.0)
                {
                    binaryObject = SmallUserBinaryObject.CreateUserBinaryObject(byteArray);
                }
                else
                {
                    binaryObject = LargeUserBinaryObject.CreateUserBinaryObject(byteArray);
                }
            }

            return(binaryObject);
        }