1 // Copyright 2014 PDFium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7 #include "core/fpdfapi/cpdf_modulemgr.h" 8 9 #include "core/fpdfapi/page/cpdf_pagemodule.h" 10 #include "core/fxcodec/fx_codec.h" 11 #include "third_party/base/ptr_util.h" 12 13 namespace { 14 15 CPDF_ModuleMgr* g_pDefaultMgr = nullptr; 16 17 } // namespace 18 19 // static Get()20CPDF_ModuleMgr* CPDF_ModuleMgr::Get() { 21 if (!g_pDefaultMgr) 22 g_pDefaultMgr = new CPDF_ModuleMgr; 23 return g_pDefaultMgr; 24 } 25 26 // static Destroy()27void CPDF_ModuleMgr::Destroy() { 28 delete g_pDefaultMgr; 29 g_pDefaultMgr = nullptr; 30 } 31 CPDF_ModuleMgr()32CPDF_ModuleMgr::CPDF_ModuleMgr() : m_pCodecModule(nullptr) {} 33 ~CPDF_ModuleMgr()34CPDF_ModuleMgr::~CPDF_ModuleMgr() {} 35 InitPageModule()36void CPDF_ModuleMgr::InitPageModule() { 37 m_pPageModule = pdfium::MakeUnique<CPDF_PageModule>(); 38 } 39 GetFaxModule()40CCodec_FaxModule* CPDF_ModuleMgr::GetFaxModule() { 41 return m_pCodecModule ? m_pCodecModule->GetFaxModule() : nullptr; 42 } 43 GetJpegModule()44CCodec_JpegModule* CPDF_ModuleMgr::GetJpegModule() { 45 return m_pCodecModule ? m_pCodecModule->GetJpegModule() : nullptr; 46 } 47 GetJpxModule()48CCodec_JpxModule* CPDF_ModuleMgr::GetJpxModule() { 49 return m_pCodecModule ? m_pCodecModule->GetJpxModule() : nullptr; 50 } 51 GetJbig2Module()52CCodec_Jbig2Module* CPDF_ModuleMgr::GetJbig2Module() { 53 return m_pCodecModule ? m_pCodecModule->GetJbig2Module() : nullptr; 54 } 55 GetIccModule()56CCodec_IccModule* CPDF_ModuleMgr::GetIccModule() { 57 return m_pCodecModule ? m_pCodecModule->GetIccModule() : nullptr; 58 } 59 GetFlateModule()60CCodec_FlateModule* CPDF_ModuleMgr::GetFlateModule() { 61 return m_pCodecModule ? m_pCodecModule->GetFlateModule() : nullptr; 62 } 63