BinaryWriters.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using System.IO;
  5. namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Utilities.IO
  6. {
  7. public static class BinaryWriters
  8. {
  9. public static void WriteInt16BigEndian(BinaryWriter binaryWriter, short n)
  10. {
  11. short bigEndian = BitConverter.IsLittleEndian ? Shorts.ReverseBytes(n) : n;
  12. binaryWriter.Write(bigEndian);
  13. }
  14. public static void WriteInt16LittleEndian(BinaryWriter binaryWriter, short n)
  15. {
  16. short littleEndian = BitConverter.IsLittleEndian ? n : Shorts.ReverseBytes(n);
  17. binaryWriter.Write(littleEndian);
  18. }
  19. public static void WriteInt32BigEndian(BinaryWriter binaryWriter, int n)
  20. {
  21. int bigEndian = BitConverter.IsLittleEndian ? Integers.ReverseBytes(n) : n;
  22. binaryWriter.Write(bigEndian);
  23. }
  24. public static void WriteInt32LittleEndian(BinaryWriter binaryWriter, int n)
  25. {
  26. int littleEndian = BitConverter.IsLittleEndian ? n : Integers.ReverseBytes(n);
  27. binaryWriter.Write(littleEndian);
  28. }
  29. public static void WriteInt64BigEndian(BinaryWriter binaryWriter, long n)
  30. {
  31. long bigEndian = BitConverter.IsLittleEndian ? Longs.ReverseBytes(n) : n;
  32. binaryWriter.Write(bigEndian);
  33. }
  34. public static void WriteInt64LittleEndian(BinaryWriter binaryWriter, long n)
  35. {
  36. long littleEndian = BitConverter.IsLittleEndian ? n : Longs.ReverseBytes(n);
  37. binaryWriter.Write(littleEndian);
  38. }
  39. [CLSCompliant(false)]
  40. public static void WriteUInt16BigEndian(BinaryWriter binaryWriter, ushort n)
  41. {
  42. ushort bigEndian = BitConverter.IsLittleEndian ? Shorts.ReverseBytes(n) : n;
  43. binaryWriter.Write(bigEndian);
  44. }
  45. [CLSCompliant(false)]
  46. public static void WriteUInt16LittleEndian(BinaryWriter binaryWriter, ushort n)
  47. {
  48. ushort littleEndian = BitConverter.IsLittleEndian ? n : Shorts.ReverseBytes(n);
  49. binaryWriter.Write(littleEndian);
  50. }
  51. [CLSCompliant(false)]
  52. public static void WriteUInt32BigEndian(BinaryWriter binaryWriter, uint n)
  53. {
  54. uint bigEndian = BitConverter.IsLittleEndian ? Integers.ReverseBytes(n) : n;
  55. binaryWriter.Write(bigEndian);
  56. }
  57. [CLSCompliant(false)]
  58. public static void WriteUInt32LittleEndian(BinaryWriter binaryWriter, uint n)
  59. {
  60. uint littleEndian = BitConverter.IsLittleEndian ? n : Integers.ReverseBytes(n);
  61. binaryWriter.Write(littleEndian);
  62. }
  63. [CLSCompliant(false)]
  64. public static void WriteUInt64BigEndian(BinaryWriter binaryWriter, ulong n)
  65. {
  66. ulong bigEndian = BitConverter.IsLittleEndian ? Longs.ReverseBytes(n) : n;
  67. binaryWriter.Write(bigEndian);
  68. }
  69. [CLSCompliant(false)]
  70. public static void WriteUInt64LittleEndian(BinaryWriter binaryWriter, ulong n)
  71. {
  72. ulong littleEndian = BitConverter.IsLittleEndian ? n : Longs.ReverseBytes(n);
  73. binaryWriter.Write(littleEndian);
  74. }
  75. }
  76. }
  77. #pragma warning restore
  78. #endif