NCBC-253: Raise exception on FlushAll when called on CouchbaseNode

Change-Id: I910a9f903af65ccbb0a3656873ca1d6f4bb4c12d
Reviewed-on: http://review.couchbase.org/26268
Reviewed-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
Tested-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
NCBC-265: Refactor solution to include directly the Enyim dependencies

The Enyim.Caching submodule has been removed, and the
Enyim projects have been moved into the couchbase-net-client
source structure.  Appropriate 4.0 and 3.5 versions exist
for each of the Enyim projects.

Solution references have been updated, and NuGet dependencies
are now set to download when the project is built, rather
than being stored in the repository.

Change-Id: I6e137d30ac18284a7168a7633c4f86af1d86cf39
Reviewed-on: http://review.couchbase.org/26411
Reviewed-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
Tested-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
NCBC-275: Modify Nunit tests to allow for execution in single node environment.

Change-Id: Ib4a95b1f70f7d248fa0bfbff22ebb7199a3187d7
Reviewed-on: http://review.couchbase.org/26997
Reviewed-by: Mordechai Nunberg <mnunberg@haskalah.org>
Reviewed-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
Tested-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
NCBC-278: Lock WebClient when getting WebRequest

WebClient is not thread safe

Change-Id: I92e6aa78d58a37ee41e02d516a836defc17efa6f
Reviewed-on: http://review.couchbase.org/27355
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Reviewed-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
Tested-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
Don't return response.OutputStream if response is null

Throw an 'InvalidOperationException' instead

Change-Id: If8830abc67849f61f60320f32c3c51ccf9e8fc6e
Reviewed-on: http://review.couchbase.org/27358
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Reviewed-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
Tested-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
NCBC-174: Fix invalid tests in NUnit project

CouchbaseClientViewNameTransformerTests are failing because of incorrect bucket name

Change-Id: I4067f445dcb4a3ee10cf700a8faeead63cc98881
Reviewed-on: http://review.couchbase.org/27312
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Reviewed-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
Tested-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
NCBC-283-Fix failing tests for 2.1.1-763

Change-Id: I796a4879c8388fab2dd6a8d5c1d255056c911744
Reviewed-on: http://review.couchbase.org/27707
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Reviewed-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
Tested-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
Readme updates

Provided more info about links to forums and documentation etc. as well
as removed outdated info about linked repository to get started.

Change-Id: I3ec550d05e59de090b3d8d5c9896dea0687b3b7b
Reviewed-on: http://review.couchbase.org/27805
Reviewed-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
Tested-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
Updated dependencies to 1.2.7.

Change-Id: Id4f594b6d42c474d7dd3b8672e5c001d681a173c
Reviewed-on: http://review.couchbase.org/28104
Reviewed-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
Tested-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
NCBC-250: Fix the test : CouchbaseAuthenticatedViewTests\When_Bucket_Is_Authenticated_View_Returns_Results# Please enter the commit message for your changes. Lines starting

Change-Id: Ibd27434bf5c760fa8d1aa5702e9fd23e7f407270
Reviewed-on: http://review.couchbase.org/28735
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Matt Ingenthron <matt@couchbase.com>
NCBC-301 StatusCode improvements for client errors

I added a new enum StatusCode so that we have a consistent interface for
tracking the Status codes of operations. The current implentation returns
Integer values for these codes and does not include client side codes in cases
where the client fails before the operation is sent to the server. Besides the
standard binary memcached protocol status codes, I added another for socket
time outs.

Also, I have yet to write a unit test that consistently causes the socket
timeout to occur, thus I have omitted unit tests for this commit

Change-Id: I92d5d1fb95c11da7980bf580a06ce4eca005034d
Reviewed-on: http://review.couchbase.org/29175
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Matt Ingenthron <matt@couchbase.com>
NCBC-257: Refactored the Dispose/Finalize logic

The purpose is to ensure that objects that have been disposed,
do not live until finalization. From my testing, this allievates
the timeout and other socket errors that were occuring. I also
adding logging in all empty catch() blocks which should help
debugging.

Change-Id: Iaef5080ec7a7efdb0377df4392e4798e37071a53
Reviewed-on: http://review.couchbase.org/29197
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Matt Ingenthron <matt@couchbase.com>
NCBC-308: Key Exists does not release socket pool if not found

Change-Id: Id9f19887205b87aa6027ef20bb682c756fd807be
Reviewed-on: http://review.couchbase.org/29347
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Matt Ingenthron <matt@couchbase.com>
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
NCBC-299: Update Project References from Nuget to Local Project.

In the .NET solution in Github, the some of the projects are referencing
Nuget instead of the local projects within the solution. As a result,
when you pull the repo down you cannot step into the dependent code and
in some cases you need to disable features (such as logging) or you will
get a version mismatch error.

Change-Id: Ic9dc6bb82fd3fefc62f9b645ee1fc8a4a05bf162
Reviewed-on: http://review.couchbase.org/29990
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
NCBC-299: Fix project references.

The last commit for NCBC-299 has a couple of errors.  One is that some
subprojects reference NewtonsoftJSON and shouldn't.  Second is that one
of the projects references the wrong thing between 3.5/4.0.

Change-Id: Ie116feb16a3c112658693bb108174856fe652ca9
Reviewed-on: http://review.couchbase.org/30035
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
NCBC-310: Refactor Connection Pool

Refactored the CouchbaseNode class so that it depends upon a different
implmentation of the internal socket pool that utilizes a queue structure
instead of the stack based implmentation used by MemcachedClient. The
PooledSocket now has a new interface, IPooledSocket, with CouchbaseClient
and MemcachedClient having seperate implementations. Note that these
changes only impact CouchbaseClient instances - MemcachedClient instances
still use the older implementation. The benefits of this include: more
efficient resource allocation and management, elimination of threading
some issues related to race conditions and other re-entrency problems,
better structure and code organization, improved unit tests and
testability and overall extensibility of certain components: pools,
socket wrappers, etc.

Change-Id: I2348f60dc8c0b3304cba19753db08d9cd60e570f
Reviewed-on: http://review.couchbase.org/29832
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
NCBC-316: Allow GetJson to support the retrieval of arrays and lists

Adds support to the CouchbaseClientExtensions.GetJson(…) method to 
handle the deserialization of arrays and lists of objects and not 
just individual objects.

Change-Id: I69704b922c559265b736ca54c3eee32a6aef7d5e
Reviewed-on: http://review.couchbase.org/29746
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
NCBC-306: .NET GetJSON operation throws null reference exception

Add support for null values persisted for a key via the
CouchbaseClientExtensions.GetJson(…) method. This method will no 
longer thrown a NullReferenceException when the value store for a 
key is null and instead simply return null.

Change-Id: I345cb7e33b5e9f33ea22cb205de84475abf3d35d
Reviewed-on: http://review.couchbase.org/29840
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
NCBC-309: Move .NET API documentation from docs repo to auto-doc

This is the first step in the process - adding the xml comments to each method
declaration of the publc API. These will be used to generate the HTML API
reference. Note, that in a MVP fashion, I did the bare minimum documentation
for each method. In future releases, the documentation should be improved

Change-Id: I7ce1a5cf2f1e286c98f1925fd8cee5b0b8e68dcf
Reviewed-on: http://review.couchbase.org/29859
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
NCBC-317 Mark Sync operations as obsolete

Change-Id: I28b15eb2ee03681c1e29140742ab3e7bff1a39aa
Reviewed-on: http://review.couchbase.org/29750
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Matt Ingenthron <matt@couchbase.com>