00001 /** 00002 * @file IExternalDataManager.h 00003 * @brief Interface to manage external relationships 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 Interface to manage external relationships 00022 */ 00023 class IExternalDataManager { 00024 protected: 00025 /** 00026 * @brief Default constructor 00027 */ 00028 IExternalDataManager() = default; 00029 00030 /** 00031 * @brief Copy constructor 00032 */ 00033 IExternalDataManager(const IExternalDataManager&) = delete; 00034 /** 00035 * @brief Copy assignment operator 00036 */ 00037 IExternalDataManager& operator=(const IExternalDataManager&) = delete; 00038 00039 /** 00040 * @brief Move constructor 00041 */ 00042 IExternalDataManager(IExternalDataManager&&) = delete; 00043 /** 00044 * @brief Move assignment operator 00045 */ 00046 IExternalDataManager& operator=(IExternalDataManager&&) = delete; 00047 00048 public: 00049 00050 /** 00051 * @brief Destructor 00052 */ 00053 virtual ~IExternalDataManager() = default; 00054 00055 /** 00056 * @brief Generate an object that perform management of external relations 00057 * @param external_data_manager_params - Parameters used to manage external relations 00058 * @return Object that perform management of external relations 00059 */ 00060 static std::unique_ptr<IExternalDataManager> create(ExternalDataManagerParams external_data_manager_params); 00061 00062 /** 00063 * @brief Unlink sub-document 00064 * @param unlinked_group_docs_parameter - Unlinking parameters for sub-documents 00065 */ 00066 virtual void UnlinkedSubDocs(UnlinkedGroupDocsParameter unlinked_group_docs_parameter) = 0; 00067 00068 /** 00069 * @brief Perform embedding of linked images 00070 */ 00071 virtual void EmbedLinkedImage() = 0; 00072 };