public static BinaryReader CreateBinaryReader(Stream stream, ContentTransferEncodingMethod encoding, Encoding charset)
 {
     if (charset == null)
     return new BinaryReader(CreateDecodingStream(stream, encoding));
       else
     return new BinaryReader(CreateDecodingStream(stream, encoding), charset);
 }
        public static Stream CreateEncodingStream(Stream contentStream, ContentTransferEncodingMethod transferEncoding, MimeFormat format)
        {
            if (contentStream == null)
            throw new ArgumentNullException("contentStream");
              if (format == null)
            throw new ArgumentNullException("format");

              switch (transferEncoding) {
            case ContentTransferEncodingMethod.SevenBit:
            case ContentTransferEncodingMethod.EightBit:
            case ContentTransferEncodingMethod.Binary:
              return contentStream;
            case ContentTransferEncodingMethod.Base64:
              return new Base64ContentEncodingStream(contentStream, format);
            case ContentTransferEncodingMethod.QuotedPrintable:
              return new QuotedPrintableContentEncodingStream(contentStream, format);
            case ContentTransferEncodingMethod.UUEncode:
            case ContentTransferEncodingMethod.GZip64:
            default:
              throw new NotSupportedException(string.Format("unsupported transfer encoding: {0}", transferEncoding));
              }
        }
 public static Stream CreateEncodingStream(Stream contentStream, ContentTransferEncodingMethod transferEncoding)
 {
     return CreateEncodingStream(contentStream, transferEncoding, MimeFormat.Unspecified);
 }
Esempio n. 4
0
 public void WriteContent(byte[] content, int index, int count, ContentTransferEncodingMethod transferEncoding)
 {
     WriteContent(transferEncoding, delegate(BinaryWriter writer) {
     writer.Write(content, index, count);
       });
 }
Esempio n. 5
0
 public void WriteContent(byte[] content, ContentTransferEncodingMethod transferEncoding)
 {
     WriteContent(content, 0, content.Length, transferEncoding);
 }
Esempio n. 6
0
 public void WriteContent(string content, ContentTransferEncodingMethod transferEncoding, Encoding charset)
 {
     WriteContent(transferEncoding, charset, delegate(StreamWriter writer) {
     writer.Write(content);
       });
 }
Esempio n. 7
0
        /// <remarks>do not close supplied writer</remarks>
        public void WriteContent(ContentTransferEncodingMethod transferEncoding, Action<BinaryWriter> write)
        {
            if (write == null)
            throw new ArgumentNullException("write");

              this.Charset = Charsets.ISO8859_1;
              this.TransferEncoding = transferEncoding;

              var writer = Encode.Encoder.CreateContentBinaryWriter(this);

              write(writer);

              writer.Flush();

              if (writer.BaseStream is Encode.ContentEncodingStream)
            (writer.BaseStream as Encode.ContentEncodingStream).FlushFinalBlock();
        }
Esempio n. 8
0
        /// <remarks>do not close supplied writer</remarks>
        public void WriteContent(ContentTransferEncodingMethod transferEncoding, Encoding charset, Action<StreamWriter> write)
        {
            if (charset == null)
            throw new ArgumentNullException("charset");
              if (write == null)
            throw new ArgumentNullException("write");

              this.Charset = charset;
              this.TransferEncoding = transferEncoding;

              var writer = Encode.Encoder.CreateContentTextWriter(this);

              write(writer);

              writer.Flush();

              if (writer.BaseStream is Encode.ContentEncodingStream)
            (writer.BaseStream as Encode.ContentEncodingStream).FlushFinalBlock();
        }
        public static Stream CreateDecodingStream(Stream stream, ContentTransferEncodingMethod encoding)
        {
            if (stream == null)
            throw new ArgumentNullException("stream");

              switch (encoding) {
            case ContentTransferEncodingMethod.SevenBit:
            case ContentTransferEncodingMethod.EightBit:
            case ContentTransferEncodingMethod.Binary:
              return stream;
            case ContentTransferEncodingMethod.Base64:
              return new CryptoStream(stream, new FromBase64Transform(FromBase64TransformMode.IgnoreWhiteSpaces), CryptoStreamMode.Read);
            case ContentTransferEncodingMethod.QuotedPrintable:
              return new CryptoStream(stream, new FromQuotedPrintableTransform(), CryptoStreamMode.Read);
            case ContentTransferEncodingMethod.UUEncode:
            case ContentTransferEncodingMethod.GZip64:
            default:
              throw new NotSupportedException(string.Format("unsupported content transfer encoding: {0}", encoding));
              }
        }
 public static BinaryReader CreateBinaryReader(Stream stream, ContentTransferEncodingMethod encoding)
 {
     return CreateBinaryReader(stream,
                         encoding,
                         null);
 }
 public static string GetEncodingName(ContentTransferEncodingMethod method)
 {
     switch (method) {
     case ContentTransferEncodingMethod.SevenBit: return "7bit";
     case ContentTransferEncodingMethod.EightBit: return "8bit";
     case ContentTransferEncodingMethod.Binary: return "binary";
     case ContentTransferEncodingMethod.Base64: return "base64";
     case ContentTransferEncodingMethod.QuotedPrintable: return "quoted-printable";
     case ContentTransferEncodingMethod.UUEncode: return "x-uuencode";
     case ContentTransferEncodingMethod.GZip64: return "x-gzip64";
     default:
       throw new NotSupportedException(string.Format("unsupported content transfer encoding: {0}",
                                                 method));
       }
 }
        public static StreamReader CreateTextReader(Stream stream, ContentTransferEncodingMethod encoding, Encoding charset)
        {
            if (encoding == ContentTransferEncodingMethod.Binary)
            throw new InvalidOperationException("can't create TextReader from message of binary transfer encoding");

              return new StreamReader(CreateDecodingStream(stream, encoding), charset);
        }
Esempio n. 13
0
 public static MimeHeader CreateContentTransferEncoding(MimeFormat format, ContentTransferEncodingMethod transferEncoding)
 {
     return new MimeHeader(ContentTransferEncoding.HeaderName,
                     format,
                     new[] {new MimeHeaderFragment(ContentTransferEncoding.GetEncodingName(transferEncoding))});
 }
Esempio n. 14
0
 public static MimeHeader CreateContentTransferEncoding(ContentTransferEncodingMethod transferEncoding)
 {
     return CreateContentTransferEncoding(null, transferEncoding);
 }