Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Update to use http extension methods on SS.Text

  • Loading branch information...
commit 770d69a49d7ad7c9ca53ec423e769e9bfb90d8e4 1 parent 67db46f
@mythz mythz authored
Showing with 847 additions and 983 deletions.
  1. BIN  NuGet/ServiceStack.Razor/lib/net40/ServiceStack.Razor.dll
  2. BIN  NuGet/ServiceStack.Razor/lib/net40/ServiceStack.Razor.pdb
  3. BIN  lib/ServiceStack.Common.dll
  4. BIN  lib/ServiceStack.Interfaces.dll
  5. +591 −591 lib/ServiceStack.Redis.XML
  6. BIN  lib/ServiceStack.Redis.dll
  7. +221 −216 lib/ServiceStack.Text.XML
  8. BIN  lib/ServiceStack.Text.dll
  9. +0 −145 src/ServiceStack.Common/ServiceClient.Web/WebRequestExtensions.cs
  10. +1 −1  src/ServiceStack.ServiceInterface/Auth/FacebookAuthProvider.cs
  11. +2 −2 src/ServiceStack.ServiceInterface/Auth/IAuthHttpGateway.cs
  12. +2 −2 tests/RazorRockstars.Console.Files/RazorRockstars_FilesTests.cs
  13. +3 −3 tests/RazorRockstars.Web/RazorRockstars_WebTests.cs
  14. +2 −1  tests/ServiceStack.WebHost.Endpoints.Tests/AppHostConfigTests.cs
  15. +5 −5 tests/ServiceStack.WebHost.Endpoints.Tests/AppHostHttpListenerLongRunningBaseTests.cs
  16. +4 −4 tests/ServiceStack.WebHost.Endpoints.Tests/AppHostListenerBaseTests.cs
  17. +2 −1  tests/ServiceStack.WebHost.Endpoints.Tests/CachedServiceTests.cs
  18. +5 −5 tests/ServiceStack.WebHost.Endpoints.Tests/CustomRequestDataTests.cs
  19. +3 −2 tests/ServiceStack.WebHost.IntegrationTests/Tests/AppHostBaseTests.cs
  20. +2 −1  tests/ServiceStack.WebHost.IntegrationTests/Tests/CachedServiceTests.cs
  21. +2 −2 tests/ServiceStack.WebHost.IntegrationTests/Tests/FilterTests.cs
  22. +2 −2 tests/ServiceStack.WebHost.IntegrationTests/Tests/RawRequestTests.cs
