public CompressedXlob(byte[] data, IXmlCompressor compression)
		{
			if (data == null) throw new ArgumentNullException("data");
			if (compression == null) throw new ArgumentNullException("compression");
			this.data = data;
			this.compression = compression;
		}
Example #2
0
 public virtual void SetParameterValues(IDictionary<string, string> parameters)
 {
     int length;
     IXmlCompressor c;
     Parameters.GetXlobSettings(parameters, out c, out length);
     if (c != null) _compression = c;
     PayloadLength = length;
 }
Example #3
0
 public ExternalXlob(IExternalBlobConnection connection, byte[] identifier, IXmlCompressor compression)
 {
     if (connection == null) throw new ArgumentNullException("connection");
     if (identifier == null) throw new ArgumentNullException("identifier");
     if (compression == null) throw new ArgumentNullException("compression");
     _connection = connection;
     _identifier = identifier;
     _compression = compression;
 }
        public virtual void SetParameterValues(IDictionary <string, string> parameters)
        {
            int            length;
            IXmlCompressor c;

            Parameters.GetXlobSettings(parameters, out c, out length);
            if (c != null)
            {
                _compression = c;
            }
            PayloadLength = length;
        }
Example #5
0
 public ExternalXlob(IExternalBlobConnection connection, byte[] identifier, IXmlCompressor compression)
 {
     if (connection == null)
     {
         throw new ArgumentNullException("connection");
     }
     if (identifier == null)
     {
         throw new ArgumentNullException("identifier");
     }
     if (compression == null)
     {
         throw new ArgumentNullException("compression");
     }
     _connection  = connection;
     _identifier  = identifier;
     _compression = compression;
 }
Example #6
0
		internal static void GetXlobSettings(IDictionary<string, string> parameters, out IXmlCompressor compression)
		{
			string compr = parameters == null ? null : parameters["compression"];
			if (string.IsNullOrEmpty(compr))
				compression = null;
			else if (compr.Equals("gzip", StringComparison.OrdinalIgnoreCase))
				compression = new XmlTextCompressor(GZipCompressor.Instance);
			else
			{
				System.Type compressor = System.Type.GetType(compr);
				if (typeof(IXmlCompressor).IsAssignableFrom(compressor))
					compression = (IXmlCompressor)System.Activator.CreateInstance(compressor);
				else if (typeof(IStreamCompressor).IsAssignableFrom(compressor))
					compression = new XmlTextCompressor((IStreamCompressor)System.Activator.CreateInstance(compressor));
				else
					throw new Exception("Unknown compression type.");
			}
			IParameterizedType parameterized = compression as IParameterizedType;
			if (parameterized != null) parameterized.SetParameterValues(parameters);
		}
Example #7
0
        public static void GetXlobSettings(IDictionary <string, string> parameters, out IXmlCompressor compression, out int length)
        {
            length = ParseLength(parameters);

            string compr = null;

            if (parameters != null)
            {
                parameters.TryGetValue("compression", out compr);
            }
            if (string.IsNullOrEmpty(compr))
            {
                compression = null;
            }
            else if (compr.Equals("gzip", StringComparison.OrdinalIgnoreCase))
            {
                compression = new XmlTextCompressor(GZipCompressor.Instance);
            }
            else
            {
                System.Type compressor = System.Type.GetType(compr);
                if (typeof(IXmlCompressor).IsAssignableFrom(compressor))
                {
                    compression = (IXmlCompressor)Activator.CreateInstance(compressor);
                }
                else if (typeof(IStreamCompressor).IsAssignableFrom(compressor))
                {
                    compression = new XmlTextCompressor((IStreamCompressor)Activator.CreateInstance(compressor));
                }
                else
                {
                    throw new Exception("Unknown compression type.");
                }
            }
            var parameterized = compression as IParameterizedType;

            if (parameterized != null)
            {
                parameterized.SetParameterValues(parameters);
            }
        }
Example #8
0
 public ExternalXlobType()
 {
     _compression = new XmlTextCompressor();
 }
 public ExternalXlobType()
 {
     _compression = new XmlTextCompressor();
 }
		public virtual void SetParameterValues(IDictionary<string, string> parameters)
		{
			IXmlCompressor c;
			Parameters.GetXlobSettings(parameters, out c);
			if (c != null) this.compression = c;
		}