本文整理汇总了C#中ReadPreference类的典型用法代码示例。如果您正苦于以下问题:C# ReadPreference类的具体用法?C# ReadPreference怎么用?C# ReadPreference使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ReadPreference类属于命名空间,在下文中一共展示了ReadPreference类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: Equals_should_return_false_when_any_field_is_not_equal
public void Equals_should_return_false_when_any_field_is_not_equal(
[Values("mode", "tagSets")]
string notEqualFieldName)
{
var mode = ReadPreferenceMode.Secondary;
var tagSets = new[] { new TagSet(new[] { new Tag("name", "value1") }) };
var subject1 = new ReadPreference(mode, tagSets);
switch (notEqualFieldName)
{
case "mode": mode = ReadPreferenceMode.SecondaryPreferred; break;
case "tagSets": tagSets = new[] { new TagSet(new[] { new Tag("name", "value2") }) }; break;
default: throw new ArgumentException("notEqualFieldName");
}
var subject2 = new ReadPreference(mode, tagSets);
var result1 = subject1.Equals(subject2);
var result2 = subject1.Equals((object)subject2);
var hashCode1 = subject1.GetHashCode();
var hashCode2 = subject2.GetHashCode();
result1.Should().BeFalse();
result2.Should().BeFalse();
hashCode1.Should().NotBe(hashCode2);
}
开发者ID:narutoswj,项目名称:mongo-csharp-driver,代码行数:25,代码来源:ReadPreferenceTests.cs
示例2: CreateReadPreferenceDocument
public static BsonDocument CreateReadPreferenceDocument(ServerType serverType, ReadPreference readPreference)
{
if (serverType != ServerType.ShardRouter || readPreference == null)
{
return null;
}
BsonArray tagSets = null;
if (readPreference.TagSets != null && readPreference.TagSets.Count > 0)
{
tagSets = new BsonArray(readPreference.TagSets.Select(ts => new BsonDocument(ts.Tags.Select(t => new BsonElement(t.Name, t.Value)))));
}
// simple ReadPreferences of Primary and SecondaryPreferred are encoded in the slaveOk bit
if (readPreference.ReadPreferenceMode == ReadPreferenceMode.Primary || readPreference.ReadPreferenceMode == ReadPreferenceMode.SecondaryPreferred)
{
if (tagSets == null && !readPreference.MaxStaleness.HasValue)
{
return null;
}
}
var modeString = readPreference.ReadPreferenceMode.ToString();
modeString = Char.ToLowerInvariant(modeString[0]) + modeString.Substring(1);
return new BsonDocument
{
{ "mode", modeString },
{ "tags", tagSets, tagSets != null },
{ "maxStalenessSeconds", () => (int)readPreference.MaxStaleness.Value.TotalSeconds, readPreference.MaxStaleness.HasValue }
};
}
开发者ID:mfidemraizer,项目名称:mongo-csharp-driver,代码行数:32,代码来源:QueryHelper.cs
示例3: MongoDatabaseSettings
/// <summary>
/// Creates a new instance of MongoDatabaseSettings.
/// </summary>
/// <param name="databaseName">The name of the database.</param>
/// <param name="credentials">The credentials to access the database.</param>
/// <param name="guidRepresentation">The representation for Guids.</param>
/// <param name="readPreference">The read preference.</param>
/// <param name="writeConcern">The write concern to use.</param>
public MongoDatabaseSettings(
string databaseName,
MongoCredentials credentials,
GuidRepresentation guidRepresentation,
ReadPreference readPreference,
WriteConcern writeConcern)
{
if (databaseName == null)
{
throw new ArgumentNullException("databaseName");
}
if (databaseName == "admin" && credentials != null && !credentials.Admin)
{
throw new ArgumentOutOfRangeException("credentials", "Credentials for the admin database must have the admin flag set to true.");
}
if (readPreference == null)
{
throw new ArgumentNullException("readPreference");
}
if (writeConcern == null)
{
throw new ArgumentNullException("writeConcern");
}
_databaseName = databaseName;
_credentials = credentials;
_guidRepresentation = guidRepresentation;
_readPreference = readPreference;
_writeConcern = writeConcern;
}
开发者ID:staywellandy,项目名称:mongo-csharp-driver,代码行数:38,代码来源:MongoDatabaseSettings.cs
示例4: TestCopyConstructor
public void TestCopyConstructor()
{
var other = new ReadPreference(ReadPreferenceMode.Nearest);
var subject = new ReadPreference(other);
Assert.AreEqual(subject, other);
}
开发者ID:GGsus,项目名称:mongo-csharp-driver,代码行数:7,代码来源:ReadPreferenceTests.cs
示例5: GridFSBucketOptions
/// <summary>
/// Initializes a new instance of the <see cref="GridFSBucketOptions"/> class.
/// </summary>
/// <param name="other">The other <see cref="GridFSBucketOptions.Immutable"/> from which to copy the values.</param>
public GridFSBucketOptions(GridFSBucketOptions.Immutable other)
{
_bucketName = other.BucketName;
_chunkSizeBytes = other.ChunkSizeBytes;
_readPreference = other.ReadPreference;
_writeConcern = other.WriteConcern;
}
开发者ID:rtfmpliz,项目名称:mongo-csharp-driver,代码行数:11,代码来源:GridFSBucketOptions.cs
示例6: MongoServerSettings
// constructors
/// <summary>
/// Creates a new instance of MongoServerSettings. Usually you would use a connection string instead.
/// </summary>
public MongoServerSettings()
{
_connectionMode = ConnectionMode.Automatic;
_connectTimeout = MongoDefaults.ConnectTimeout;
_credentialsStore = new MongoCredentialsStore();
_defaultCredentials = null;
_guidRepresentation = MongoDefaults.GuidRepresentation;
_ipv6 = false;
_maxConnectionIdleTime = MongoDefaults.MaxConnectionIdleTime;
_maxConnectionLifeTime = MongoDefaults.MaxConnectionLifeTime;
_maxConnectionPoolSize = MongoDefaults.MaxConnectionPoolSize;
_minConnectionPoolSize = MongoDefaults.MinConnectionPoolSize;
_readPreference = ReadPreference.Primary;
_replicaSetName = null;
_secondaryAcceptableLatency = MongoDefaults.SecondaryAcceptableLatency;
_servers = new List<MongoServerAddress> { new MongoServerAddress("localhost") };
_socketTimeout = MongoDefaults.SocketTimeout;
_useSsl = false;
_verifySslCertificate = true;
_waitQueueSize = MongoDefaults.ComputedWaitQueueSize;
_waitQueueTimeout = MongoDefaults.WaitQueueTimeout;
#pragma warning disable 612, 618
_writeConcern = MongoDefaults.SafeMode.WriteConcern;
#pragma warning restore
}
开发者ID:tkellogg,项目名称:mongo-csharp-driver,代码行数:29,代码来源:MongoServerSettings.cs
示例7: constructor_should_initialize_instance_when_tagSets_is_null
public void constructor_should_initialize_instance_when_tagSets_is_null()
{
var result = new ReadPreference(ReadPreferenceMode.Secondary, null);
result.ReadPreferenceMode.Should().Be(ReadPreferenceMode.Secondary);
result.TagSets.Should().BeEmpty();
}
开发者ID:narutoswj,项目名称:mongo-csharp-driver,代码行数:7,代码来源:ReadPreferenceTests.cs
示例8: CreateReadPreferenceDocument
public static BsonDocument CreateReadPreferenceDocument(ServerType serverType, ReadPreference readPreference)
{
if (readPreference == null)
{
return null;
}
if (serverType != ServerType.ShardRouter)
{
return null;
}
BsonArray tagSets = null;
if (readPreference.TagSets != null && readPreference.TagSets.Any())
{
tagSets = new BsonArray(readPreference.TagSets.Select(ts => new BsonDocument(ts.Tags.Select(t => new BsonElement(t.Name, t.Value)))));
}
else if (readPreference.ReadPreferenceMode == ReadPreferenceMode.Primary || readPreference.ReadPreferenceMode == ReadPreferenceMode.SecondaryPreferred)
{
return null;
}
var readPreferenceString = readPreference.ReadPreferenceMode.ToString();
readPreferenceString = Char.ToLowerInvariant(readPreferenceString[0]) + readPreferenceString.Substring(1);
return new BsonDocument
{
{ "mode", readPreferenceString },
{ "tags", tagSets, tagSets != null }
};
}
开发者ID:narutoswj,项目名称:mongo-csharp-driver,代码行数:30,代码来源:QueryHelper.cs
示例9: MongoDatabaseSettings
/// <summary>
/// Creates a new instance of MongoDatabaseSettings.
/// </summary>
/// <param name="databaseName">The name of the database.</param>
/// <param name="credentials">The credentials to access the database.</param>
/// <param name="guidRepresentation">The representation for Guids.</param>
/// <param name="safeMode">The safe mode to use.</param>
/// <param name="slaveOk">Whether queries should be sent to secondary servers.</param>
public MongoDatabaseSettings(string databaseName, MongoCredentials credentials, GuidRepresentation guidRepresentation, SafeMode safeMode, ReadPreference readPreference)
{
this.databaseName = databaseName;
this.credentials = credentials;
this.guidRepresentation = guidRepresentation;
this.safeMode = safeMode;
this.readPreference = readPreference;
}
开发者ID:kamaradclimber,项目名称:mongo-csharp-driver,代码行数:16,代码来源:MongoDatabaseSettings.cs
示例10: GridFSBucketOptions
/// <summary>
/// Initializes a new instance of the <see cref="GridFSBucketOptions"/> class.
/// </summary>
/// <param name="other">The other <see cref="ImmutableGridFSBucketOptions"/> from which to copy the values.</param>
public GridFSBucketOptions(ImmutableGridFSBucketOptions other)
{
Ensure.IsNotNull(other, nameof(other));
_bucketName = other.BucketName;
_chunkSizeBytes = other.ChunkSizeBytes;
_readConcern = other.ReadConcern;
_readPreference = other.ReadPreference;
_writeConcern = other.WriteConcern;
}
开发者ID:mfidemraizer,项目名称:mongo-csharp-driver,代码行数:13,代码来源:GridFSBucketOptions.cs
示例11: constructor_with_mode_should_initialize_instance
public void constructor_with_mode_should_initialize_instance()
{
var mode = ReadPreferenceMode.Secondary; // use a value that is not the default
var result = new ReadPreference(mode: mode);
result.ReadPreferenceMode.Should().Be(mode);
result.TagSets.Should().BeEmpty();
}
开发者ID:narutoswj,项目名称:mongo-csharp-driver,代码行数:9,代码来源:ReadPreferenceTests.cs
示例12: GetMongoClientSettings
/// <summary>
/// Returns a client settings object representing a connection
/// to the current MongoDB replica set. You should cache these connection
/// settings and re-obtain them only if there is a connection exception.
/// </summary>
/// <param name="readPreference">The required read preference.</param>
/// <param name="mongoWorkerRoleName">Name of the mongo worker role.</param>
/// <param name="replicaSetName">Name of the mongo replica set.</param>
/// <returns>
/// A MongoClientSettings object representing a replica set connection.
/// </returns>
/// <example>
/// <code>
/// var client = ConnectionUtilities.GetMongoClientSettings(ReadPreference.SecondaryPreferred);
/// var server = client.GetServer();
/// </code>
/// </example>
public static MongoClientSettings GetMongoClientSettings(ReadPreference readPreference, string mongoWorkerRoleName, string replicaSetName)
{
return new MongoClientSettings
{
ReadPreference = readPreference,
ReplicaSetName = replicaSetName,
Servers = GetServerAddresses(mongoWorkerRoleName, replicaSetName)
};
}
开发者ID:cgavieta,项目名称:WORKPAC2016-poc,代码行数:26,代码来源:ConnectionUtilities.cs
示例13: constructor_with_tagSets_should_initialize_instance
public void constructor_with_tagSets_should_initialize_instance()
{
var mode = ReadPreferenceMode.Secondary; // can't use tagSets with mode Primary
var tagSets = new[] { new TagSet(new[] { new Tag("name", "value") }) };
var result = new ReadPreference(mode: mode, tagSets: tagSets);
result.ReadPreferenceMode.Should().Be(mode);
result.TagSets.Should().NotBeSameAs(tagSets);
result.TagSets.Should().Equal(tagSets);
}
开发者ID:narutoswj,项目名称:mongo-csharp-driver,代码行数:11,代码来源:ReadPreferenceTests.cs
示例14: TestEquals
public void TestEquals()
{
ReadPreference primary = ReadPreference.Primary;
ReadPreference secondary = ReadPreference.Secondary;
ReadPreference voidTag = new ReadPreference(new HashSet<string>());
ReadPreference someTags = new ReadPreference(new HashSet<string>());
someTags.Tags.Add("new york");
someTags.Tags.Add("rack 1");
ReadPreference someTagsBis = new ReadPreference(new HashSet<string>());
someTagsBis.Tags.Add("rack 1");
someTagsBis.Tags.Add("new york");
ReadPreference someTagsAgain = new ReadPreference(new HashSet<string>());
someTagsAgain.Tags.Add("palo alto");
someTagsAgain.Tags.Add("rack 1");
//Equals to self
Assert.AreEqual(true, primary.Equals(primary));
Assert.AreEqual(true, secondary.Equals(secondary));
Assert.AreEqual(true, voidTag.Equals(voidTag));
Assert.AreEqual(true, someTags.Equals(someTags));
Assert.AreEqual(true, someTagsAgain.Equals(someTagsAgain));
//Basic stuff are not equal
Assert.AreEqual(false, primary.Equals(secondary));
Assert.AreEqual(false, secondary.Equals(primary));
Assert.AreEqual(false, primary.Equals(voidTag));
Assert.AreEqual(false, voidTag.Equals(primary));
Assert.AreEqual(false, primary.Equals(secondary));
Assert.AreEqual(false, secondary.Equals(primary));
Assert.AreEqual(false, primary.Equals(someTags));
Assert.AreEqual(false, someTags.Equals(primary));
Assert.AreEqual(false, primary.Equals(someTagsAgain));
Assert.AreEqual(false, someTagsAgain.Equals(primary));
Assert.AreEqual(false, someTags.Equals(secondary));
Assert.AreEqual(false, secondary.Equals(someTags));
Assert.AreEqual(true, someTags.Equals(someTagsBis));
Assert.AreEqual(true, someTagsBis.Equals(someTags));
//two object equals constructed separately are equals
Assert.AreEqual(true, someTags.Equals(someTagsBis));
Assert.AreEqual(true, someTagsBis.Equals(someTags));
//default tagged is not tagged but defaulted to secondary ok
Assert.AreEqual(true, voidTag.Equals(secondary));
Assert.AreEqual(true, secondary.Equals(voidTag));
Assert.AreEqual(false, someTagsAgain.Equals(secondary));
Assert.AreEqual(false, secondary.Equals(someTagsAgain));
}
开发者ID:kamaradclimber,项目名称:mongo-csharp-driver,代码行数:53,代码来源:ReadPreferenceTests.cs
示例15: ReadPreferenceServerSelector
// constructors
/// <summary>
/// Initializes a new instance of the <see cref="ReadPreferenceServerSelector"/> class.
/// </summary>
/// <param name="readPreference">The read preference.</param>
public ReadPreferenceServerSelector(ReadPreference readPreference)
{
_readPreference = Ensure.IsNotNull(readPreference, nameof(readPreference));
if (readPreference.MaxStaleness == Timeout.InfiniteTimeSpan)
{
_maxStaleness = null;
}
else
{
_maxStaleness = readPreference.MaxStaleness;
}
}
开发者ID:mfidemraizer,项目名称:mongo-csharp-driver,代码行数:17,代码来源:ReadPreferenceServerSelector.cs
示例16: ChooseServerInstance
/// <summary>
/// Chooses the server instance based on the read preference.
/// </summary>
/// <param name="readPreference">The read preference.</param>
/// <returns>A MongoServerInstance.</returns>
public MongoServerInstance ChooseServerInstance(ReadPreference readPreference)
{
lock (_lock)
{
if (_instances.Count == 0)
{
return null;
}
return readPreference.ChooseServerInstance(_instances);
}
}
开发者ID:kayone,项目名称:mongo-csharp-driver,代码行数:17,代码来源:ConnectedInstanceCollection.cs
示例17: WrapQuery
protected IMongoQuery WrapQuery(IMongoQuery query, BsonDocument options, ReadPreference readPreference, bool forShardRouter)
{
BsonDocument formattedReadPreference = null;
if (forShardRouter && readPreference != null && readPreference.ReadPreferenceMode != ReadPreferenceMode.Primary)
{
BsonArray tagSetsArray = null;
if (readPreference.TagSets != null)
{
tagSetsArray = new BsonArray();
foreach (var tagSet in readPreference.TagSets)
{
var tagSetDocument = new BsonDocument();
foreach (var tag in tagSet)
{
tagSetDocument.Add(tag.Name, tag.Value);
}
tagSetsArray.Add(tagSetDocument);
}
}
if (tagSetsArray != null || readPreference.ReadPreferenceMode != ReadPreferenceMode.SecondaryPreferred)
{
formattedReadPreference = new BsonDocument
{
{ "mode", MongoUtils.ToCamelCase(readPreference.ReadPreferenceMode.ToString()) },
{ "tags", tagSetsArray, tagSetsArray != null } // optional
};
}
}
if (options == null && formattedReadPreference == null)
{
return query;
}
else
{
var queryDocument = (query == null) ? (BsonValue)new BsonDocument() : BsonDocumentWrapper.Create(query);
var wrappedQuery = new QueryDocument
{
{ "$query", queryDocument },
{ "$readPreference", formattedReadPreference, formattedReadPreference != null }, // only if sending query to a mongos
};
if (options != null)
{
wrappedQuery.Merge(options);
}
return wrappedQuery;
}
}
开发者ID:GGsus,项目名称:mongo-csharp-driver,代码行数:49,代码来源:ReadOperationBase.cs
示例18: Equals_should_be_correct
public void Equals_should_be_correct()
{
var a = ReadPreference.Primary;
var b = ReadPreference.Primary;
var c = ReadPreference.Secondary;
var d = new ReadPreference(ReadPreferenceMode.Secondary, new[] { new TagSet(new[] { new Tag("dc", "ny"), new Tag("dc", "ca") }) });
var e = new ReadPreference(ReadPreferenceMode.Secondary, new[] { new TagSet(new[] { new Tag("dc", "ny"), new Tag("dc", "ca") }) });
var f = new ReadPreference(ReadPreferenceMode.Secondary, new[] { new TagSet(new[] { new Tag("dc", "ny"), new Tag("dc", "ac") }) });
var g = new ReadPreference(ReadPreferenceMode.Primary, new[] { new TagSet(new[] { new Tag("dc", "ny"), new Tag("dc", "ac") }) });
a.Should().Be(b);
b.Should().NotBe(c);
c.Should().NotBe(d);
d.Should().Be(e);
e.Should().NotBe(f);
f.Should().NotBe(g);
}
开发者ID:bollinim,项目名称:mongo-csharp-driver,代码行数:17,代码来源:ReadPreferenceTests.cs
示例19: MongoServerSettings
// constructors
/// <summary>
/// Creates a new instance of MongoServerSettings. Usually you would use a connection string instead.
/// </summary>
public MongoServerSettings()
{
connectionMode = ConnectionMode.Direct;
connectTimeout = MongoDefaults.ConnectTimeout;
defaultCredentials = null;
guidRepresentation = MongoDefaults.GuidRepresentation;
ipv6 = false;
maxConnectionIdleTime = MongoDefaults.MaxConnectionIdleTime;
maxConnectionLifeTime = MongoDefaults.MaxConnectionLifeTime;
maxConnectionPoolSize = MongoDefaults.MaxConnectionPoolSize;
minConnectionPoolSize = MongoDefaults.MinConnectionPoolSize;
replicaSetName = null;
safeMode = MongoDefaults.SafeMode;
servers = null;
//slaveOk = false;
readPreference = ReadPreference.Primary;
socketTimeout = MongoDefaults.SocketTimeout;
waitQueueSize = MongoDefaults.ComputedWaitQueueSize;
waitQueueTimeout = MongoDefaults.WaitQueueTimeout;
}
开发者ID:kamaradclimber,项目名称:mongo-csharp-driver,代码行数:24,代码来源:MongoServerSettings.cs
示例20: ChooseServerInstance
// protected methods
protected override MongoServerInstance ChooseServerInstance(ConnectedInstanceCollection connectedInstances, ReadPreference readPreference)
{
var secondaryAcceptableLatency = Settings.SecondaryAcceptableLatency;
switch (readPreference.ReadPreferenceMode)
{
case ReadPreferenceMode.Primary:
return connectedInstances.GetPrimary();
case ReadPreferenceMode.PrimaryPreferred:
var primary = connectedInstances.GetPrimary();
if (primary != null)
{
return primary;
}
else
{
return GetMatchingInstance(connectedInstances.GetSecondaries(), readPreference, secondaryAcceptableLatency);
}
case ReadPreferenceMode.Secondary:
return GetMatchingInstance(connectedInstances.GetSecondaries(), readPreference, secondaryAcceptableLatency);
case ReadPreferenceMode.SecondaryPreferred:
var secondary = GetMatchingInstance(connectedInstances.GetSecondaries(), readPreference, secondaryAcceptableLatency);
if (secondary != null)
{
return secondary;
}
else
{
return connectedInstances.GetPrimary();
}
case ReadPreferenceMode.Nearest:
return GetMatchingInstance(connectedInstances.GetPrimaryAndSecondaries(), readPreference, secondaryAcceptableLatency);
default:
throw new MongoInternalException("Invalid ReadPreferenceMode.");
}
}
开发者ID:einaregilsson,项目名称:mongo-csharp-driver,代码行数:42,代码来源:ReplicaSetMongoServerProxy.cs
注:本文中的ReadPreference类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论