Home | History | Annotate | Download | only in fpdfdoc
      1 // Copyright 2016 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 #ifndef CORE_FPDFDOC_CPDF_FILESPEC_H_
      8 #define CORE_FPDFDOC_CPDF_FILESPEC_H_
      9 
     10 #include "core/fxcrt/cfx_string_pool_template.h"
     11 #include "core/fxcrt/cfx_weak_ptr.h"
     12 #include "core/fxcrt/fx_string.h"
     13 
     14 class CPDF_Object;
     15 
     16 class CPDF_FileSpec {
     17  public:
     18   explicit CPDF_FileSpec(const CFX_WeakPtr<CFX_ByteStringPool>& pPool);
     19   explicit CPDF_FileSpec(CPDF_Object* pObj) : m_pObj(pObj) {}
     20 
     21   // Convert a platform dependent file name into pdf format.
     22   static CFX_WideString EncodeFileName(const CFX_WideStringC& filepath);
     23 
     24   // Convert a pdf file name into platform dependent format.
     25   static CFX_WideString DecodeFileName(const CFX_WideStringC& filepath);
     26 
     27   CPDF_Object* GetObj() const { return m_pObj; }
     28   bool GetFileName(CFX_WideString* wsFileName) const;
     29 
     30   // Set this file spec to refer to a file name (not a url).
     31   void SetFileName(const CFX_WideStringC& wsFileName);
     32 
     33  private:
     34   CPDF_Object* m_pObj;
     35 };
     36 
     37 #endif  // CORE_FPDFDOC_CPDF_FILESPEC_H_
     38