Table of Contents

IGQIDataSource interface

Definition

  • Namespace: Skyline.DataMiner.Analytics.GenericInterface
  • Assembly: SLAnalyticsTypes.dll

Implementing this interface marks the class as a GQI data source.

Note

The IGQIDataSource interface is the only required interface to identify a class as a GQI data source.

Methods

GQIColumn[] GetColumns()

Defines the columns of the data source.

Tip

Learn more about when this method is called within an ad hoc data source.

Returns

The columns available in the data source.

GQIPage GetNextPage(GetNextPageInputArgs args)

Retrieves the next page of data from the data source.

Tip

Learn more about when this method is called within an ad hoc data source.

Returns

A GQIPage with the data.

Tip

In numerous scenarios, not all data is required immediately to generate a query result. Therefore, partitioning rows into separate pages proves beneficial, allowing individual pages to be requested and processed as needed. This approach enhances both speed and memory efficiency.

Examples

Paged data retrieval

The following example illustrates how the HasNextPage property can be used to indicate that there are additional pages. If HasNextPage is set to true, GQI may call GetNextPage again when more data is needed.

private int pageCounter = 0;
private int pageSize = 100;

public GQIPage GetNextPage(GetNextPageInputArgs args)
{
    var rows = FetchPagedData(pageCounter);
    pageCounter++;

    // If a full page is retrieved, we assume there is more data
    var hasNextPage = rows.Length == pageSize;
    return new GQIPage(rows)
    {
        HasNextPage = hasNextPage,
    };
}

private GQIRow[] FetchPagedData(int pageNumber)
{
    // Fetch page 'pageNumber' containing at most 'pageSize' rows
}