Example #1
0
 /// <summary>
 /// Create a new instance of the <see cref="Op"/> class that represents a GetSubtree operation.
 /// </summary>
 /// <param name="path">Path to get the subtree of.</param>
 /// <param name="retrievalCondition">Request retreival condition.</param>
 /// <param name="options">Request options.</param>
 /// <returns>A GetSubtree operation.</returns>
 public static Op GetSubtree(string path, string retrievalCondition, RequestGetSubtree.GetSubtreeOptions options)
 {
     return(new Op(OpCode.GetSubtree, new RequestGetSubtree(path, retrievalCondition, options)));
 }
Example #2
0
        /// <summary>
        /// Gets the subtree under a given path.
        /// </summary>
        /// <param name="ringMaster">Interface to RingMaster.</param>
        /// <param name="path">The path to get the subtree of.</param>
        /// <param name="retrievalCondition">Request retrieval condition of the form >:[Top]:[ContinuationPath]</param>
        /// <param name="options">Request options.</param>
        /// <returns>Task that will resolve on success to the root of the subtree under the given path.</returns>
        public static async Task <ResponseGetSubtree> GetSubtree(this IRingMasterRequestHandler ringMaster, string path, string retrievalCondition, RequestGetSubtree.GetSubtreeOptions options = RequestGetSubtree.GetSubtreeOptions.None)
        {
            RequestResponse response = await ringMaster.Request(new RequestGetSubtree(path, retrievalCondition, options));

            ThrowIfError(response);

            var treeNodeData = TreeNode.Deserialize((byte[])response.Content);

            return(new ResponseGetSubtree(treeNodeData, response.ResponsePath));
        }