/// <summary> /// Queries for object instances in the object model. /// </summary> /// <param name="query">Query parameters.</param> /// <returns>A lazy evaluated collection of object instances.</returns> public virtual void ProcessRecord(QueryBuilder query) { throw new NotImplementedException(); }
/// <summary> /// Creates a <see cref="System.Management.Automation.Job"/> object that performs a query against the wrapped object model. /// </summary> /// <param name="session">Remote session to query.</param> /// <param name="query">Query parameters.</param> /// <remarks> /// <para> /// This method shouldn't do any processing or interact with the remote session. /// Doing so will interfere with ThrottleLimit functionality. /// </para> /// <para> /// <see cref="Job.WriteObject" /> (and other methods returning job results) will block to support throttling and flow-control. /// Implementations of Job instance returned from this method should make sure that implementation-specific flow-control mechanism pauses further processing, /// until calls from <see cref="Job.WriteObject" /> (and other methods returning job results) return. /// </para> /// </remarks> internal abstract StartableJob CreateQueryJob(TSession session, QueryBuilder query);
/// <summary> /// Combines <see cref="ProcessRecord(QueryBuilder)"/> and <see cref="ProcessRecord(TObjectInstance,Microsoft.PowerShell.Cmdletization.MethodInvocationInfo,bool)"/>. /// </summary> /// <param name="query">Query parameters.</param> /// <param name="methodInvocationInfo">Method invocation details.</param> /// <param name="passThru"><see langword="true"/> if successful method invocations should emit downstream the object instance being operated on.</param> public virtual void ProcessRecord(QueryBuilder query, MethodInvocationInfo methodInvocationInfo, bool passThru) { throw new NotImplementedException(); }