{"size": 871, "ext": "js", "max_stars_repo_path": "js-lib/RequestProcessor.js", "max_stars_repo_name": "allblue-pl/js_ab-data", "max_stars_repo_stars_event_min_datetime": null, "max_stars_repo_stars_event_max_datetime": null, "max_issues_repo_path": "js-lib/RequestProcessor.js", "max_issues_repo_name": "allblue-pl/js_ab-data", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "js-lib/RequestProcessor.js", "max_forks_repo_name": "allblue-pl/js_ab-data", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": null, "max_issues_count": null, "max_forks_count": null, "avg_line_length": 20.2558139535, "max_line_length": 81, "alphanum_fraction": 0.6039035591}
'use strict';

const
    js0 = require('js0')
;

class RequestProcessor
{

    get device() {
        return this._device;
    }

    get scheme() {
        return this._scheme;
    }


    constructor(dataScheme, device)
    {
        js0.args(arguments, require('./scheme/DataScheme'), require('./Device'));

        this._scheme = dataScheme;
        this._device = device;
    }

    async processRequest_Async(requestName, actionName, actionArgs) {
        js0.args(arguments, 'string', 'string', js0.RawObject);

        let response = await this.processRequestBatch_Async([
            [ 'request', requestName, actionName, actionArgs ],
        ], {});

        if (response === null)
            return null;

        return response.request;
    }

    async processRequestBatch_Async(requests, args) { js0.virtual(this); }

}
module.exports = RequestProcessor;