Implementar ExecutionState

Para calcular uma ação baseada no estado atual e no estado desejado, passe informação para o SDK MIP implementando a mip::ExecutionState classe. Tal como outras classes no SDK, ExecutionState é uma classe abstrata, e o programador deve implementá-la.

Note

Para um exemplo completo de uma ExecutionState implementação, veja a seguinte fonte de exemplo:

membros de mip::ExecutionState

ExecutionState expõe os seguintes membros virtuais. Cada membro fornece contexto ao motor de políticas para que este possa devolver informações sobre as ações que a aplicação deve realizar. O SDK também pode usar esta informação para fornecer informações de auditoria à Microsoft Purview.

Membro Devoluções
std::shared_ptr<mip::Label> GetNewLabel() Devolve o rótulo que o SDK aplica ao objeto.
mip::DataState GetDataState() Retorna o mip::DataState do objeto.
std::pair<bool, std::string> IsDowngradeJustified() Retorna um std::pair indicando se o downgrade é justificado e qual é a justificativa.
std::string GetContentIdentifier() Retorna o identificador de conteúdo. Use um identificador legível por humanos que indique a localização do objeto.
std::string GetApplicationScenarioId() Devolve um identificador que correlaciona os eventos da aplicação com os correspondentes pedidos REST de serviço de auditoria ou proteção.
mip::AssignmentMethod GetNewLabelAssignmentMethod() Devolve o mip::AssignmentMethod do rótulo.
std::vector<std::pair<std::string, std::string>> GetNewLabelExtendedProperties() Devolve um std::vector de std::pairs de cadeias de caracteres que contêm os metadados personalizados que o SDK aplica ao documento.
std::vector<mip::MetadataEntry> GetContentMetadata() Devolve um std::vector dos objetos mip::MetadataEntry que contêm os metadados de conteúdo correntes.
std::shared_ptr<mip::ProtectionDescriptor> GetProtectionDescriptor() Devolve um ponteiro para um mip::ProtectionDescriptor.
std::string GetContentFormat() Devolve uma cadeia de caracteres.
mip::ActionType GetSupportedActions() Retorna mip::ActionTypes para o rótulo.
std::shared_ptr<mip::ClassificationResults> GetClassificationResults() Retorna uma lista de resultados de classificação, se implementados.

Sobrescreva cada membro numa implementação de uma classe derivada de mip::ExecutionState. Na aplicação de exemplo anterior, a amostra implementa uma estrutura chamada ExecutionStateOptions e passa essa estrutura ao construtor da classe derivada.

O exemplo define uma estrutura chamada 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;
};

Defina cada propriedade na aplicação, e depois passe ExecutionStateOptions para o construtor da classe derivada de mip::ExecutionState. O SDK utiliza esta informação para determinar as ações a tomar. Relatórios de auditoria do Microsoft Purview também mostram dados fornecidos em mip::ExecutionState.

Passos seguintes