RASCSI/src/raspberrypi/rascsi_response.h
Uwe Seimet b319d72601 Squashed commit of the following:
commit 0ab4918c5a59f978f48cf26f431ff809e9ddae33
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Mon Dec 20 16:52:03 2021 +0100

    Scan depth determines availability of folder filter

commit 16590cc4e4420a348fae610d749082c9d718be0a
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Mon Dec 20 15:47:08 2021 +0100

    Updated operation count check

commit 82f7c99755f535a7a5c30fe66e377705c5306faa
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Mon Dec 20 15:41:32 2021 +0100

    Only restrict shutdown parameters, not everything if not root

commit 9bd50d37b11c48b2130e4f6e66d12def88ddc38f
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Mon Dec 20 15:28:08 2021 +0100

    Shutdown functionality is only available if started with root permissions

commit aa5f3331abf4c178e8ce738c14fd584bd41d1b94
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Mon Dec 20 10:26:14 2021 +0100

    Squashed commit of the following:

    commit 4ae273ccbd
    Author: akuker <34318535+akuker@users.noreply.github.com>
    Date:   Sun Dec 19 22:30:22 2021 -0600

        Loopback tester pcb (#545)

    commit 46c5c1966f
    Author: akuker <34318535+akuker@users.noreply.github.com>
    Date:   Sun Dec 19 22:29:59 2021 -0600

        RaSCSI Zero version 1.0 (#546)

    commit d09df31d67
    Author: Daniel Markstedt <markstedt@gmail.com>
    Date:   Sun Dec 19 20:25:23 2021 -0800

        Remove redundant code from OLED script (#547)

    commit d8828da690
    Author: akuker <34318535+akuker@users.noreply.github.com>
    Date:   Sun Dec 19 21:02:50 2021 -0600

        Added list of sponsors

    commit bcd7e8396d
    Author: Daniel Markstedt <markstedt@gmail.com>
    Date:   Sun Dec 19 15:51:45 2021 -0800

        Second attempt at properly creating the manpage dir (#542)

    commit c887edfc8c
    Author: Daniel Markstedt <markstedt@gmail.com>
    Date:   Sun Dec 19 15:50:03 2021 -0800

        Remove special elevated privileges for the Web Interface (#536)

        * Use the pi_shutdown method to restart the rascsi service

        * Use the pi_shutdown method to restart the rascsi service

        * Remove modifications to sudoers no longer needed

        * Introduce sleeps attempting to connect to socket; reduce overall number of retries

        * Remove systemd helped methods and the functionality that depends on it

        * Attempts to speed up splash code

        * Remove unneccessary verbosity

        * Attempt to optimize service definition

    commit 801aebfb96
    Author: Daniel Markstedt <markstedt@gmail.com>
    Date:   Sun Dec 19 15:47:22 2021 -0800

        More readable message when downloading a file (#531)

    commit 29cf58288f
    Author: Daniel Markstedt <markstedt@gmail.com>
    Date:   Sun Dec 19 15:47:03 2021 -0800

        Add a warning notice when ejecting removable media (#526)

    commit 7efa895239
    Author: Daniel Markstedt <markstedt@gmail.com>
    Date:   Sun Dec 19 15:46:22 2021 -0800

        Unzip zipfiles before storing to iso (#525)

        * Unzip zipfiles before storing to iso

        * Add helptext

        * Skip unzip for MacZip format

        * Should not be an fstring

    commit 39bc485671
    Author: Daniel Markstedt <markstedt@gmail.com>
    Date:   Sun Dec 19 15:28:22 2021 -0800

        Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523)

        * Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies

        * Cleanup

commit a1f4b28f92bd9f7cdba18c04f61d3721fc7c720f
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 21:50:15 2021 +0100

    Comment update

commit 9cbc06caf5f00ce85e0f7f984c871ed614e2e483
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 21:49:09 2021 +0100

    Option update

commit c4aa39c2285c5c72e2ea28ad749f5670dd10e89f
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 21:46:37 2021 +0100

    Merged feature_folder_filter

commit ea386fc74c
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 19:05:07 2021 +0100

    Code cleanup

commit 17c3201135
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 19:03:13 2021 +0100

    Removed duplicate code

commit 296f816dd3
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 18:40:49 2021 +0100

    Logging update

commit 73e0df8557
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 17:28:02 2021 +0100

    Code cleanup

commit 405dbb034c
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 17:13:40 2021 +0100

    Removed duplicate cod3

commit c7c168a942
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 17:08:02 2021 +0100

    Added missing condition

commit 6af5394f78
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 16:16:12 2021 +0100

    Updated assertion handling

commit 632fe1acd8
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 14:33:01 2021 +0100

    Updated handling of mandatory parameters

commit a4e0d506c6
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 14:14:09 2021 +0100

    Aded operation parameters

commit fc783e6a43
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 12:38:35 2021 +0100

    Fixed typo

commit cb1b498459
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 12:37:13 2021 +0100

    Interface comment update

commit e2d4347ce6
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 12:35:50 2021 +0100

    Logging update

commit cecb72df3e
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 12:13:44 2021 +0100

    Added operation

commit bbf153ccd6
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 12:09:49 2021 +0100

    Fixed typo

commit 29fa5c2f96
Merge: 28a36fa ec31198
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sun Dec 19 12:07:34 2021 +0100

    Merge branch 'develop' into feature_meta_data

commit 28a36fa308
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sat Dec 18 15:51:02 2021 +0100

    Description updates

commit 73df9f136c
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sat Dec 18 14:37:58 2021 +0100

    Comment update

commit c3ea3c8b37
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sat Dec 18 14:34:48 2021 +0100

    Renaming

commit 6a84edd0fb
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sat Dec 18 14:22:31 2021 +0100

    Comment update

commit c0d6e66afe
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sat Dec 18 14:20:20 2021 +0100

    Code cleanup

commit cc81b588eb
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sat Dec 18 14:18:31 2021 +0100

    Renaming

commit c88628e12a
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sat Dec 18 14:17:50 2021 +0100

    Sort map by operation name

commit b64001e8a4
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sat Dec 18 13:39:44 2021 +0100

    Data type update

commit 8177cd3062
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sat Dec 18 13:37:23 2021 +0100

    Added cast

commit b8599ba088
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sat Dec 18 13:35:40 2021 +0100

    Added safeguard against unknown operations

commit 6b14ba6511
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sat Dec 18 13:26:21 2021 +0100

    Map operations by ordinal

commit ee101f2c6b
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sat Dec 18 13:14:31 2021 +0100

    Comment update

commit 67c958ed37
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sat Dec 18 13:13:06 2021 +0100

    Comment update

commit d1a9c40745
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sat Dec 18 13:04:58 2021 +0100

    Default value update

commit d9dbbc0bb3
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Sat Dec 18 12:47:36 2021 +0100

    Squashed commit of the following:

    commit 8171c6ea27982c736c30c0db69a7fdde07ee10ce
    Author: Uwe Seimet <Uwe.Seimet@seimet.de>
    Date:   Sat Dec 18 12:43:14 2021 +0100

        The data type is implicit

    commit fb01dc9d82e8ff7456b05a0cb9d08069adacc64c
    Author: Uwe Seimet <Uwe.Seimet@seimet.de>
    Date:   Sat Dec 18 12:37:49 2021 +0100

        Renaming

    commit 057dbf1aca7be3f7e76a5ff89a582a276b6d3089
    Author: Uwe Seimet <Uwe.Seimet@seimet.de>
    Date:   Sat Dec 18 12:29:54 2021 +0100

        Comment update

    commit 5f699aad2f835f72accdb445d1e59f094aeb108f
    Author: Uwe Seimet <Uwe.Seimet@seimet.de>
    Date:   Sat Dec 18 12:24:25 2021 +0100

        Signature update

    commit cbcf8b09f9d1ba7b82f816269bcfe91d9f00eb6e
    Author: Uwe Seimet <Uwe.Seimet@seimet.de>
    Date:   Sat Dec 18 12:22:45 2021 +0100

        Signature update

    commit a8148ef802ca809e5a305d2caa69856c9033d932
    Author: Uwe Seimet <Uwe.Seimet@seimet.de>
    Date:   Sat Dec 18 12:16:46 2021 +0100

        Comment update

    commit ce685a92d4827e131d80d10ecd56e2b3baf173f8
    Author: Uwe Seimet <Uwe.Seimet@seimet.de>
    Date:   Sat Dec 18 12:15:46 2021 +0100

        Use map instead of list

    commit 454c0438f3589904f5dbe5253963dd200ea416dd
    Author: Uwe Seimet <Uwe.Seimet@seimet.de>
    Date:   Sat Dec 18 10:47:36 2021 +0100

        Updated size check

    commit b386dbba4b0262f4f6f02aecb2a1daeffd41f4a2
    Author: Uwe Seimet <Uwe.Seimet@seimet.de>
    Date:   Sat Dec 18 01:23:43 2021 +0100

        Initial improvements

commit 5d6862b6b0
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 23:22:27 2021 +0100

    Description upddate

commit 69263b3e4b
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 23:21:38 2021 +0100

    Description update

commit 49e14f7078
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 23:19:08 2021 +0100

    Removed redundant message field

commit ff468aafa8
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 23:09:18 2021 +0100

    Added support for default value

commit 2da717a0a0
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 22:57:59 2021 +0100

    For completeness sake added permitted boolean values

commit 5d894d2e4f
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 22:53:07 2021 +0100

    Display permitted values

commit acc7d3cba5
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 20:37:03 2021 +0100

    Comment update

commit f846242aea
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 20:35:07 2021 +0100

    Code cleanup

commit 5a9592f102
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 20:24:33 2021 +0100

    Added convenience method

commit 9d258d9979
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 20:05:53 2021 +0100

    Added convenience method

commit 6c4103989b
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 19:45:20 2021 +0100

    Comment update

commit 7d543451f0
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 19:27:50 2021 +0100

    Description updates

commit f4b0e50e66
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 19:23:29 2021 +0100

    Comment update

commit 35dd3f6282
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 19:21:12 2021 +0100

    Type update

commit 7a94c0e6e0
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 19:17:05 2021 +0100

    Manpage update

commit 4179110bac
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 19:13:42 2021 +0100

    rasctl -s returns operation meta data

commit eed83bb005
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 19:05:29 2021 +0100

    Completed meta data

commit 4a7528d9d3
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 18:39:18 2021 +0100

    Sort operations

commit d3af9a142c
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 18:29:22 2021 +0100

    Support for localized descriptions

commit b4ff4f52ab
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 17:53:11 2021 +0100

    Interface update

commit e8d9e97fe5
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 16:59:49 2021 +0100

    Comment update

commit 22753b1547
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date:   Fri Dec 17 16:57:39 2021 +0100

    Added messages
2021-12-21 09:02:39 +01:00

62 lines
2.2 KiB
C++

//---------------------------------------------------------------------------
//
// SCSI Target Emulator RaSCSI (*^..^*)
// for Raspberry Pi
//
// Copyright (C) 2021 Uwe Seimet
//
//---------------------------------------------------------------------------
#pragma once
#include "devices/device_factory.h"
#include "rascsi_interface.pb.h"
#include <vector>
#include <string>
using namespace std;
using namespace rascsi_interface;
class DeviceFactory;
class RascsiImage;
class Device;
class RascsiResponse
{
public:
RascsiResponse(DeviceFactory *, const RascsiImage *);
~RascsiResponse() {};
bool GetImageFile(PbImageFile *, const string&);
PbImageFilesInfo *GetAvailableImages(PbResult&, const string&, const string&, int);
PbReservedIdsInfo *GetReservedIds(PbResult&, const set<int>&);
void GetDevices(PbServerInfo&, const vector<Device *>&);
void GetDevicesInfo(PbResult&, const PbCommand&, const vector<Device *>&, int);
PbDeviceTypesInfo *GetDeviceTypesInfo(PbResult&, const PbCommand&);
PbVersionInfo *GetVersionInfo(PbResult&);
PbServerInfo *GetServerInfo(PbResult&, const vector<Device *>&, const set<int>&, const string&, const string&,
const string&, int);
PbNetworkInterfacesInfo *GetNetworkInterfacesInfo(PbResult&);
PbMappingInfo *GetMappingInfo(PbResult&);
PbLogLevelInfo *GetLogLevelInfo(PbResult&, const string&);
PbOperationInfo *GetOperationInfo(PbResult&, int);
private:
DeviceFactory *device_factory;
const RascsiImage *rascsi_image;
vector<string> log_levels { "trace", "debug", "info", "warn", "err", "critical", "off" };
PbDeviceProperties *GetDeviceProperties(const Device *);
void GetDevice(const Device *, PbDevice *);
void GetAllDeviceTypeProperties(PbDeviceTypesInfo&);
void GetDeviceTypeProperties(PbDeviceTypesInfo&, PbDeviceType);
void GetAvailableImages(PbImageFilesInfo&, const string&, const string&, const string&, const string&, int);
void GetAvailableImages(PbResult& result, PbServerInfo&, const string&, const string&, int);
void CreateOperation(PbOperationInfo *, PbOperationMetaData *, const PbOperation&, const string&);
PbOperationParameter *AddOperationParameter(PbOperationMetaData *, const string&, const string&,
const string& = "", bool = false);
};