View
BIN  NuGet/ServiceStack.Razor/lib/net40/ServiceStack.Razor.dll
Binary file not shown
View
BIN  NuGet/ServiceStack.Razor/lib/net40/ServiceStack.Razor.pdb
Binary file not shown
View
BIN  lib/ServiceStack.Common.dll
Binary file not shown
View
BIN  lib/ServiceStack.Interfaces.dll
Binary file not shown
View
1,182 lib/ServiceStack.Redis.XML
@@ -4,27 +4,171 @@
<name>ServiceStack.Redis</name>
</assembly>
<members>
- <member name="M:ServiceStack.Redis.Support.Queue.ISimpleWorkQueue`1.Enqueue(`0)">
+ <member name="T:ServiceStack.Redis.BasicRedisClientManager">
<summary>
- Enqueue item
+ Provides thread-safe retrievel of redis clients since each client is a new one.
+ Allows the configuration of different ReadWrite and ReadOnly hosts
+ </summary>
+ <summary>
+ BasicRedisClientManager for ICacheClient
+
+ For more interoperabilty I'm also implementing the ICacheClient on
+ this cache client manager which has the affect of calling
+ GetCacheClient() for all write operations and GetReadOnlyCacheClient()
+ for the read ones.
+
+ This works well for master-slave replication scenarios where you have
+ 1 master that replicates to multiple read slaves.
</summary>
- <param name="workItem"></param>
</member>
- <member name="M:ServiceStack.Redis.Support.Queue.ISimpleWorkQueue`1.Dequeue(System.Int32)">
+ <member name="M:ServiceStack.Redis.BasicRedisClientManager.#ctor(System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.IEnumerable{System.String})">
<summary>
- Dequeue up to maxBatchSize items from queue
+ Hosts can be an IP Address or Hostname in the format: host[:port]
+ e.g. 127.0.0.1:6379
+ default is: localhost:6379
+ </summary>
+ <param name="readWriteHosts">The write hosts.</param>
+ <param name="readOnlyHosts">The read hosts.</param>
+ </member>
+ <member name="M:ServiceStack.Redis.BasicRedisClientManager.GetClient">
+ <summary>
+ Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts
</summary>
- <param name="maxBatchSize"></param>
<returns></returns>
</member>
- <member name="T:ServiceStack.Redis.Support.Locking.IDistributedLock">
+ <member name="M:ServiceStack.Redis.BasicRedisClientManager.GetReadOnlyClient">
<summary>
- Distributed lock interface
+ Returns a ReadOnly client using the hosts defined in ReadOnlyHosts.
</summary>
+ <returns></returns>
</member>
- <member name="T:ServiceStack.Redis.RedisClientList">
+ <member name="P:ServiceStack.Redis.BasicRedisClientManager.NamespacePrefix">
<summary>
- Wrap the common redis list operations under a IList[string] interface.
+ Gets or sets object key prefix.
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Redis.BufferPool">
+ <summary>
+ Courtesy of @marcgravell
+ http://code.google.com/p/protobuf-net/source/browse/trunk/protobuf-net/BufferPool.cs
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Redis.Generic.QueuedRedisTypedCommand`1">
+ <summary>
+ A complete redis command, with method to send command, receive response, and run callback on success or failure
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Redis.Generic.RedisTypedClient`1">
+ <summary>
+ Allows you to get Redis value operations to operate against POCO types.
+ </summary>
+ <typeparam name="T"></typeparam>
+ </member>
+ <member name="M:ServiceStack.Redis.Generic.RedisTypedClient`1.#ctor(ServiceStack.Redis.RedisClient)">
+ <summary>
+ Use this to share the same redis connection with another
+ </summary>
+ <param name="client">The client.</param>
+ </member>
+ <member name="T:ServiceStack.Redis.RedisTypedPipeline`1">
+ <summary>
+ Pipeline for redis typed client
+ </summary>
+ <typeparam name="T"></typeparam>
+ </member>
+ <member name="T:ServiceStack.Redis.Generic.RedisTypedCommandQueue`1">
+ <summary>
+ Queue of commands for redis typed client
+ </summary>
+ <typeparam name="T"></typeparam>
+ </member>
+ <member name="T:ServiceStack.Redis.RedisQueueCompletableOperation">
+ <summary>
+ Redis operation (transaction/pipeline) that allows queued commands to be completed
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Redis.Messaging.RedisMqHost">
+ <summary>
+ Creates an MQ Host that processes all messages on a single background thread.
+ i.e. If you register 3 handlers it will only create 1 background thread.
+
+ The same background thread that listens to the Redis MQ Subscription for new messages
+ also cycles through each registered handler processing all pending messages one-at-a-time:
+ first in the message PriorityQ, then in the normal message InQ.
+
+ The Start/Stop methods are idempotent i.e. It's safe to call them repeatedly on multiple threads
+ and the Redis MQ Host will only have Started/Stopped once.
+ </summary>
+ </member>
+ <member name="P:ServiceStack.Redis.Messaging.RedisMqHost.ReplyClientFactory">
+ <summary>
+ Inject your own Reply Client Factory to handle custom Message.ReplyTo urls.
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Redis.Messaging.RedisMqServer">
+ <summary>
+ Creates a Redis MQ Server that processes each message on its own background thread.
+ i.e. if you register 3 handlers it will create 7 background threads:
+ - 1 listening to the Redis MQ Subscription, getting notified of each new message
+ - 3x1 Normal InQ for each message handler
+ - 3x1 PriorityQ for each message handler
+
+ When RedisMqServer Starts it creates a background thread subscribed to the Redis MQ Topic that
+ listens for new incoming messages. It also starts 2 background threads for each message type:
+ - 1 for processing the services Priority Queue and 1 processing the services normal Inbox Queue.
+
+ Priority Queue's can be enabled on a message-per-message basis by specifying types in the
+ OnlyEnablePriortyQueuesForTypes property. The DisableAllPriorityQueues property disables all Queues.
+
+ The Start/Stop methods are idempotent i.e. It's safe to call them repeatedly on multiple threads
+ and the Redis MQ Server will only have Started or Stopped once.
+ </summary>
+ </member>
+ <member name="P:ServiceStack.Redis.Messaging.RedisMqServer.RequestFilter">
+ <summary>
+ Execute global transformation or custom logic before a request is processed.
+ Must be thread-safe.
+ </summary>
+ </member>
+ <member name="P:ServiceStack.Redis.Messaging.RedisMqServer.ResponseFilter">
+ <summary>
+ Execute global transformation or custom logic on the response.
+ Must be thread-safe.
+ </summary>
+ </member>
+ <member name="P:ServiceStack.Redis.Messaging.RedisMqServer.ErrorHandler">
+ <summary>
+ Execute global error handler logic. Must be thread-safe.
+ </summary>
+ </member>
+ <member name="P:ServiceStack.Redis.Messaging.RedisMqServer.OnlyEnablePriortyQueuesForTypes">
+ <summary>
+ If you only want to enable priority queue handlers (and threads) for specific msg types
+ </summary>
+ </member>
+ <member name="P:ServiceStack.Redis.Messaging.RedisMqServer.DisableAllPriorityQueues">
+ <summary>
+ Don't listen on any Priority Queues
+ </summary>
+ </member>
+ <member name="M:ServiceStack.Redis.RedisClientManagerCacheClient.Dispose">
+ <summary>
+ Ignore dispose on RedisClientsManager, which should be registered as a singleton
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Redis.RedisClientsManagerExtensions">
+ <summary>
+ Useful wrapper IRedisClientsManager to cut down the boiler plat of most IRedisClient access
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Redis.Pipeline.QueuedRedisCommand">
+ <summary>
+ A complete redis command, with method to send command, receive response, and run callback on success or failure
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Redis.RedisCommand">
+ <summary>
+ Redis command that does not get queued
</summary>
</member>
<member name="T:ServiceStack.Redis.RedisClient">
@@ -44,6 +188,12 @@
Not threadsafe use a pooled manager
</summary>
</member>
+ <member name="M:ServiceStack.Redis.RedisNativeClient.Exec">
+ <summary>
+ Requires custom result parsing
+ </summary>
+ <returns>Number of results</returns>
+ </member>
<member name="M:ServiceStack.Redis.RedisNativeClient.SendCommand(System.Byte[][])">
<summary>
Command to set multuple binary safe arguments
@@ -56,12 +206,6 @@
reset buffer index in send buffer
</summary>
</member>
- <member name="M:ServiceStack.Redis.RedisNativeClient.Exec">
- <summary>
- Requires custom result parsing
- </summary>
- <returns>Number of results</returns>
- </member>
<member name="P:ServiceStack.Redis.RedisNativeClient.Active">
<summary>
Used to manage connection pooling
@@ -99,77 +243,244 @@
<param name="id"></param>
<returns></returns>
</member>
- <member name="T:ServiceStack.Redis.Generic.RedisTypedClient`1">
+ <member name="T:ServiceStack.Redis.ShardedConnectionPool">
<summary>
- Allows you to get Redis value operations to operate against POCO types.
+ Provides a redis connection pool that can be sharded
</summary>
- <typeparam name="T"></typeparam>
</member>
- <member name="M:ServiceStack.Redis.Generic.RedisTypedClient`1.#ctor(ServiceStack.Redis.RedisClient)">
+ <member name="T:ServiceStack.Redis.PooledRedisClientManager">
<summary>
- Use this to share the same redis connection with another
+ For interoperabilty GetCacheClient() and GetReadOnlyCacheClient()
+ return an ICacheClient wrapper around the redis manager which has the affect of calling
+ GetClient() for all write operations and GetReadOnlyClient() for the read ones.
+
+ This works well for master-slave replication scenarios where you have
+ 1 master that replicates to multiple read slaves.
</summary>
- <param name="client">The client.</param>
- </member>
- <member name="T:ServiceStack.Redis.RedisCommandQueue">
<summary>
+ Provides thread-safe pooling of redis client connections.
+ Allows load-balancing of master-write and read-slave hosts, ideal for
+ 1 master and multiple replicated read slaves.
</summary>
</member>
- <member name="T:ServiceStack.Redis.RedisQueueCompletableOperation">
+ <member name="M:ServiceStack.Redis.PooledRedisClientManager.#ctor(System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.IEnumerable{System.String},ServiceStack.Redis.RedisClientManagerConfig)">
<summary>
- Redis operation (transaction/pipeline) that allows queued commands to be completed
+ Hosts can be an IP Address or Hostname in the format: host[:port]
+ e.g. 127.0.0.1:6379
+ default is: localhost:6379
</summary>
+ <param name="readWriteHosts">The write hosts.</param>
+ <param name="readOnlyHosts">The read hosts.</param>
+ <param name="config">The config.</param>
</member>
- <member name="T:ServiceStack.Redis.RedisClientHash">
+ <member name="M:ServiceStack.Redis.PooledRedisClientManager.GetClient">
<summary>
- Wrap the common redis set operations under a ICollection[string] interface.
+ Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts
</summary>
+ <returns></returns>
</member>
- <member name="T:ServiceStack.Redis.Generic.RedisTypedTransaction`1">
+ <member name="M:ServiceStack.Redis.PooledRedisClientManager.GetInActiveWriteClient">
<summary>
- Adds support for Redis Transactions (i.e. MULTI/EXEC/DISCARD operations).
+ Called within a lock
</summary>
+ <returns></returns>
</member>
- <member name="T:ServiceStack.Redis.RedisTypedPipeline`1">
+ <member name="M:ServiceStack.Redis.PooledRedisClientManager.GetReadOnlyClient">
<summary>
- Pipeline for redis typed client
+ Returns a ReadOnly client using the hosts defined in ReadOnlyHosts.
</summary>
- <typeparam name="T"></typeparam>
+ <returns></returns>
</member>
- <member name="T:ServiceStack.Redis.Generic.RedisTypedCommandQueue`1">
+ <member name="M:ServiceStack.Redis.PooledRedisClientManager.GetInActiveReadClient">
<summary>
- Queue of commands for redis typed client
+ Called within a lock
</summary>
- <typeparam name="T"></typeparam>
+ <returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Generic.RedisTypedTransaction`1.QueueExpectQueued">
+ <member name="M:ServiceStack.Redis.PooledRedisClientManager.DisposeReadOnlyClient(ServiceStack.Redis.RedisNativeClient)">
<summary>
- Put "QUEUED" messages at back of queue
+ Disposes the read only client.
</summary>
- <param name="queued"></param>
+ <param name="client">The client.</param>
</member>
- <member name="M:ServiceStack.Redis.Generic.RedisTypedTransaction`1.Exec">
+ <member name="M:ServiceStack.Redis.PooledRedisClientManager.DisposeWriteClient(ServiceStack.Redis.RedisNativeClient)">
<summary>
- Issue exec command (not queued)
+ Disposes the write client.
</summary>
+ <param name="client">The client.</param>
</member>
- <member name="M:ServiceStack.Redis.Generic.RedisTypedTransaction`1.handleMultiDataResultCount(System.Int32)">
+ <member name="P:ServiceStack.Redis.PooledRedisClientManager.NamespacePrefix">
<summary>
- callback for after result count is read in
+ Gets or sets object key prefix.
</summary>
- <param name="count"></param>
</member>
- <member name="T:ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue`1">
+ <member name="T:ServiceStack.Redis.PooledRedisClientManager.DisposablePooledClient`1">
<summary>
- distributed work item queue. Each message must have an associated
- work item id. For a given id, all work items are guaranteed to be processed
- in the order in which they are received.
-
-
+ Manage a client acquired from the PooledRedisClientManager
+ Dispose method will release the client back to the pool.
</summary>
+ </member>
+ <member name="M:ServiceStack.Redis.PooledRedisClientManager.DisposablePooledClient`1.#ctor(ServiceStack.Redis.PooledRedisClientManager)">
<summary>
- distributed work item queue. Each message must have an associated
- work item id. For a given id, all work items are guaranteed to be processed
+ wrap the acquired client
+ </summary>
+ <param name="clientManager"></param>
+ </member>
+ <member name="M:ServiceStack.Redis.PooledRedisClientManager.DisposablePooledClient`1.Dispose">
+ <summary>
+ release the wrapped client back to the pool
+ </summary>
+ </member>
+ <member name="P:ServiceStack.Redis.PooledRedisClientManager.DisposablePooledClient`1.Client">
+ <summary>
+ access the wrapped client
+ </summary>
+ </member>
+ <member name="F:ServiceStack.Redis.ShardedConnectionPool.name">
+ <summary>
+ logical name
+ </summary>
+ </member>
+ <member name="F:ServiceStack.Redis.ShardedConnectionPool.weight">
+ <summary>
+ An arbitrary weight relative to other nodes
+ </summary>
+ </member>
+ <member name="M:ServiceStack.Redis.ShardedConnectionPool.#ctor(System.String,System.Int32,System.String[])">
+ <param name="name">logical name</param>
+ <param name="weight">An arbitrary weight relative to other nodes</param>
+ <param name="readWriteHosts">redis nodes</param>
+ </member>
+ <member name="T:ServiceStack.Redis.ShardedRedisClientManager">
+ <summary>
+ Provides sharding of redis client connections.
+ uses consistent hashing to distribute keys across connection pools
+ </summary>
+ </member>
+ <member name="M:ServiceStack.Redis.ShardedRedisClientManager.GetConnectionPool(System.String)">
+ <summary>
+ maps a key to a redis connection pool
+ </summary>
+ <param name="key">key to map</param>
+ <returns>a redis connection pool</returns>
+ </member>
+ <member name="M:ServiceStack.Redis.Support.ConsistentHash`1.AddTarget(`0,System.Int32)">
+ <summary>
+ Adds a node and maps points across the circle
+ </summary>
+ <param name="node"> node to add </param>
+ <param name="weight"> An arbitrary number, specifies how often it occurs relative to other targets. </param>
+ </member>
+ <member name="M:ServiceStack.Redis.Support.ConsistentHash`1.ModifiedBinarySearch(System.UInt64[],System.UInt64)">
+ <summary>
+ A variation of Binary Search algorithm. Given a number, matches the next highest number from the sorted array.
+ If a higher number does not exist, then the first number in the array is returned.
+ </summary>
+ <param name="sortedArray"> a sorted array to perform the search </param>
+ <param name="val"> number to find the next highest number against </param>
+ <returns> next highest number </returns>
+ </member>
+ <member name="M:ServiceStack.Redis.Support.ConsistentHash`1.Md5Hash(System.String)">
+ <summary>
+ Given a key, generates an unsigned 64 bit hash code using MD5
+ </summary>
+ <param name="key"> </param>
+ <returns> </returns>
+ </member>
+ <member name="T:ServiceStack.Redis.Support.Locking.IDistributedLock">
+ <summary>
+ Distributed lock interface
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Redis.Support.OptimizedObjectSerializer">
+ <summary>
+ Optimized <see cref="T:ServiceStack.Redis.Support.ISerializer"/> implementation. Primitive types are manually serialized, the rest are serialized using binary serializer /&gt;.
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Redis.Support.ObjectSerializer">
+ <summary>
+ serialize/deserialize arbitrary objects
+ (objects must be serializable)
+ </summary>
+ </member>
+ <member name="M:ServiceStack.Redis.Support.ObjectSerializer.Serialize(System.Object)">
+ <summary>
+ Serialize object to buffer
+ </summary>
+ <param name="value">serializable object</param>
+ <returns></returns>
+ </member>
+ <member name="M:ServiceStack.Redis.Support.ObjectSerializer.Deserialize(System.Byte[])">
+ <summary>
+ Deserialize buffer to object
+ </summary>
+ <param name="someBytes">byte array to deserialize</param>
+ <returns></returns>
+ </member>
+ <member name="M:ServiceStack.Redis.Support.OptimizedObjectSerializer.Serialize(System.Object)">
+ <summary>
+
+ </summary>
+ <param name="value"></param>
+ <returns></returns>
+ </member>
+ <member name="M:ServiceStack.Redis.Support.OptimizedObjectSerializer.Deserialize(System.Byte[])">
+ <summary>
+
+ </summary>
+ <param name="someBytes"></param>
+ <returns></returns>
+ </member>
+ <member name="M:ServiceStack.Redis.Support.OptimizedObjectSerializer.SerializeToWrapper(System.Object)">
+ <summary>
+ serialize value and wrap with <see cref="T:ServiceStack.Redis.Support.SerializedObjectWrapper"/>
+ </summary>
+ <param name="value"></param>
+ <returns></returns>
+ </member>
+ <member name="M:ServiceStack.Redis.Support.OptimizedObjectSerializer.Unwrap(ServiceStack.Redis.Support.SerializedObjectWrapper)">
+ <summary>
+ Unwrap object wrapped in <see cref="T:ServiceStack.Redis.Support.SerializedObjectWrapper"/>
+ </summary>
+ <param name="item"></param>
+ <returns></returns>
+ </member>
+ <member name="M:ServiceStack.Redis.Support.Queue.ISequentialData`1.PopAndUnlock">
+ <summary>
+ pop numProcessed items from queue and unlock queue for work item id that dequeued
+ items are associated with
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="M:ServiceStack.Redis.Support.Queue.ISequentialData`1.DoneProcessedWorkItem">
+ <summary>
+ A dequeued work item has been processed. When all of the dequeued items have been processed,
+ all items will be popped from the queue,and the queue unlocked for the work item id that
+ the dequeued items are associated with
+ </summary>
+ </member>
+ <member name="M:ServiceStack.Redis.Support.Queue.ISequentialData`1.UpdateNextUnprocessed(`0)">
+ <summary>
+ Update first unprocessed item with new work item.
+ </summary>
+ <param name="newWorkItem"></param>
+ </member>
+ <member name="P:ServiceStack.Redis.Support.Queue.ISequentialData`1.DequeueItems">
+ <summary>
+
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue`1">
+ <summary>
+ distributed work item queue. Each message must have an associated
+ work item id. For a given id, all work items are guaranteed to be processed
+ in the order in which they are received.
+
+
+ </summary>
+ <summary>
+ distributed work item queue. Each message must have an associated
+ work item id. For a given id, all work items are guaranteed to be processed
in the order in which they are received.
@@ -277,39 +588,76 @@
<param name="numProcessed"></param>
<returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Support.Locking.WriteLock.#ctor(System.Threading.ReaderWriterLockSlim)">
+ <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SequentialData`1.PopAndUnlock">
<summary>
- This class manages a write lock for a local readers/writer lock,
- using the Resource Acquisition Is Initialization pattern
+ pop remaining items that were returned by dequeue, and unlock queue
</summary>
- <param name="lockObject"></param>
+ <returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Support.Locking.WriteLock.Dispose">
+ <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SequentialData`1.DoneProcessedWorkItem">
<summary>
- RAII disposal
+ indicate that an item has been processed by the caller
</summary>
</member>
- <member name="M:ServiceStack.Redis.Support.Locking.DistributedLock.Lock(System.String,System.Int32,System.Int32,System.Int64@,ServiceStack.Redis.IRedisClient)">
+ <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SequentialData`1.UpdateNextUnprocessed(`0)">
<summary>
- acquire distributed, non-reentrant lock on key
+ Update first unprocessed work item
+ </summary>
+ <param name="newWorkItem"></param>
+ </member>
+ <member name="T:ServiceStack.Redis.Support.SerializedObjectWrapper">
+ <summary>
+ wraps a serialized representation of an object
+ </summary>
+
+ </member>
+ <member name="M:ServiceStack.Redis.Support.SerializedObjectWrapper.#ctor(System.UInt16,System.ArraySegment{System.Byte})">
+ <summary>
+ Initializes a new instance of <see cref="T:ServiceStack.Redis.Support.SerializedObjectWrapper"/>.
+ </summary>
+ <param name="flags">Custom item data.</param>
+ <param name="data">The serialized item.</param>
+ </member>
+ <member name="P:ServiceStack.Redis.Support.SerializedObjectWrapper.Data">
+ <summary>
+ The data representing the item being stored/retireved.
+ </summary>
+ </member>
+ <member name="P:ServiceStack.Redis.Support.SerializedObjectWrapper.Flags">
+ <summary>
+ Flags set for this instance.
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Redis.Support.Locking.DisposableDistributedLock">
+ <summary>
+ distributed lock class that follows the Resource Allocation Is Initialization pattern
+ </summary>
+ </member>
+ <member name="M:ServiceStack.Redis.Support.Locking.DisposableDistributedLock.#ctor(ServiceStack.Redis.IRedisClient,System.String,System.Int32,System.Int32)">
+ <summary>
+ Lock
</summary>
- <param name="key">global key for this lock</param>
- <param name="acquisitionTimeout">timeout for acquiring lock</param>
- <param name="lockTimeout">timeout for lock, in seconds (stored as value against lock key) </param>
<param name="client"></param>
- <param name="lockExpire"></param>
+ <param name="globalLockKey"></param>
+ <param name="acquisitionTimeout">in seconds</param>
+ <param name="lockTimeout">in seconds</param>
</member>
- <member name="M:ServiceStack.Redis.Support.Locking.DistributedLock.Unlock(System.String,System.Int64,ServiceStack.Redis.IRedisClient)">
+ <member name="M:ServiceStack.Redis.Support.Locking.DisposableDistributedLock.Dispose">
<summary>
- unlock key
+ unlock
</summary>
</member>
- <member name="M:ServiceStack.Redis.Support.Locking.DistributedLock.CalculateLockExpire(System.TimeSpan,System.Int32)">
+ <member name="M:ServiceStack.Redis.Support.Queue.ISimpleWorkQueue`1.Enqueue(`0)">
<summary>
-
+ Enqueue item
</summary>
- <param name="ts"></param>
- <param name="timeout"></param>
+ <param name="workItem"></param>
+ </member>
+ <member name="M:ServiceStack.Redis.Support.Queue.ISimpleWorkQueue`1.Dequeue(System.Int32)">
+ <summary>
+ Dequeue up to maxBatchSize items from queue
+ </summary>
+ <param name="maxBatchSize"></param>
<returns></returns>
</member>
<member name="T:ServiceStack.Redis.Support.Queue.Implementation.RedisChronologicalWorkQueue`1">
@@ -334,149 +682,180 @@
<param name="maxBatchSize"></param>
<returns></returns>
</member>
- <member name="T:ServiceStack.Redis.RedisCommand">
+ <member name="T:ServiceStack.Redis.Support.Queue.Implementation.RedisSimpleWorkQueue`1">
<summary>
- Redis command that does not get queued
+ simple distributed work item queue
+
+
</summary>
</member>
- <member name="M:ServiceStack.Redis.RedisClientManagerCacheClient.Dispose">
+ <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisSimpleWorkQueue`1.Enqueue(`0)">
<summary>
- Ignore dispose on RedisClientsManager, which should be registered as a singleton
+ Queue incoming messages
</summary>
+ <param name="msg"></param>
</member>
- <member name="T:ServiceStack.Redis.Generic.QueuedRedisTypedCommand`1">
+ <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisSimpleWorkQueue`1.Dequeue(System.Int32)">
<summary>
- A complete redis command, with method to send command, receive response, and run callback on success or failure
+ Dequeue next batch of work items for processing. After this method is called,
+ no other work items with same id will be available for
+ dequeuing until PostDequeue is called
</summary>
+ <returns>KeyValuePair: key is work item id, and value is list of dequeued items.
+ </returns>
</member>
- <member name="T:ServiceStack.Redis.Support.Locking.ILockingStrategy">
+ <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient.Serialize(System.Object)">
<summary>
- Locking strategy interface
- </summary>
- </member>
- <member name="T:ServiceStack.Redis.Support.OptimizedObjectSerializer">
- <summary>
- Optimized <see cref="T:ServiceStack.Redis.Support.ISerializer"/> implementation. Primitive types are manually serialized, the rest are serialized using binary serializer /&gt;.
+ Serialize object to buffer
</summary>
+ <param name="value">serializable object</param>
+ <returns></returns>
</member>
- <member name="T:ServiceStack.Redis.Support.ObjectSerializer">
+ <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient.Serialize(System.Object[])">
<summary>
- serialize/deserialize arbitrary objects
- (objects must be serializable)
+
</summary>
+ <param name="values">array of serializable objects</param>
+ <returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Support.ObjectSerializer.Serialize(System.Object)">
+ <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient.Deserialize(System.Byte[])">
<summary>
- Serialize object to buffer
+ Deserialize buffer to object
</summary>
- <param name="value">serializable object</param>
+ <param name="someBytes">byte array to deserialize</param>
<returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Support.ObjectSerializer.Deserialize(System.Byte[])">
+ <!-- Badly formed XML comment ignored for member "M:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient.Deserialize(System.Byte[][])" -->
+ <member name="P:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient.Serializer">
<summary>
- Deserialize buffer to object
+ customize the client serializer
</summary>
- <param name="someBytes">byte array to deserialize</param>
- <returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Support.OptimizedObjectSerializer.Serialize(System.Object)">
+ <member name="T:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClientFactory">
<summary>
-
+ Factory to create SerializingRedisClient objects
</summary>
- <param name="value"></param>
- <returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Support.OptimizedObjectSerializer.Deserialize(System.Byte[])">
+ <member name="T:ServiceStack.Redis.RedisCommandQueue">
<summary>
-
</summary>
- <param name="someBytes"></param>
- <returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Support.OptimizedObjectSerializer.SerializeToWrapper(System.Object)">
+ <member name="M:ServiceStack.Redis.RedisAllPurposePipeline.#ctor(ServiceStack.Redis.RedisClient)">
<summary>
- serialize value and wrap with <see cref="T:ServiceStack.Redis.Support.SerializedObjectWrapper"/>
+ General purpose pipeline
</summary>
- <param name="value"></param>
- <returns></returns>
+ <param name="redisClient"></param>
</member>
- <member name="M:ServiceStack.Redis.Support.OptimizedObjectSerializer.Unwrap(ServiceStack.Redis.Support.SerializedObjectWrapper)">
+ <member name="M:ServiceStack.Redis.RedisAllPurposePipeline.Flush">
<summary>
- Unwrap object wrapped in <see cref="T:ServiceStack.Redis.Support.SerializedObjectWrapper"/>
+ Flush send buffer, and read responses
</summary>
- <param name="item"></param>
- <returns></returns>
</member>
- <member name="T:ServiceStack.Redis.Support.RedisNamespace">
+ <member name="T:ServiceStack.Redis.Generic.RedisClientHash`2">
<summary>
- manages a "region" in the redis key space
- namespace can be cleared by incrementing the generation
+ Wrap the common redis set operations under a ICollection[string] interface.
</summary>
</member>
- <member name="M:ServiceStack.Redis.Support.RedisNamespace.GetGeneration">
+ <member name="T:ServiceStack.Redis.Generic.RedisTypedTransaction`1">
<summary>
- get current generation
+ Adds support for Redis Transactions (i.e. MULTI/EXEC/DISCARD operations).
</summary>
- <returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Support.RedisNamespace.SetGeneration(System.Int64)">
+ <member name="M:ServiceStack.Redis.Generic.RedisTypedTransaction`1.QueueExpectQueued">
<summary>
- set new generation
+ Put "QUEUED" messages at back of queue
</summary>
- <param name="generation"></param>
+ <param name="queued"></param>
</member>
- <member name="M:ServiceStack.Redis.Support.RedisNamespace.GetGenerationKey">
+ <member name="M:ServiceStack.Redis.Generic.RedisTypedTransaction`1.Exec">
<summary>
- redis key for generation
+ Issue exec command (not queued)
</summary>
- <returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Support.RedisNamespace.GetGlobalKeysKey">
+ <member name="M:ServiceStack.Redis.Generic.RedisTypedTransaction`1.handleMultiDataResultCount(System.Int32)">
<summary>
- get redis key that holds all namespace keys
+ callback for after result count is read in
</summary>
- <returns></returns>
+ <param name="count"></param>
</member>
- <member name="M:ServiceStack.Redis.Support.RedisNamespace.GlobalCacheKey(System.Object)">
+ <member name="T:ServiceStack.Redis.Generic.RedisClientSortedSet`1">
<summary>
- get global cache key
+ Wrap the common redis set operations under a ICollection[string] interface.
</summary>
- <param name="key"></param>
- <returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Support.RedisNamespace.GlobalKey(System.Object,System.Int32)">
+ <member name="T:ServiceStack.Redis.RedisClientHash">
<summary>
- get global key inside of this namespace
+ Wrap the common redis set operations under a ICollection[string] interface.
</summary>
- <param name="key"></param>
- <param name="numUniquePrefixes">prefixes can be added for name deconfliction</param>
- <returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Support.RedisNamespace.Sanitize(System.String)">
+ <member name="T:ServiceStack.Redis.RedisClientSortedSet">
<summary>
- replace UniqueCharacter with its double, to avoid name clash
+ Wrap the common redis set operations under a ICollection[string] interface.
</summary>
- <param name="dirtyString"></param>
- <returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Support.RedisNamespace.Sanitize(System.Object)">
+ <member name="T:ServiceStack.Redis.Messaging.RedisTransientMessageFactory">
<summary>
+ Transient message queues are a one-pass message queue service that starts
+ processing messages when Start() is called. Any subsequent Start() calls
+ while the service is running is ignored.
+ The transient service will continue to run until all messages have been
+ processed after which time it will shutdown all processing until Start() is called again.
</summary>
- <param name="dirtyString"></param>
- <returns></returns>
</member>
- <member name="P:ServiceStack.Redis.Support.RedisNamespace.LockingStrategy">
+ <member name="T:ServiceStack.Redis.RedisException">
<summary>
- get locking strategy
+ Redis-specific exception. Thrown if unable to connect to Redis server due to socket exception, for example.
</summary>
</member>
- <member name="T:ServiceStack.Redis.Support.OrderedDictionary`2">
+ <member name="T:ServiceStack.Redis.RedisTransaction">
<summary>
- Represents a generic collection of key/value pairs that are ordered independently of the key and value.
+ Adds support for Redis Transactions (i.e. MULTI/EXEC/DISCARD operations).
+ </summary>
+ </member>
+ <member name="M:ServiceStack.Redis.RedisTransaction.QueueExpectQueued">
+ <summary>
+ Put "QUEUED" messages at back of queue
+ </summary>
+ <param name="queued"></param>
+ </member>
+ <member name="M:ServiceStack.Redis.RedisTransaction.Exec">
+ <summary>
+ Issue exec command (not queued)
+ </summary>
+ </member>
+ <member name="M:ServiceStack.Redis.RedisTransaction.handleMultiDataResultCount(System.Int32)">
+ <summary>
+ callback for after result count is read in
+ </summary>
+ <param name="count"></param>
+ </member>
+ <member name="T:ServiceStack.Redis.RedisClientFactory">
+ <summary>
+ Provide the default factory implementation for creating a RedisClient that
+ can be mocked and used by different 'Redis Client Managers'
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Redis.Generic.RedisClientSet`1">
+ <summary>
+ Wrap the common redis set operations under a ICollection[string] interface.
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Redis.RedisCacheClientFactory">
+ <summary>
+ Provide the factory implementation for creating a RedisCacheClient that
+ can be mocked and used by different 'Redis Client Managers'
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Redis.RedisClientSet">
+ <summary>
+ Wrap the common redis set operations under a ICollection[string] interface.
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Redis.RedisClientList">
+ <summary>
+ Wrap the common redis list operations under a IList[string] interface.
</summary>
- <typeparam name="TKey">The type of the keys in the dictionary</typeparam>
- <typeparam name="TValue">The type of the values in the dictionary</typeparam>
</member>
<member name="T:ServiceStack.Redis.Support.IOrderedDictionary`2">
<summary>
@@ -524,6 +903,13 @@
-or-<br/>
<paramref name="index"/> is equal to or greater than <see cref="P:System.Collections.ICollection.Count"/>.</exception>
</member>
+ <member name="T:ServiceStack.Redis.Support.OrderedDictionary`2">
+ <summary>
+ Represents a generic collection of key/value pairs that are ordered independently of the key and value.
+ </summary>
+ <typeparam name="TKey">The type of the keys in the dictionary</typeparam>
+ <typeparam name="TValue">The type of the values in the dictionary</typeparam>
+ </member>
<member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.#ctor">
<summary>
Initializes a new instance of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> class.
@@ -844,511 +1230,125 @@
<value>An <see cref="T:ICollection{TValue}">ICollection&lt;TValue&gt;</see> object containing the values in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>.</value>
<remarks>The returned <see cref="T:ICollection{TValue}">ICollection&lt;TKey&gt;</see> object is not a static copy; instead, the collection refers back to the values in the original <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>. Therefore, changes to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> continue to be reflected in the value collection.</remarks>
</member>
- <member name="T:ServiceStack.Redis.RedisClientSet">
+ <member name="M:ServiceStack.Redis.Support.Locking.DistributedLock.Lock(System.String,System.Int32,System.Int32,System.Int64@,ServiceStack.Redis.IRedisClient)">
<summary>
- Wrap the common redis set operations under a ICollection[string] interface.
+ acquire distributed, non-reentrant lock on key
</summary>
+ <param name="key">global key for this lock</param>
+ <param name="acquisitionTimeout">timeout for acquiring lock</param>
+ <param name="lockTimeout">timeout for lock, in seconds (stored as value against lock key) </param>
+ <param name="client"></param>
+ <param name="lockExpire"></param>
</member>
- <member name="T:ServiceStack.Redis.RedisClientSortedSet">
+ <member name="M:ServiceStack.Redis.Support.Locking.DistributedLock.Unlock(System.String,System.Int64,ServiceStack.Redis.IRedisClient)">
<summary>
- Wrap the common redis set operations under a ICollection[string] interface.
+ unlock key
</summary>
</member>
- <member name="T:ServiceStack.Redis.Support.SerializedObjectWrapper">
+ <member name="M:ServiceStack.Redis.Support.Locking.DistributedLock.CalculateLockExpire(System.TimeSpan,System.Int32)">
<summary>
- wraps a serialized representation of an object
- </summary>
+ </summary>
+ <param name="ts"></param>
+ <param name="timeout"></param>
+ <returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Support.SerializedObjectWrapper.#ctor(System.UInt16,System.ArraySegment{System.Byte})">
+ <member name="T:ServiceStack.Redis.Support.Locking.ILockingStrategy">
<summary>
- Initializes a new instance of <see cref="T:ServiceStack.Redis.Support.SerializedObjectWrapper"/>.
+ Locking strategy interface
</summary>
- <param name="flags">Custom item data.</param>
- <param name="data">The serialized item.</param>
</member>
- <member name="P:ServiceStack.Redis.Support.SerializedObjectWrapper.Data">
+ <member name="T:ServiceStack.Redis.Support.Locking.ReadLock">
<summary>
- The data representing the item being stored/retireved.
+ This class manages a read lock for a local readers/writer lock,
+ using the Resource Acquisition Is Initialization pattern
</summary>
</member>
- <member name="P:ServiceStack.Redis.Support.SerializedObjectWrapper.Flags">
+ <member name="M:ServiceStack.Redis.Support.Locking.ReadLock.#ctor(System.Threading.ReaderWriterLockSlim)">
<summary>
- Flags set for this instance.
+ RAII initialization
</summary>
+ <param name="lockObject"></param>
</member>
- <member name="T:ServiceStack.Redis.RedisClientsManagerExtensions">
+ <member name="M:ServiceStack.Redis.Support.Locking.ReadLock.Dispose">
<summary>
- Useful wrapper IRedisClientsManager to cut down the boiler plat of most IRedisClient access
+ RAII disposal
</summary>
</member>
- <member name="T:ServiceStack.Redis.Generic.RedisClientSet`1">
+ <member name="M:ServiceStack.Redis.Support.Locking.WriteLock.#ctor(System.Threading.ReaderWriterLockSlim)">
<summary>
- Wrap the common redis set operations under a ICollection[string] interface.
+ This class manages a write lock for a local readers/writer lock,
+ using the Resource Acquisition Is Initialization pattern
</summary>
+ <param name="lockObject"></param>
</member>
- <member name="M:ServiceStack.Redis.Support.ConsistentHash`1.AddTarget(`0,System.Int32)">
+ <member name="M:ServiceStack.Redis.Support.Locking.WriteLock.Dispose">
<summary>
- Adds a node and maps points across the circle
+ RAII disposal
</summary>
- <param name="node"> node to add </param>
- <param name="weight"> An arbitrary number, specifies how often it occurs relative to other targets. </param>
</member>
- <member name="M:ServiceStack.Redis.Support.ConsistentHash`1.ModifiedBinarySearch(System.UInt64[],System.UInt64)">
+ <member name="T:ServiceStack.Redis.Support.RedisNamespace">
<summary>
- A variation of Binary Search algorithm. Given a number, matches the next highest number from the sorted array.
- If a higher number does not exist, then the first number in the array is returned.
+ manages a "region" in the redis key space
+ namespace can be cleared by incrementing the generation
</summary>
- <param name="sortedArray"> a sorted array to perform the search </param>
- <param name="val"> number to find the next highest number against </param>
- <returns> next highest number </returns>
</member>
- <member name="M:ServiceStack.Redis.Support.ConsistentHash`1.Md5Hash(System.String)">
+ <member name="M:ServiceStack.Redis.Support.RedisNamespace.GetGeneration">
<summary>
- Given a key, generates an unsigned 64 bit hash code using MD5
+ get current generation
</summary>
- <param name="key"> </param>
- <returns> </returns>
+ <returns></returns>
</member>
- <member name="T:ServiceStack.Redis.RedisException">
+ <member name="M:ServiceStack.Redis.Support.RedisNamespace.SetGeneration(System.Int64)">
<summary>
- Redis-specific exception. Thrown if unable to connect to Redis server due to socket exception, for example.
+ set new generation
</summary>
+ <param name="generation"></param>
</member>
- <member name="T:ServiceStack.Redis.Support.Locking.DisposableDistributedLock">
+ <member name="M:ServiceStack.Redis.Support.RedisNamespace.GetGenerationKey">
<summary>
- distributed lock class that follows the Resource Allocation Is Initialization pattern
+ redis key for generation
</summary>
+ <returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Support.Locking.DisposableDistributedLock.#ctor(ServiceStack.Redis.IRedisClient,System.String,System.Int32,System.Int32)">
+ <member name="M:ServiceStack.Redis.Support.RedisNamespace.GetGlobalKeysKey">
<summary>
- Lock
+ get redis key that holds all namespace keys
</summary>
- <param name="client"></param>
- <param name="globalLockKey"></param>
- <param name="acquisitionTimeout">in seconds</param>
- <param name="lockTimeout">in seconds</param>
+ <returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Support.Locking.DisposableDistributedLock.Dispose">
+ <member name="M:ServiceStack.Redis.Support.RedisNamespace.GlobalCacheKey(System.Object)">
<summary>
- unlock
- </summary>
- </member>
- <member name="T:ServiceStack.Redis.RedisTransaction">
- <summary>
- Adds support for Redis Transactions (i.e. MULTI/EXEC/DISCARD operations).
- </summary>
- </member>
- <member name="M:ServiceStack.Redis.RedisAllPurposePipeline.#ctor(ServiceStack.Redis.RedisClient)">
- <summary>
- General purpose pipeline
- </summary>
- <param name="redisClient"></param>
- </member>
- <member name="M:ServiceStack.Redis.RedisAllPurposePipeline.Flush">
- <summary>
- Flush send buffer, and read responses
- </summary>
- </member>
- <member name="M:ServiceStack.Redis.RedisTransaction.QueueExpectQueued">
- <summary>
- Put "QUEUED" messages at back of queue
- </summary>
- <param name="queued"></param>
- </member>
- <member name="M:ServiceStack.Redis.RedisTransaction.Exec">
- <summary>
- Issue exec command (not queued)
- </summary>
- </member>
- <member name="M:ServiceStack.Redis.RedisTransaction.handleMultiDataResultCount(System.Int32)">
- <summary>
- callback for after result count is read in
- </summary>
- <param name="count"></param>
- </member>
- <member name="T:ServiceStack.Redis.Messaging.RedisTransientMessageFactory">
- <summary>
- Transient message queues are a one-pass message queue service that starts
- processing messages when Start() is called. Any subsequent Start() calls
- while the service is running is ignored.
-
- The transient service will continue to run until all messages have been
- processed after which time it will shutdown all processing until Start() is called again.
- </summary>
- </member>
- <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient.Serialize(System.Object)">
- <summary>
- Serialize object to buffer
- </summary>
- <param name="value">serializable object</param>
- <returns></returns>
- </member>
- <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient.Serialize(System.Object[])">
- <summary>
-
- </summary>
- <param name="values">array of serializable objects</param>
- <returns></returns>
- </member>
- <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient.Deserialize(System.Byte[])">
- <summary>
- Deserialize buffer to object
- </summary>
- <param name="someBytes">byte array to deserialize</param>
- <returns></returns>
- </member>
- <!-- Badly formed XML comment ignored for member "M:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient.Deserialize(System.Byte[][])" -->
- <member name="P:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient.Serializer">
- <summary>
- customize the client serializer
- </summary>
- </member>
- <member name="T:ServiceStack.Redis.PooledRedisClientManager">
- <summary>
- Provides thread-safe pooling of redis client connections.
- Allows load-balancing of master-write and read-slave hosts, ideal for
- 1 master and multiple replicated read slaves.
- </summary>
- <summary>
- For interoperabilty GetCacheClient() and GetReadOnlyCacheClient()
- return an ICacheClient wrapper around the redis manager which has the affect of calling
- GetClient() for all write operations and GetReadOnlyClient() for the read ones.
-
- This works well for master-slave replication scenarios where you have
- 1 master that replicates to multiple read slaves.
- </summary>
- </member>
- <member name="M:ServiceStack.Redis.PooledRedisClientManager.#ctor(System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.IEnumerable{System.String},ServiceStack.Redis.RedisClientManagerConfig)">
- <summary>
- Hosts can be an IP Address or Hostname in the format: host[:port]
- e.g. 127.0.0.1:6379
- default is: localhost:6379
- </summary>
- <param name="readWriteHosts">The write hosts.</param>
- <param name="readOnlyHosts">The read hosts.</param>
- <param name="config">The config.</param>
- </member>
- <member name="M:ServiceStack.Redis.PooledRedisClientManager.GetClient">
- <summary>
- Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts
- </summary>
- <returns></returns>
- </member>
- <member name="M:ServiceStack.Redis.PooledRedisClientManager.GetInActiveWriteClient">
- <summary>
- Called within a lock
- </summary>
- <returns></returns>
- </member>
- <member name="M:ServiceStack.Redis.PooledRedisClientManager.GetReadOnlyClient">
- <summary>
- Returns a ReadOnly client using the hosts defined in ReadOnlyHosts.
- </summary>
- <returns></returns>
- </member>
- <member name="M:ServiceStack.Redis.PooledRedisClientManager.GetInActiveReadClient">
- <summary>
- Called within a lock
- </summary>
- <returns></returns>
- </member>
- <member name="M:ServiceStack.Redis.PooledRedisClientManager.DisposeReadOnlyClient(ServiceStack.Redis.RedisNativeClient)">
- <summary>
- Disposes the read only client.
- </summary>
- <param name="client">The client.</param>
- </member>
- <member name="M:ServiceStack.Redis.PooledRedisClientManager.DisposeWriteClient(ServiceStack.Redis.RedisNativeClient)">
- <summary>
- Disposes the write client.
- </summary>
- <param name="client">The client.</param>
- </member>
- <member name="P:ServiceStack.Redis.PooledRedisClientManager.NamespacePrefix">
- <summary>
- Gets or sets object key prefix.
- </summary>
- </member>
- <member name="T:ServiceStack.Redis.PooledRedisClientManager.DisposablePooledClient`1">
- <summary>
- Manage a client acquired from the PooledRedisClientManager
- Dispose method will release the client back to the pool.
- </summary>
- </member>
- <member name="M:ServiceStack.Redis.PooledRedisClientManager.DisposablePooledClient`1.#ctor(ServiceStack.Redis.PooledRedisClientManager)">
- <summary>
- wrap the acquired client
- </summary>
- <param name="clientManager"></param>
- </member>
- <member name="M:ServiceStack.Redis.PooledRedisClientManager.DisposablePooledClient`1.Dispose">
- <summary>
- release the wrapped client back to the pool
- </summary>
- </member>
- <member name="P:ServiceStack.Redis.PooledRedisClientManager.DisposablePooledClient`1.Client">
- <summary>
- access the wrapped client
- </summary>
- </member>
- <member name="T:ServiceStack.Redis.RedisClientFactory">
- <summary>
- Provide the default factory implementation for creating a RedisClient that
- can be mocked and used by different 'Redis Client Managers'
- </summary>
- </member>
- <member name="T:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClientFactory">
- <summary>
- Factory to create SerializingRedisClient objects
- </summary>
- </member>
- <member name="T:ServiceStack.Redis.Generic.RedisClientSortedSet`1">
- <summary>
- Wrap the common redis set operations under a ICollection[string] interface.
- </summary>
- </member>
- <member name="T:ServiceStack.Redis.Generic.RedisClientHash`2">
- <summary>
- Wrap the common redis set operations under a ICollection[string] interface.
- </summary>
- </member>
- <member name="T:ServiceStack.Redis.Messaging.RedisMqServer">
- <summary>
- Creates a Redis MQ Server that processes each message on its own background thread.
- i.e. if you register 3 handlers it will create 7 background threads:
- - 1 listening to the Redis MQ Subscription, getting notified of each new message
- - 3x1 Normal InQ for each message handler
- - 3x1 PriorityQ for each message handler
-
- When RedisMqServer Starts it creates a background thread subscribed to the Redis MQ Topic that
- listens for new incoming messages. It also starts 2 background threads for each message type:
- - 1 for processing the services Priority Queue and 1 processing the services normal Inbox Queue.
-
- Priority Queue's can be enabled on a message-per-message basis by specifying types in the
- OnlyEnablePriortyQueuesForTypes property. The DisableAllPriorityQueues property disables all Queues.
-
- The Start/Stop methods are idempotent i.e. It's safe to call them repeatedly on multiple threads
- and the Redis MQ Server will only have Started or Stopped once.
- </summary>
- </member>
- <member name="P:ServiceStack.Redis.Messaging.RedisMqServer.RequestFilter">
- <summary>
- Execute global transformation or custom logic before a request is processed.
- Must be thread-safe.
- </summary>
- </member>
- <member name="P:ServiceStack.Redis.Messaging.RedisMqServer.ResponseFilter">
- <summary>
- Execute global transformation or custom logic on the response.
- Must be thread-safe.
- </summary>
- </member>
- <member name="P:ServiceStack.Redis.Messaging.RedisMqServer.ErrorHandler">
- <summary>
- Execute global error handler logic. Must be thread-safe.
- </summary>
- </member>
- <member name="P:ServiceStack.Redis.Messaging.RedisMqServer.OnlyEnablePriortyQueuesForTypes">
- <summary>
- If you only want to enable priority queue handlers (and threads) for specific msg types
- </summary>
- </member>
- <member name="P:ServiceStack.Redis.Messaging.RedisMqServer.DisableAllPriorityQueues">
- <summary>
- Don't listen on any Priority Queues
- </summary>
- </member>
- <member name="T:ServiceStack.Redis.BasicRedisClientManager">
- <summary>
- BasicRedisClientManager for ICacheClient
-
- For more interoperabilty I'm also implementing the ICacheClient on
- this cache client manager which has the affect of calling
- GetCacheClient() for all write operations and GetReadOnlyCacheClient()
- for the read ones.
-
- This works well for master-slave replication scenarios where you have
- 1 master that replicates to multiple read slaves.
- </summary>
- <summary>
- Provides thread-safe retrievel of redis clients since each client is a new one.
- Allows the configuration of different ReadWrite and ReadOnly hosts
- </summary>
- </member>
- <member name="M:ServiceStack.Redis.BasicRedisClientManager.#ctor(System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.IEnumerable{System.String})">
- <summary>
- Hosts can be an IP Address or Hostname in the format: host[:port]
- e.g. 127.0.0.1:6379
- default is: localhost:6379
- </summary>
- <param name="readWriteHosts">The write hosts.</param>
- <param name="readOnlyHosts">The read hosts.</param>
- </member>
- <member name="M:ServiceStack.Redis.BasicRedisClientManager.GetClient">
- <summary>
- Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts
+ get global cache key
</summary>
+ <param name="key"></param>
<returns></returns>
</member>
- <member name="M:ServiceStack.Redis.BasicRedisClientManager.GetReadOnlyClient">
+ <member name="M:ServiceStack.Redis.Support.RedisNamespace.GlobalKey(System.Object,System.Int32)">
<summary>
- Returns a ReadOnly client using the hosts defined in ReadOnlyHosts.
+ get global key inside of this namespace
</summary>
+ <param name="key"></param>
+ <param name="numUniquePrefixes">prefixes can be added for name deconfliction</param>
<returns></returns>
</member>
- <member name="P:ServiceStack.Redis.BasicRedisClientManager.NamespacePrefix">
- <summary>
- Gets or sets object key prefix.
- </summary>
- </member>
- <member name="T:ServiceStack.Redis.Support.Locking.ReadLock">
- <summary>
- This class manages a read lock for a local readers/writer lock,
- using the Resource Acquisition Is Initialization pattern
- </summary>
- </member>
- <member name="M:ServiceStack.Redis.Support.Locking.ReadLock.#ctor(System.Threading.ReaderWriterLockSlim)">
- <summary>
- RAII initialization
- </summary>
- <param name="lockObject"></param>
- </member>
- <member name="M:ServiceStack.Redis.Support.Locking.ReadLock.Dispose">
- <summary>
- RAII disposal
- </summary>
- </member>
- <member name="T:ServiceStack.Redis.Pipeline.QueuedRedisCommand">
- <summary>
- A complete redis command, with method to send command, receive response, and run callback on success or failure
- </summary>
- </member>
- <member name="M:ServiceStack.Redis.Support.Queue.ISequentialData`1.PopAndUnlock">
+ <member name="M:ServiceStack.Redis.Support.RedisNamespace.Sanitize(System.String)">
<summary>
- pop numProcessed items from queue and unlock queue for work item id that dequeued
- items are associated with
+ replace UniqueCharacter with its double, to avoid name clash
</summary>
+ <param name="dirtyString"></param>
<returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Support.Queue.ISequentialData`1.DoneProcessedWorkItem">
- <summary>
- A dequeued work item has been processed. When all of the dequeued items have been processed,
- all items will be popped from the queue,and the queue unlocked for the work item id that
- the dequeued items are associated with
- </summary>
- </member>
- <member name="M:ServiceStack.Redis.Support.Queue.ISequentialData`1.UpdateNextUnprocessed(`0)">
- <summary>
- Update first unprocessed item with new work item.
- </summary>
- <param name="newWorkItem"></param>
- </member>
- <member name="P:ServiceStack.Redis.Support.Queue.ISequentialData`1.DequeueItems">
+ <member name="M:ServiceStack.Redis.Support.RedisNamespace.Sanitize(System.Object)">
<summary>
</summary>
- </member>
- <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SequentialData`1.PopAndUnlock">
- <summary>
- pop remaining items that were returned by dequeue, and unlock queue
- </summary>
+ <param name="dirtyString"></param>
<returns></returns>
</member>
- <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SequentialData`1.DoneProcessedWorkItem">
- <summary>
- indicate that an item has been processed by the caller
- </summary>
- </member>
- <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SequentialData`1.UpdateNextUnprocessed(`0)">
- <summary>
- Update first unprocessed work item
- </summary>
- <param name="newWorkItem"></param>
- </member>
- <member name="T:ServiceStack.Redis.ShardedConnectionPool">
- <summary>
- Provides a redis connection pool that can be sharded
- </summary>
- </member>
- <member name="F:ServiceStack.Redis.ShardedConnectionPool.name">
- <summary>
- logical name
- </summary>
- </member>
- <member name="F:ServiceStack.Redis.ShardedConnectionPool.weight">
- <summary>
- An arbitrary weight relative to other nodes
- </summary>
- </member>
- <member name="M:ServiceStack.Redis.ShardedConnectionPool.#ctor(System.String,System.Int32,System.String[])">
- <param name="name">logical name</param>
- <param name="weight">An arbitrary weight relative to other nodes</param>
- <param name="readWriteHosts">redis nodes</param>
- </member>
- <member name="T:ServiceStack.Redis.ShardedRedisClientManager">
- <summary>
- Provides sharding of redis client connections.
- uses consistent hashing to distribute keys across connection pools
- </summary>
- </member>
- <member name="M:ServiceStack.Redis.ShardedRedisClientManager.GetConnectionPool(System.String)">
- <summary>
- maps a key to a redis connection pool
- </summary>
- <param name="key">key to map</param>
- <returns>a redis connection pool</returns>
- </member>
- <member name="T:ServiceStack.Redis.Support.Queue.Implementation.RedisSimpleWorkQueue`1">
- <summary>
- simple distributed work item queue
-
-
- </summary>
- </member>
- <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisSimpleWorkQueue`1.Enqueue(`0)">
- <summary>
- Queue incoming messages
- </summary>
- <param name="msg"></param>
- </member>
- <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisSimpleWorkQueue`1.Dequeue(System.Int32)">
- <summary>
- Dequeue next batch of work items for processing. After this method is called,
- no other work items with same id will be available for
- dequeuing until PostDequeue is called
- </summary>
- <returns>KeyValuePair: key is work item id, and value is list of dequeued items.
- </returns>
- </member>
- <member name="T:ServiceStack.Redis.BufferPool">
- <summary>
- Courtesy of @marcgravell
- http://code.google.com/p/protobuf-net/source/browse/trunk/protobuf-net/BufferPool.cs
- </summary>
- </member>
- <member name="T:ServiceStack.Redis.RedisCacheClientFactory">
- <summary>
- Provide the factory implementation for creating a RedisCacheClient that
- can be mocked and used by different 'Redis Client Managers'
- </summary>
- </member>
- <member name="T:ServiceStack.Redis.Messaging.RedisMqHost">
- <summary>
- Creates an MQ Host that processes all messages on a single background thread.
- i.e. If you register 3 handlers it will only create 1 background thread.
-
- The same background thread that listens to the Redis MQ Subscription for new messages
- also cycles through each registered handler processing all pending messages one-at-a-time:
- first in the message PriorityQ, then in the normal message InQ.
-
- The Start/Stop methods are idempotent i.e. It's safe to call them repeatedly on multiple threads
- and the Redis MQ Host will only have Started/Stopped once.
- </summary>
- </member>
- <member name="P:ServiceStack.Redis.Messaging.RedisMqHost.ReplyClientFactory">
+ <member name="P:ServiceStack.Redis.Support.RedisNamespace.LockingStrategy">
<summary>
- Inject your own Reply Client Factory to handle custom Message.ReplyTo urls.
+ get locking strategy
</summary>
</member>
</members>
View
BIN  lib/ServiceStack.Redis.dll
Binary file not shown
View
437 lib/ServiceStack.Text.XML
@@ -4,123 +4,58 @@
<name>ServiceStack.Text</name>
</assembly>
<members>
- <member name="M:ServiceStack.Text.ITypeSerializer`1.CanCreateFromString(System.Type)">
- <summary>
- Determines whether this serializer can create the specified type from a string.
- </summary>
- <param name="type">The type.</param>
- <returns>
- <c>true</c> if this instance [can create from string] the specified type; otherwise, <c>false</c>.
- </returns>
- </member>
- <member name="M:ServiceStack.Text.ITypeSerializer`1.DeserializeFromString(System.String)">
+ <member name="T:ServiceStack.Text.AssemblyUtils">
<summary>
- Parses the specified value.
+ Utils to load types
</summary>
- <param name="value">The value.</param>
- <returns></returns>
</member>
- <member name="M:ServiceStack.Text.ITypeSerializer`1.DeserializeFromReader(System.IO.TextReader)">
+ <member name="M:ServiceStack.Text.AssemblyUtils.FindType(System.String)">
<summary>
- Deserializes from reader.
+ Find the type from the name supplied
</summary>
- <param name="reader">The reader.</param>
+ <param name="typeName">[typeName] or [typeName, assemblyName]</param>
<returns></returns>
</member>
- <member name="M:ServiceStack.Text.ITypeSerializer`1.SerializeToString(`0)">
+ <member name="M:ServiceStack.Text.AssemblyUtils.MainInterface``1">
<summary>
- Serializes to string.
+ The top-most interface of the given type, if any.
</summary>
- <param name="value">The value.</param>
- <returns></returns>
</member>
- <member name="M:ServiceStack.Text.ITypeSerializer`1.SerializeToWriter(`0,System.IO.TextWriter)">
+ <member name="M:ServiceStack.Text.AssemblyUtils.FindType(System.String,System.String)">
<summary>
- Serializes to writer.
+ Find type if it exists
</summary>
- <param name="value">The value.</param>
- <param name="writer">The writer.</param>
+ <param name="typeName"></param>
+ <param name="assemblyName"></param>
+ <returns>The type if it exists</returns>
</member>
- <member name="M:ServiceStack.Text.JsonSerializer`1.DeserializeFromString(System.String)">
+ <member name="M:ServiceStack.Text.Common.DateTimeSerializer.Prepare(System.DateTime)">
<summary>
- Parses the specified value.
+ If AlwaysUseUtc is set to true then convert all DateTime to UTC.
</summary>
- <param name="value">The value.</param>
+ <param name="dateTime"></param>
<returns></returns>
</member>
- <member name="T:ServiceStack.Text.Support.DoubleConverter">
- <summary>
- A class to allow the conversion of doubles to string representations of
- their exact decimal values. The implementation aims for readability over
- efficiency.
-
- Courtesy of @JonSkeet
- http://www.yoda.arachsys.com/csharp/DoubleConverter.cs
- </summary>
- </member>
- <!-- Badly formed XML comment ignored for member "M:ServiceStack.Text.Support.DoubleConverter.ToExactString(System.Double)" -->
- <!-- Badly formed XML comment ignored for member "T:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal" -->
- <!-- Badly formed XML comment ignored for member "F:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.digits" -->
- <member name="F:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.decimalPoint">
- <summary>
- How many digits are *after* the decimal point
- </summary>
- </member>
- <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.#ctor(System.Int64)">
- <summary>
- Constructs an arbitrary decimal expansion from the given long.
- The long must not be negative.
- </summary>
- </member>
- <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.MultiplyBy(System.Int32)">
- <summary>
- Multiplies the current expansion by the given amount, which should
- only be 2 or 5.
- </summary>
- </member>
- <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.Shift(System.Int32)">
- <summary>
- Shifts the decimal point; a negative value makes
- the decimal expansion bigger (as fewer digits come after the
- decimal place) and a positive value makes the decimal
- expansion smaller.
- </summary>
- </member>
- <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.Normalize">
- <summary>
- Removes leading/trailing zeroes from the expansion.
- </summary>
- </member>
- <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.ToString">
- <summary>
- Converts the value to a proper decimal string representation.
- </summary>
- </member>
- <member name="T:ServiceStack.Text.Json.JsonWriter`1">
- <summary>
- Implement the serializer using a more static approach
- </summary>
- <typeparam name="T"></typeparam>
- </member>
- <member name="T:ServiceStack.Text.Marc.Link`2">
+ <member name="M:ServiceStack.Text.Common.DateTimeSerializer.ParseWcfJsonDateOffset(System.String)">
<summary>
- Pretty Thread-Safe cache class from:
- http://code.google.com/p/dapper-dot-net/source/browse/Dapper/SqlMapper.cs
-
- This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example),
- and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE**
- equality. The type is fully thread-safe.
+ WCF Json format: /Date(unixts+0000)/
</summary>
+ <param name="wcfJsonDate"></param>
+ <returns></returns>
</member>
- <member name="T:ServiceStack.Text.DateTimeExtensions">
+ <member name="M:ServiceStack.Text.Common.DateTimeSerializer.ParseWcfJsonDate(System.String)">
<summary>
- A fast, standards-based, serialization-issue free DateTime serailizer.
+ WCF Json format: /Date(unixts+0000)/
</summary>
+ <param name="wcfJsonDate"></param>
+ <returns></returns>
</member>
- <member name="T:ServiceStack.Text.JsonSerializer">
+ <member name="M:ServiceStack.Text.Common.DeserializeTypeUtils.GetTypeStringConstructor(System.Type)">
<summary>
- Creates an instance of a Type from a string value
+ Get the type(string) constructor if exists
</summary>
+ <param name="type">The type.</param>
+ <returns></returns>
</member>
<member name="M:ServiceStack.Text.Common.JsWriter.HasAnyEscapeChars(System.String)">
<summary>
@@ -129,53 +64,58 @@
<param name="value"></param>
<returns></returns>
</member>
- <member name="M:ServiceStack.Text.Common.DeserializeTypeUtils.GetTypeStringConstructor(System.Type)">
- <summary>
- Get the type(string) constructor if exists
- </summary>
- <param name="type">The type.</param>
- <returns></returns>
- </member>
- <member name="T:ServiceStack.Text.QueryStringWriter`1">
+ <member name="T:ServiceStack.Text.Controller.PathInfo">
<summary>
- Implement the serializer using a more static approach
+ Class to hold
</summary>
- <typeparam name="T"></typeparam>
</member>
- <member name="T:ServiceStack.Text.FastMember.ObjectAccessor">
+ <!-- Badly formed XML comment ignored for member "M:ServiceStack.Text.Controller.PathInfo.Parse(System.String)" -->
+ <member name="T:ServiceStack.Text.DateTimeExtensions">
<summary>
- Represents an individual object, allowing access to members by-name
+ A fast, standards-based, serialization-issue free DateTime serailizer.
</summary>
</member>
- <member name="M:ServiceStack.Text.FastMember.ObjectAccessor.Equals(System.Object)">
+ <member name="T:ServiceStack.Text.WP.HashSet`1">
<summary>
- Use the target types definition of equality
+ A hashset implementation that uses an IDictionary
</summary>
</member>
- <member name="M:ServiceStack.Text.FastMember.ObjectAccessor.GetHashCode">
+ <member name="M:ServiceStack.Text.ITypeSerializer`1.CanCreateFromString(System.Type)">
<summary>
- Obtain the hash of the target object
+ Determines whether this serializer can create the specified type from a string.
</summary>
+ <param name="type">The type.</param>
+ <returns>
+ <c>true</c> if this instance [can create from string] the specified type; otherwise, <c>false</c>.
+ </returns>
</member>
- <member name="M:ServiceStack.Text.FastMember.ObjectAccessor.ToString">
+ <member name="M:ServiceStack.Text.ITypeSerializer`1.DeserializeFromString(System.String)">
<summary>
- Use the target's definition of a string representation
+ Parses the specified value.
</summary>
+ <param name="value">The value.</param>
+ <returns></returns>
</member>
- <member name="M:ServiceStack.Text.FastMember.ObjectAccessor.Create(System.Object)">
+ <member name="M:ServiceStack.Text.ITypeSerializer`1.DeserializeFromReader(System.IO.TextReader)">
<summary>
- Wraps an individual object, allowing by-name access to that instance
+ Deserializes from reader.
</summary>
+ <param name="reader">The reader.</param>
+ <returns></returns>
</member>
- <member name="P:ServiceStack.Text.FastMember.ObjectAccessor.Item(System.String)">
+ <member name="M:ServiceStack.Text.ITypeSerializer`1.SerializeToString(`0)">
<summary>
- Get or Set the value of a named member for the underlying object
+ Serializes to string.
</summary>
+ <param name="value">The value.</param>
+ <returns></returns>
</member>
- <member name="P:ServiceStack.Text.FastMember.ObjectAccessor.Target">
+ <member name="M:ServiceStack.Text.ITypeSerializer`1.SerializeToWriter(`0,System.IO.TextWriter)">
<summary>
- The object represented by this instance
+ Serializes to writer.
</summary>
+ <param name="value">The value.</param>
+ <param name="writer">The writer.</param>
</member>
<member name="F:ServiceStack.Text.JsConfig.sTimeSpanHandler">
<summary>
@@ -213,6 +153,11 @@
Gets or sets a value indicating if the framework should always convert <see cref="T:System.DateTime"/> to UTC format instead of local time.
</summary>
</member>
+ <member name="F:ServiceStack.Text.JsConfig.sEscapeUnicode">
+ <summary>
+ Gets or sets a value indicating if unicode symbols should be serialized as "\uXXXX".
+ </summary>
+ </member>
<member name="F:ServiceStack.Text.JsConfig.sIncludePublicFields">
<summary>
If set to true, Interface types will be prefered over concrete types when serializing.
@@ -308,61 +253,47 @@
Uses the standard .net ToString method of the TimeSpan class
</summary>
</member>
- <member name="T:ServiceStack.Text.TypeSerializer">
- <summary>
- Creates an instance of a Type from a string value
- </summary>
- </member>
- <member name="M:ServiceStack.Text.TypeSerializer.CanCreateFromString(System.Type)">
+ <member name="M:ServiceStack.Text.JsonExtensions.Get``1(System.Collections.Generic.Dictionary{System.String,System.String},System.String)">
<summary>
- Determines whether the specified type is convertible from string.
+ Get JSON string value converted to T
</summary>
- <param name="type">The type.</param>
- <returns>
- <c>true</c> if the specified type is convertible from string; otherwise, <c>false</c>.
- </returns>
</member>
- <member name="M:ServiceStack.Text.TypeSerializer.DeserializeFromString``1(System.String)">
+ <member name="M:ServiceStack.Text.JsonExtensions.Get(System.Collections.Generic.Dictionary{System.String,System.String},System.String)">
<summary>
- Parses the specified value.
+ Get JSON string value
</summary>
- <param name="value">The value.</param>
- <returns></returns>
</member>
- <member name="M:ServiceStack.Text.TypeSerializer.DeserializeFromString(System.String,System.Type)">
+ <member name="M:ServiceStack.Text.JsonObject.GetUnescaped(System.String)">
<summary>
- Parses the specified type.
+ Get unescaped string value
</summary>
- <param name="type">The type.</param>
- <param name="value">The value.</param>
- <returns></returns>
</member>
- <member name="M:ServiceStack.Text.TypeSerializer.ToStringDictionary``1(``0)">
+ <member name="M:ServiceStack.Text.JsonObject.Child(System.String)">
<summary>
- Useful extension method to get the Dictionary[string,string] representation of any POCO type.
+ Get unescaped string value
</summary>
- <returns></returns>
</member>
- <member name="M:ServiceStack.Text.TypeSerializer.Dump``1(``0)">
+ <member name="M:ServiceStack.Text.JsonObject.WriteValue(System.IO.TextWriter,System.Object)">
<summary>
- Recursively prints the contents of any POCO object in a human-friendly, readable format
+ Write JSON Array, Object, bool or number values as raw string
</summary>
- <returns></returns>
</member>
- <member name="M:ServiceStack.Text.TypeSerializer.PrintDump``1(``0)">
+ <member name="P:ServiceStack.Text.JsonObject.Item(System.String)">
<summary>
- Print Dump to Console.WriteLine
+ Get JSON string value
</summary>
</member>
- <member name="M:ServiceStack.Text.TypeSerializer.Print(System.String,System.Object[])">
+ <member name="T:ServiceStack.Text.JsonSerializer">
<summary>
- Print string.Format to Console.WriteLine
+ Creates an instance of a Type from a string value
</summary>
</member>
- <member name="T:ServiceStack.Text.WP.HashSet`1">
+ <member name="M:ServiceStack.Text.JsonSerializer`1.DeserializeFromString(System.String)">
<summary>
- A hashset implementation that uses an IDictionary
+ Parses the specified value.
</summary>
+ <param name="value">The value.</param>
+ <returns></returns>
</member>
<member name="M:ServiceStack.Text.Json.JsonTypeSerializer.WriteRawString(System.IO.TextWriter,System.String)">
<summary>
@@ -379,42 +310,102 @@
<param name="utf32"></param>
<returns></returns>
</member>
- <member name="M:ServiceStack.Text.JsonExtensions.Get``1(System.Collections.Generic.Dictionary{System.String,System.String},System.String)">
+ <member name="M:ServiceStack.Text.Json.JsonUtils.HasAnyEscapeChars(System.String)">
<summary>
- Get JSON string value converted to T
+ micro optimizations: using flags instead of value.IndexOfAny(EscapeChars)
</summary>
+ <param name="value"></param>
+ <returns></returns>
</member>
- <member name="M:ServiceStack.Text.JsonExtensions.Get(System.Collections.Generic.Dictionary{System.String,System.String},System.String)">
+ <member name="T:ServiceStack.Text.Json.JsonWriter`1">
<summary>
- Get JSON string value
+ Implement the serializer using a more static approach
</summary>
+ <typeparam name="T"></typeparam>
</member>
- <member name="M:ServiceStack.Text.JsonObject.GetUnescaped(System.String)">
+ <member name="T:ServiceStack.Text.Jsv.JsvWriter`1">
<summary>
- Get unescaped string value
+ Implement the serializer using a more static approach
</summary>
+ <typeparam name="T"></typeparam>
</member>
- <member name="M:ServiceStack.Text.JsonObject.Child(System.String)">
+ <member name="T:ServiceStack.Text.Marc.Link`2">
<summary>
- Get unescaped string value
+ Pretty Thread-Safe cache class from:
+ http://code.google.com/p/dapper-dot-net/source/browse/Dapper/SqlMapper.cs
+
+ This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example),
+ and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE**
+ equality. The type is fully thread-safe.
</summary>
</member>
- <member name="M:ServiceStack.Text.JsonObject.WriteValue(System.IO.TextWriter,System.Object)">
+ <member name="T:ServiceStack.Text.FastMember.ObjectAccessor">
<summary>
- Write JSON Array, Object, bool or number values as raw string
+ Represents an individual object, allowing access to members by-name
</summary>
</member>
- <member name="P:ServiceStack.Text.JsonObject.Item(System.String)">
+ <member name="M:ServiceStack.Text.FastMember.ObjectAccessor.Equals(System.Object)">
<summary>
- Get JSON string value
+ Use the target types definition of equality
</summary>
</member>
- <member name="T:ServiceStack.Text.Controller.PathInfo">
+ <member name="M:ServiceStack.Text.FastMember.ObjectAccessor.GetHashCode">
<summary>
- Class to hold
+ Obtain the hash of the target object
</summary>
</member>
- <!-- Badly formed XML comment ignored for member "M:ServiceStack.Text.Controller.PathInfo.Parse(System.String)" -->
+ <member name="M:ServiceStack.Text.FastMember.ObjectAccessor.ToString">
+ <summary>
+ Use the target's definition of a string representation
+ </summary>
+ </member>
+ <member name="M:ServiceStack.Text.FastMember.ObjectAccessor.Create(System.Object)">
+ <summary>
+ Wraps an individual object, allowing by-name access to that instance
+ </summary>
+ </member>
+ <member name="P:ServiceStack.Text.FastMember.ObjectAccessor.Item(System.String)">
+ <summary>
+ Get or Set the value of a named member for the underlying object
+ </summary>
+ </member>
+ <member name="P:ServiceStack.Text.FastMember.ObjectAccessor.Target">
+ <summary>
+ The object represented by this instance
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Text.FastMember.TypeAccessor">
+ <summary>
+ Provides by-name member-access to objects of a given type
+ </summary>
+ </member>
+ <member name="M:ServiceStack.Text.FastMember.TypeAccessor.CreateNew">
+ <summary>
+ Create a new instance of this type
+ </summary>
+ </member>
+ <member name="M:ServiceStack.Text.FastMember.TypeAccessor.Create(System.Type)">
+ <summary>
+ Provides a type-specific accessor, allowing by-name access for all objects of that type
+ </summary>
+ <remarks>The accessor is cached internally; a pre-existing accessor may be returned</remarks>
+ </member>
+ <member name="P:ServiceStack.Text.FastMember.TypeAccessor.CreateNewSupported">
+ <summary>
+ Does this type support new instances via a parameterless constructor?
+ </summary>
+ </member>
+ <member name="P:ServiceStack.Text.FastMember.TypeAccessor.Item(System.Object,System.String)">
+ <summary>
+ Get or set the value of a named member on the target instance
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Text.QueryStringWriter`1">
+ <summary>
+ Implement the serializer using a more static approach
+ </summary>
+ <typeparam name="T"></typeparam>
+ </member>
<member name="F:ServiceStack.Text.StreamExtensions.DefaultBufferSize">
<summary>
@jonskeet: Collection of utility methods which operate on streams.
@@ -488,31 +479,6 @@
Same as ReadExactly, but without the argument checks.
</summary>
</member>
- <member name="T:ServiceStack.Text.AssemblyUtils">
- <summary>
- Utils to load types
- </summary>
- </member>
- <member name="M:ServiceStack.Text.AssemblyUtils.FindType(System.String)">
- <summary>
- Find the type from the name supplied
- </summary>
- <param name="typeName">[typeName] or [typeName, assemblyName]</param>
- <returns></returns>
- </member>
- <member name="M:ServiceStack.Text.AssemblyUtils.MainInterface``1">
- <summary>
- The top-most interface of the given type, if any.
- </summary>
- </member>
- <member name="M:ServiceStack.Text.AssemblyUtils.FindType(System.String,System.String)">
- <summary>
- Find type if it exists
- </summary>
- <param name="typeName"></param>
- <param name="assemblyName"></param>
- <returns>The type if it exists</returns>
- </member>
<member name="M:ServiceStack.Text.StringExtensions.BaseConvert(System.String,System.Int32,System.Int32)">
<summary>
Converts from base: 0 - 62
@@ -529,71 +495,110 @@
<param name="strVal"></param>
<returns></returns>
</member>
- <member name="T:ServiceStack.Text.FastMember.TypeAccessor">
+ <member name="T:ServiceStack.Text.Support.DoubleConverter">
<summary>
- Provides by-name member-access to objects of a given type
+ A class to allow the conversion of doubles to string representations of
+ their exact decimal values. The implementation aims for readability over
+ efficiency.
+
+ Courtesy of @JonSkeet
+ http://www.yoda.arachsys.com/csharp/DoubleConverter.cs
</summary>
</member>
- <member name="M:ServiceStack.Text.FastMember.TypeAccessor.CreateNew">
+ <!-- Badly formed XML comment ignored for member "M:ServiceStack.Text.Support.DoubleConverter.ToExactString(System.Double)" -->
+ <!-- Badly formed XML comment ignored for member "T:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal" -->
+ <!-- Badly formed XML comment ignored for member "F:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.digits" -->
+ <member name="F:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.decimalPoint">
+ <summary>
+ How many digits are *after* the decimal point
+ </summary>
+ </member>
+ <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.#ctor(System.Int64)">
+ <summary>
+ Constructs an arbitrary decimal expansion from the given long.
+ The long must not be negative.
+ </summary>
+ </member>
+ <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.MultiplyBy(System.Int32)">
<summary>
- Create a new instance of this type
+ Multiplies the current expansion by the given amount, which should
+ only be 2 or 5.
</summary>
</member>
- <member name="M:ServiceStack.Text.FastMember.TypeAccessor.Create(System.Type)">
+ <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.Shift(System.Int32)">
<summary>
- Provides a type-specific accessor, allowing by-name access for all objects of that type
+ Shifts the decimal point; a negative value makes
+ the decimal expansion bigger (as fewer digits come after the
+ decimal place) and a positive value makes the decimal
+ expansion smaller.
</summary>
- <remarks>The accessor is cached internally; a pre-existing accessor may be returned</remarks>
</member>
- <member name="P:ServiceStack.Text.FastMember.TypeAccessor.CreateNewSupported">
+ <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.Normalize">
<summary>
- Does this type support new instances via a parameterless constructor?
+ Removes leading/trailing zeroes from the expansion.
</summary>
</member>
- <member name="P:ServiceStack.Text.FastMember.TypeAccessor.Item(System.Object,System.String)">
+ <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.ToString">
<summary>
- Get or set the value of a named member on the target instance
+ Converts the value to a proper decimal string representation.
</summary>
</member>
- <member name="T:ServiceStack.Text.Jsv.JsvWriter`1">
+ <member name="T:ServiceStack.Text.TypeSerializer">
<summary>
- Implement the serializer using a more static approach
+ Creates an instance of a Type from a string value
</summary>
- <typeparam name="T"></typeparam>
</member>
- <member name="M:ServiceStack.Text.Json.JsonUtils.HasAnyEscapeChars(System.String)">
+ <member name="M:ServiceStack.Text.TypeSerializer.CanCreateFromString(System.Type)">
<summary>
- micro optimizations: using flags instead of value.IndexOfAny(EscapeChars)
+ Determines whether the specified type is convertible from string.
</summary>
- <param name="value"></param>
- <returns></returns>
+ <param name="type">The type.</param>
+ <returns>
+ <c>true</c> if the specified type is convertible from string; otherwise, <c>false</c>.
+ </returns>
</member>
- <member name="M:ServiceStack.Text.TypeSerializer`1.DeserializeFromString(System.String)">
+ <member name="M:ServiceStack.Text.TypeSerializer.DeserializeFromString``1(System.String)">
<summary>
Parses the specified value.
</summary>
<param name="value">The value.</param>
<returns></returns>
</member>
- <member name="M:ServiceStack.Text.Common.DateTimeSerializer.Prepare(System.DateTime)">
+ <member name="M:ServiceStack.Text.TypeSerializer.DeserializeFromString(System.String,System.Type)">
<summary>
- If AlwaysUseUtc is set to true then convert all DateTime to UTC.
+ Parses the specified type.
</summary>
- <param name="dateTime"></param>
+ <param name="type">The type.</param>
+ <param name="value">The value.</param>
<returns></returns>
</member>
- <member name="M:ServiceStack.Text.Common.DateTimeSerializer.ParseWcfJsonDateOffset(System.String)">
+ <member name="M:ServiceStack.Text.TypeSerializer.ToStringDictionary``1(``0)">
<summary>
- WCF Json format: /Date(unixts+0000)/
+ Useful extension method to get the Dictionary[string,string] representation of any POCO type.
</summary>
- <param name="wcfJsonDate"></param>
<returns></returns>
</member>
- <member name="M:ServiceStack.Text.Common.DateTimeSerializer.ParseWcfJsonDate(System.String)">
+ <member name="M:ServiceStack.Text.TypeSerializer.Dump``1(``0)">
<summary>
- WCF Json format: /Date(unixts+0000)/
+ Recursively prints the contents of any POCO object in a human-friendly, readable format
</summary>
- <param name="wcfJsonDate"></param>
+ <returns></returns>
+ </member>
+ <member name="M:ServiceStack.Text.TypeSerializer.PrintDump``1(``0)">
+ <summary>
+ Print Dump to Console.WriteLine
+ </summary>
+ </member>
+ <member name="M:ServiceStack.Text.TypeSerializer.Print(System.String,System.Object[])">
+ <summary>
+ Print string.Format to Console.WriteLine
+ </summary>
+ </member>
+ <member name="M:ServiceStack.Text.TypeSerializer`1.DeserializeFromString(System.String)">
+ <summary>
+ Parses the specified value.
+ </summary>
+ <param name="value">The value.</param>
<returns></returns>
</member>
</members>
View
BIN  lib/ServiceStack.Text.dll
Binary file not shown
View
145 src/ServiceStack.Common/ServiceClient.Web/WebRequestExtensions.cs
@@ -14,151 +14,6 @@ public static class WebRequestExtensions
{
private static readonly ILog Log = LogManager.GetLogger(typeof (WebRequestExtensions));
- public static string DownloadJsonFromUrl(this string url)
- {
- return url.DownloadUrl(acceptContentType: ContentType.Json);
- }
-
- public static string DownloadXmlFromUrl(this string url)
- {
- return url.DownloadUrl(acceptContentType: ContentType.Xml);
- }
-
- public static string DownloadCsvFromUrl(this string url)
- {
- return url.DownloadUrl(acceptContentType: ContentType.Csv);
- }
-
- public static string DownloadUrl(this string url,
- string httpMethod = null,
- string postData = null,
- string contentType = null,
- string acceptContentType = null,
- Action<HttpWebRequest> requestFilter = null,
- Action<HttpWebResponse> responseFilter = null)
- {
- var bytesRequest = postData != null ? postData.ToUtf8Bytes() : null;
-
- var bytesResponse = DownloadBytesFromUrl(url, httpMethod,
- bytesRequest, contentType, acceptContentType, requestFilter, responseFilter);
-
- var text = bytesResponse.FromUtf8Bytes();
- return text;
- }
-
- public static string DownloadUrl(this string url, Encoding encoding,
- string httpMethod = null,
- string postData = null,
- string contentType = null,
- string acceptContentType = null,
- Action<HttpWebRequest> requestFilter = null,
- Action<HttpWebResponse> responseFilter = null)
- {
- if (encoding == null)
- encoding = Encoding.UTF8;
-
- var bytesRequest = postData != null ? encoding.GetBytes(postData) : null;
-
- var bytesResponse = DownloadBytesFromUrl(url, httpMethod,
- bytesRequest, contentType, acceptContentType, requestFilter, responseFilter);
-
- var text = encoding.GetString(bytesResponse);
- return text;
- }
-
- public static byte[] DownloadBytesFromUrl(this string url,
- string httpMethod = null,
- byte[] postData = null,
- string contentType = null,
- string acceptContentType = null,
- Action<HttpWebRequest> requestFilter = null,
- Action<HttpWebResponse> responseFilter = null)
- {
- var webReq = (HttpWebRequest)WebRequest.Create(url);
- if (httpMethod != null)
- webReq.Method = httpMethod;
- if (contentType != null)
- webReq.ContentType = contentType;
- if (acceptContentType != null)
- webReq.Accept = acceptContentType;
- if (requestFilter != null)
- requestFilter(webReq);
-
- try
- {
- if (postData != null)
- {
- using (var req = webReq.GetRequestStream())
- req.Write(postData, 0, postData.Length);
- }
- }
- catch (Exception ex)
- {
- Log.Error("Error sending Request: " + ex.Message, ex);
- throw;
- }
-
- using (var webRes = webReq.GetResponse())
- {
- if (responseFilter != null)
- responseFilter((HttpWebResponse)webRes);
-