Implementar ExecutionState

A passagem de informações para o MIP SDK para calcular uma ação que deve ser executada, com base no estado atual e no estado desejado, é implementada por meio da mip::ExecutionState classe. Como outras classes no SDK, o ExecutionState é uma classe abstrata e deve ser implementado pelo desenvolvedor.

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

mip::Membros EstadoDeExecução

ExecutionState expõe os seguintes membros virtuais. Cada um fornece algum contexto ao mecanismo de política para retornar informações sobre quais ações devem ser tomadas pelo aplicativo. Além disso, essas informações podem ser usadas para fornecer informações de auditoria para o Microsoft Purview.

Membro Devoluções
std::shared_ptr<mip::Label> GetNewLabel() Retorna o rótulo a ser aplicado 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. Deve ser um identificador legível por humanos, indicando a localização do objeto.
mip::ActionSource GetNewLabelActionSource() Retorna o mip::ActionSource do rótulo.
mip::AssignmentMethod GetNewLabelAssignmentMethod() Devolve o mip::AssignmentMethod da etiqueta
std::vector<std::pair<std::string, std::string>> GetNewLabelExtendedProperties() Retorna um std::vector de std::pairs de strings, contendo os metadados personalizados que serão aplicados ao documento.
std::vector<std::pair<std::string, std::string>> GetContentMetadata() Retorna um std::vetor de std::pares de strings contendo os metadados do conteúdo atual.
std::shared_ptr<mip::ProtectionDescriptor> GetProtectionDescriptor() Retorna um ponteiro para um mip::ProtectionDescriptor
std::string GetContentFormat() Retorna cadeia de caracteres
mip::ActionType GetSupportedActions() Retorna mip::ActionTypes para o rótulo.
std::shared_ptr<mip::ClassificationResults> Retorna uma lista de resultados de classificação, se implementados.

Cada um deve ser substituído em uma implementação de uma classe derivada de mip::ExecutionState. No aplicativo de exemplo vinculado acima, esse processo é realizado implementando um struct chamado ExecutionStateOptions, e passando isso para o construtor da classe derivada.

No exemplo, um struct chamado ExecutionStateOptions é definido como:

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

Cada propriedade é definida pelo aplicativo e, em seguida ExecutionStateOptions , é passada para o construtor da classe derivada de mip::ExecutionState. Essas informações são usadas para determinar as ações a serem tomadas. Os dados fornecidos no mip::ExecutionState também aparecerão nos relatórios de auditoria do Microsoft Purview.

Próximos passos