00001 /** 00002 * @file IExternalDataManager.h 00003 * @brief 外部のリレーションを管理するインターフェイス 00004 * 00005 * @author Nakashima h 00006 * @date 2021-10-06 00007 * 00008 * $Id: IExternalDataManager.h 32 2022-07-14 03:20:43Z shingo.yoneda $ 00009 * 00010 * Copyright (c) 2021-2022 Antenna House, Inc. All rights reserved. 00011 */ 00012 00013 #pragma once 00014 #include <queue> 00015 #include <memory> 00016 00017 #include "ExternalDataManagerParams.h" 00018 #include "UnlinkedGroupDocsParameter.h" 00019 00020 /** 00021 * @brief 外部のリレーションを管理するインターフェイス 00022 */ 00023 class IExternalDataManager { 00024 protected: 00025 /** 00026 * @brief デフォルトコンストラクタ 00027 */ 00028 IExternalDataManager() = default; 00029 00030 /** 00031 * @brief コピーコンストラクタ 00032 */ 00033 IExternalDataManager(const IExternalDataManager&) = delete; 00034 /** 00035 * @brief コピー代入演算子 00036 */ 00037 IExternalDataManager& operator=(const IExternalDataManager&) = delete; 00038 00039 /** 00040 * @brief ムーブコンストラクタ 00041 */ 00042 IExternalDataManager(IExternalDataManager&&) = delete; 00043 /** 00044 * @brief ムーブ代入演算子 00045 */ 00046 IExternalDataManager& operator=(IExternalDataManager&&) = delete; 00047 00048 public: 00049 00050 /** 00051 * @brief デストラクタ 00052 */ 00053 virtual ~IExternalDataManager() = default; 00054 00055 /** 00056 * @brief 外部のリレーションの管理を実行するオブジェクトを生成する 00057 * @param external_data_manager_params - 外部のリレーションの管理に使用するパラメータ 00058 * @return 外部のリレーションの管理を実行するオブジェクト 00059 */ 00060 static std::unique_ptr<IExternalDataManager> create(ExternalDataManagerParams external_data_manager_params); 00061 00062 /** 00063 * @brief サブ文書のリンクを解除する 00064 * @param unlinked_group_docs_parameter - サブ文書のリンク解除パラメータ 00065 */ 00066 virtual void UnlinkedSubDocs(UnlinkedGroupDocsParameter unlinked_group_docs_parameter) = 0; 00067 00068 /** 00069 * @brief リンク形式の画像の埋め込みを実行する 00070 */ 00071 virtual void EmbedLinkedImage() = 0; 00072 };