Skip to content

Commit c681306

Browse files
author
rstam
committed
CSHARP-694: Added ReadEncoding and WriteEncoding to MongoDefaults and tweaked ToString output.
1 parent 788edb7 commit c681306

File tree

7 files changed

+48
-14
lines changed

7 files changed

+48
-14
lines changed

MongoDB.Driver/Communication/MongoConnection.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
using System.Net.Sockets;
2020
using System.Security.Authentication;
2121
using System.Security.Cryptography.X509Certificates;
22-
using System.Text;
2322
using MongoDB.Bson;
2423
using MongoDB.Bson.IO;
2524
using MongoDB.Bson.Serialization;
@@ -254,7 +253,7 @@ internal CommandResult RunCommand(
254253

255254
var writerSettings = new BsonBinaryWriterSettings
256255
{
257-
Encoding = _serverInstance.Settings.WriteEncoding ?? new UTF8Encoding(false, true),
256+
Encoding = _serverInstance.Settings.WriteEncoding ?? MongoDefaults.WriteEncoding,
258257
GuidRepresentation = GuidRepresentation.Unspecified,
259258
MaxDocumentSize = _serverInstance.MaxDocumentSize
260259
};
@@ -264,7 +263,7 @@ internal CommandResult RunCommand(
264263

265264
var readerSettings = new BsonBinaryReaderSettings
266265
{
267-
Encoding = _serverInstance.Settings.ReadEncoding ?? new UTF8Encoding(false, true),
266+
Encoding = _serverInstance.Settings.ReadEncoding ?? MongoDefaults.ReadEncoding,
268267
GuidRepresentation = GuidRepresentation.Unspecified,
269268
MaxDocumentSize = _serverInstance.MaxDocumentSize
270269
};
@@ -370,7 +369,7 @@ internal WriteConcernResult SendMessage(BsonBuffer buffer, MongoRequestMessage m
370369
{
371370
var readerSettings = new BsonBinaryReaderSettings
372371
{
373-
Encoding = _serverInstance.Settings.ReadEncoding ?? new UTF8Encoding(false, true),
372+
Encoding = _serverInstance.Settings.ReadEncoding ?? MongoDefaults.ReadEncoding,
374373
GuidRepresentation = message.WriterSettings.GuidRepresentation,
375374
MaxDocumentSize = _serverInstance.MaxDocumentSize
376375
};

MongoDB.Driver/MongoClientSettings.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -702,7 +702,7 @@ public override string ToString()
702702
sb.AppendFormat("MinConnectionPoolSize={0};", _minConnectionPoolSize);
703703
if (_readEncoding != null)
704704
{
705-
sb.Append("ReadEncoding=[set]");
705+
sb.Append("ReadEncoding=UTF8Encoding;");
706706
}
707707
sb.AppendFormat("ReadPreference={0};", _readPreference);
708708
sb.AppendFormat("ReplicaSetName={0};", _replicaSetName);
@@ -720,7 +720,7 @@ public override string ToString()
720720
sb.AppendFormat("WriteConcern={0};", _writeConcern);
721721
if (_writeEncoding != null)
722722
{
723-
sb.Append("WriteEncoding=[set]");
723+
sb.Append("WriteEncoding=UTF8Encoding;");
724724
}
725725
return sb.ToString();
726726
}

MongoDB.Driver/MongoCollection.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1647,7 +1647,7 @@ internal BsonBinaryReaderSettings GetReaderSettings(MongoConnection connection)
16471647
{
16481648
return new BsonBinaryReaderSettings
16491649
{
1650-
Encoding = _settings.ReadEncoding ?? new UTF8Encoding(false, true),
1650+
Encoding = _settings.ReadEncoding ?? MongoDefaults.ReadEncoding,
16511651
GuidRepresentation = _settings.GuidRepresentation,
16521652
MaxDocumentSize = connection.ServerInstance.MaxDocumentSize
16531653
};
@@ -1657,7 +1657,7 @@ internal BsonBinaryWriterSettings GetWriterSettings(MongoConnection connection)
16571657
{
16581658
return new BsonBinaryWriterSettings
16591659
{
1660-
Encoding = _settings.WriteEncoding ?? new UTF8Encoding(false, true),
1660+
Encoding = _settings.WriteEncoding ?? MongoDefaults.WriteEncoding,
16611661
GuidRepresentation = _settings.GuidRepresentation,
16621662
MaxDocumentSize = connection.ServerInstance.MaxDocumentSize
16631663
};

MongoDB.Driver/MongoCollectionSettings.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -405,13 +405,13 @@ public override string ToString()
405405
parts.Add(string.Format("GuidRepresentation={0}", _guidRepresentation));
406406
if (_readEncoding.HasBeenSet)
407407
{
408-
parts.Add("ReadEncoding=[set]");
408+
parts.Add(string.Format("ReadEncoding={0}", (_readEncoding.Value == null) ? "null" : "UTF8Encoding"));
409409
}
410410
parts.Add(string.Format("ReadPreference={0}", _readPreference));
411411
parts.Add(string.Format("WriteConcern={0}", _writeConcern));
412412
if (_writeEncoding.HasBeenSet)
413413
{
414-
parts.Add("WriteEncoding=[set]");
414+
parts.Add(string.Format("WriteEncoding={0}", (_writeEncoding.Value == null) ? "null" : "UTF8Encoding"));
415415
}
416416
return string.Join(";", parts.ToArray());
417417
}

MongoDB.Driver/MongoDatabaseSettings.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,13 +320,13 @@ public override string ToString()
320320
parts.Add(string.Format("GuidRepresentation={0}", _guidRepresentation.Value));
321321
if (_readEncoding.HasBeenSet)
322322
{
323-
parts.Add("ReadEncoding=[set]");
323+
parts.Add(string.Format("ReadEncoding={0}", (_readEncoding.Value == null) ? "null" : "UTF8Encoding"));
324324
}
325325
parts.Add(string.Format("ReadPreference={0}", _readPreference.Value));
326326
parts.Add(string.Format("WriteConcern={0}", _writeConcern.Value));
327327
if (_writeEncoding.HasBeenSet)
328328
{
329-
parts.Add("WriteEncoding=[set]");
329+
parts.Add(string.Format("WriteEncoding={0}", (_writeEncoding.Value == null) ? "null" : "UTF8Encoding"));
330330
}
331331
return string.Join(";", parts.ToArray());
332332
}

MongoDB.Driver/MongoDefaults.cs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
*/
1515

1616
using System;
17+
using System.Text;
1718
using MongoDB.Bson;
1819

1920
namespace MongoDB.Driver
@@ -32,6 +33,7 @@ public static class MongoDefaults
3233
private static int __maxConnectionPoolSize = 100;
3334
private static int __maxMessageLength = 16000000; // 16MB (not 16 MiB!)
3435
private static int __minConnectionPoolSize = 0;
36+
private static UTF8Encoding __readEncoding = new UTF8Encoding(false, true);
3537
#pragma warning disable 612, 618
3638
private static SafeMode __safeMode = SafeMode.False;
3739
#pragma warning restore
@@ -42,6 +44,7 @@ public static class MongoDefaults
4244
private static double __waitQueueMultiple = 5.0; // default wait queue multiple is 5.0
4345
private static int __waitQueueSize = 0; // use multiple by default
4446
private static TimeSpan __waitQueueTimeout = TimeSpan.FromMinutes(2); // default wait queue timeout is 2 minutes
47+
private static UTF8Encoding __writeEncoding = new UTF8Encoding(false, true);
4548

4649
// public static properties
4750
/// <summary>
@@ -152,6 +155,22 @@ public static int MinConnectionPoolSize
152155
set { __minConnectionPoolSize = value; }
153156
}
154157

158+
/// <summary>
159+
/// Gets or sets the Read Encoding.
160+
/// </summary>
161+
public static UTF8Encoding ReadEncoding
162+
{
163+
get { return __readEncoding; }
164+
set
165+
{
166+
if (value == null)
167+
{
168+
throw new ArgumentNullException("value");
169+
}
170+
__readEncoding = value;
171+
}
172+
}
173+
155174
/// <summary>
156175
/// Gets or sets the safe mode.
157176
/// </summary>
@@ -233,5 +252,21 @@ public static TimeSpan WaitQueueTimeout
233252
get { return __waitQueueTimeout; }
234253
set { __waitQueueTimeout = value; }
235254
}
255+
256+
/// <summary>
257+
/// Gets or sets the Write Encoding.
258+
/// </summary>
259+
public static UTF8Encoding WriteEncoding
260+
{
261+
get { return __writeEncoding; }
262+
set
263+
{
264+
if (value == null)
265+
{
266+
throw new ArgumentNullException("value");
267+
}
268+
__writeEncoding = value;
269+
}
270+
}
236271
}
237272
}

MongoDB.Driver/MongoServerSettings.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -787,7 +787,7 @@ public override string ToString()
787787
parts.Add(string.Format("MinConnectionPoolSize={0}", _minConnectionPoolSize));
788788
if (_readEncoding != null)
789789
{
790-
parts.Add("ReadEncoding=[set]");
790+
parts.Add("ReadEncoding=UTF8Encoding");
791791
}
792792
parts.Add(string.Format("ReadPreference={0}", _readPreference));
793793
parts.Add(string.Format("ReplicaSetName={0}", _replicaSetName));
@@ -805,7 +805,7 @@ public override string ToString()
805805
parts.Add(string.Format("WriteConcern={0}", _writeConcern));
806806
if (_writeEncoding != null)
807807
{
808-
parts.Add("WriteEncoding=[set]");
808+
parts.Add("WriteEncoding=UTF8Encoding");
809809
}
810810
return string.Join(",", parts.ToArray());
811811
}

0 commit comments

Comments
 (0)