/// <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); }
public static LargeUserBinaryObject CreateUserBinaryObject(Array data) { LargeUserBinaryObject binaryObject = null; if (data != null) { binaryObject = new LargeUserBinaryObject(data); } return(binaryObject); }
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); }
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); }
/// <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); }