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 13namespace { 14 15CPDF_ModuleMgr* g_pDefaultMgr = nullptr; 16 17} // namespace 18 19// static 20CPDF_ModuleMgr* CPDF_ModuleMgr::Get() { 21 if (!g_pDefaultMgr) 22 g_pDefaultMgr = new CPDF_ModuleMgr; 23 return g_pDefaultMgr; 24} 25 26// static 27void CPDF_ModuleMgr::Destroy() { 28 delete g_pDefaultMgr; 29 g_pDefaultMgr = nullptr; 30} 31 32CPDF_ModuleMgr::CPDF_ModuleMgr() : m_pCodecModule(nullptr) {} 33 34CPDF_ModuleMgr::~CPDF_ModuleMgr() {} 35 36void CPDF_ModuleMgr::InitPageModule() { 37 m_pPageModule = pdfium::MakeUnique<CPDF_PageModule>(); 38} 39 40CCodec_FaxModule* CPDF_ModuleMgr::GetFaxModule() { 41 return m_pCodecModule ? m_pCodecModule->GetFaxModule() : nullptr; 42} 43 44CCodec_JpegModule* CPDF_ModuleMgr::GetJpegModule() { 45 return m_pCodecModule ? m_pCodecModule->GetJpegModule() : nullptr; 46} 47 48CCodec_JpxModule* CPDF_ModuleMgr::GetJpxModule() { 49 return m_pCodecModule ? m_pCodecModule->GetJpxModule() : nullptr; 50} 51 52CCodec_Jbig2Module* CPDF_ModuleMgr::GetJbig2Module() { 53 return m_pCodecModule ? m_pCodecModule->GetJbig2Module() : nullptr; 54} 55 56CCodec_IccModule* CPDF_ModuleMgr::GetIccModule() { 57 return m_pCodecModule ? m_pCodecModule->GetIccModule() : nullptr; 58} 59 60CCodec_FlateModule* CPDF_ModuleMgr::GetFlateModule() { 61 return m_pCodecModule ? m_pCodecModule->GetFlateModule() : nullptr; 62} 63