Внедрение ExecutionState

Чтобы вычислить действие на основе текущего состояния и требуемого состояния, передайте сведения в пакет SDK MIP путем реализации mip::ExecutionState класса. Как и другие классы пакета SDK, ExecutionState это абстрактный класс, и разработчик должен реализовать его.

Note

Полный пример реализации ExecutionState см. в следующем примере исходного кода:

члены mip::ExecutionState

ExecutionState предоставляет следующие виртуальные члены. Каждый член предоставляет контекст обработчику политик, чтобы он смог вернуть сведения о том, какие действия следует предпринять приложению. SDK также может использовать эти сведения для предоставления Microsoft Purview данных аудита.

Член Возвраты
std::shared_ptr<mip::Label> GetNewLabel() Возвращает метку, применяемую пакетом SDK к объекту.
mip::DataState GetDataState() Возвращает mip::DataState состояния данных объекта.
std::pair<bool, std::string> IsDowngradeJustified() Возвращает std::pair, указывающую, оправдано ли понижение и с обоснованием.
std::string GetContentIdentifier() Возвращает идентификатор содержимого. Используйте удобочитаемый пользователем идентификатор, указывающий расположение объекта.
std::string GetApplicationScenarioId() Возвращает идентификатор, который сопоставляет события приложения с соответствующими запросами REST службы аудита или защиты.
mip::AssignmentMethod GetNewLabelAssignmentMethod() Возвращает mip::AssignmentMethod для метки.
std::vector<std::pair<std::string, std::string>> GetNewLabelExtendedProperties() Возвращает std::vector из std::pair строк, содержащих пользовательские метаданные, которые SDK применяет к документу.
std::vector<mip::MetadataEntry> GetContentMetadata() Возвращает std::vector объектов mip::MetadataEntry, содержащих текущие метаданные содержимого.
std::shared_ptr<mip::ProtectionDescriptor> GetProtectionDescriptor() Возвращает указатель на mip::ProtectionDescriptor.
std::string GetContentFormat() Возвращает строку.
mip::ActionType GetSupportedActions() Возвращает mip::ActionTypes для метки.
std::shared_ptr<mip::ClassificationResults> GetClassificationResults() Возвращает список результатов классификации, если реализован.

Переопределите каждый член в реализации класса, производного от mip::ExecutionState. В предыдущем примере приложения определяется структура с именем ExecutionStateOptions, которая передаётся в конструктор производного класса.

В примере определяется структуру с именем ExecutionStateOptions:

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;
};

Задайте все свойства в приложении, а затем передайте ExecutionStateOptions в конструктор класса, производного от mip::ExecutionState. Пакет SDK использует эти сведения для определения выполняемых действий. В отчетах аудита Microsoft Purview также отображаются данные, предоставленные в mip::ExecutionState.

Дальнейшие действия