Implementace ExecutionState

Předání informací do sady MIP SDK pro výpočet akce, která by se měla provést na základě aktuálního a požadovaného stavu, je implementováno prostřednictvím třídy mip::ExecutionState. Stejně jako ostatní třídy v sadě SDK ExecutionState je abstraktní třída, kterou musí implementovat vývojář.

Úplný příklad ExecutionState implementace najdete v následujícím ukázkovém zdroji:

mip::ExecutionState – členy

ExecutionState zveřejňuje následující virtuální členy. Každá z nich poskytuje určitý kontext modulu zásad, aby vrátil informace o tom, které akce má aplikace provést. Kromě toho se tyto informace dají použít k poskytnutí informací o auditu společnosti Microsoft Purview.

Člen Návraty
std::shared_ptr<mip::Label> GetNewLabel() Vrátí popisek, který se má použít u objektu.
mip::DataState GetDataState() Vrátí mip::DataState objektu.
std::pair<bool, std::string> IsDowngradeJustified() Vrátí std::pair vyjadřující, zda je downgrade odůvodněný a odůvodnění.
std::string GetContentIdentifier() Vrátí identifikátor obsahu. Měl by být identifikátor čitelný člověkem, který označuje umístění objektu.
mip::ActionSource GetNewLabelActionSource() Vrátí mip::ActionSource popisku.
mip::AssignmentMethod GetNewLabelAssignmentMethod() Vrátí mip::AssignmentMethod štítku.
std::vector<std::pair<std::string, std::string>> GetNewLabelExtendedProperties() Vrátí std::vector std::pair řetězců, které obsahují vlastní metadata, jež se použijí na dokument.
std::vector<std::pair<std::string, std::string>> GetContentMetadata() Vrátí std::vector std::pairs řetězců obsahujících aktuální metadata obsahu.
std::shared_ptr<mip::ProtectionDescriptor> GetProtectionDescriptor() Vrátí ukazatel k mip::ProtectionDescriptor.
std::string GetContentFormat() Vrátí řetězec.
mip::ActionType GetSupportedActions() Vrátí hodnotu mip::ActionTypes pro popisek.
std::shared_ptr<mip::ClassificationResults> Vrátí seznam výsledků klasifikace, pokud je implementovaný.

Každý z nich je nutné přepsat v rámci implementace třídy odvozené z mip::ExecutionState. V ukázkové aplikaci propojené výše se tento proces provádí implementací struktury s názvem ExecutionStateOptionsa předáním konstruktoru odvozené třídy.

V příkladu je struktura ExecutionStateOptions s názvem definována takto:

struct ExecutionStateOptions {
    std::unordered_map<std::string, std::string> metadata;
    std::string newLabelId;
    std::string contentIdentifier;
    mip::ActionSource actionSource = mip::ActionSource::MANUAL;
    mip::DataState dataState = mip::DataState::USE;
    mip::AssignmentMethod assignmentMethod = mip::AssignmentMethod::STANDARD;
    bool isDowngradeJustified = false;
    std::string downgradeJustification;
    std::string templateId;
    std::string contentFormat = mip::GetFileContentFormat();
    mip::ActionType supportedActions;
    bool generateAuditEvent;
};

Každá vlastnost je nejprve nastavena aplikací, poté je ExecutionStateOptions předána do konstruktoru třídy, která je odvozena z mip::ExecutionState. Tyto informace slouží k určení akcí, které se mají provést. Data poskytnutá ve mip::ExecutionState se zobrazí také v auditních zprávách Microsoft Purview.

Další kroky