Mettre en œuvre l'état d'exécution

La transmission d’informations dans le SDK MIP pour calculer une action qui doit être effectuée, en fonction de l’état actuel et de l’état souhaité, est implémentée via la mip::ExecutionState classe. Comme d’autres classes dans le Kit de développement logiciel (SDK), il ExecutionState s’agit d’une classe abstraite et doit être implémentée par le développeur.

Pour obtenir un exemple complet d’implémentation ExecutionState , passez en revue l’exemple de source suivant :

Membres mip::ExecutionState

ExecutionState expose les membres virtuels suivants. Chacun fournit un contexte au moteur de stratégie pour retourner des informations sur les actions à entreprendre par l’application. En outre, ces informations peuvent être utilisées pour fournir des informations d’audit à Microsoft Purview.

Membre Retours
std::shared_ptr<mip::Label> GetNewLabel() Renvoie l'étiquette à appliquer à l'objet.
mip::DataState GetDataState() Renvoie le mip::DataState de l'objet.
std::pair<bool, std::string> IsDowngradeJustified() Retourne un std::pair indiquant si la rétrogradation est justifiée et la justification.
std::string GetContentIdentifier() Renvoie l'identifiant du contenu. Doit être un identificateur lisible par l’homme, indiquant l’emplacement de l’objet.
mip::ActionSource GetNewLabelActionSource() Renvoie la mip::ActionSource de l'étiquette.
mip::AssignmentMethod GetNewLabelAssignmentMethod() Renvoie la méthode mip::AssignmentMethod de l'étiquette.
std::vector<std::pair<std::string, std::string>> GetNewLabelExtendedProperties() Renvoie un std::vector de std::pairs de chaînes, contenant les métadonnées personnalisées qui seront appliquées au document.
std::vector<std::pair<std::string, std::string>> GetContentMetadata() Renvoie un std::vector de std::pairs de chaînes contenant les métadonnées du contenu actuel.
std::shared_ptr<mip::ProtectionDescriptor> GetProtectionDescriptor() Renvoie un pointeur vers un mip::ProtectionDescriptor.
std::string GetContentFormat() Renvoie une chaîne
mip::ActionType GetSupportedActions() Renvoie mip::ActionTypes pour l'étiquette.
std::shared_ptr<mip::ClassificationResults> Retourne une liste de résultats de classification, s’il est implémenté.

Chacun doit être substitué dans une implémentation d’une classe dérivée de mip::ExecutionState. Dans l’exemple d’application lié ci-dessus, ce processus est effectué en implémentant un struct appelé ExecutionStateOptions, et en passant cela au constructeur de la classe dérivée.

Dans l’exemple, un struct appelé ExecutionStateOptions est défini comme suit :

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

Chaque propriété est définie par l’application, puis ExecutionStateOptions est passée au constructeur de la classe dérivée de mip::ExecutionState. Ces informations sont utilisées pour déterminer les actions à entreprendre. Les données fournies dans le mip::ExecutionState apparaîtront également dans les rapports d’audit de Microsoft Purview.

Étapes suivantes