/// <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))); }
/// <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)); }