| // Copyright 2020 PDFium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| |
| #ifndef FXJS_XFA_CFXJSE_MAPMODULE_H_ |
| #define FXJS_XFA_CFXJSE_MAPMODULE_H_ |
| |
| #include <stdint.h> |
| |
| #include <map> |
| |
| #include "core/fxcrt/fx_string.h" |
| #include "third_party/base/optional.h" |
| |
| class CXFA_Measurement; |
| |
| class CFXJSE_MapModule { |
| public: |
| CFXJSE_MapModule(); |
| ~CFXJSE_MapModule(); |
| |
| CFXJSE_MapModule(const CFXJSE_MapModule& that) = delete; |
| CFXJSE_MapModule& operator=(const CFXJSE_MapModule& that) = delete; |
| |
| void SetValue(uint32_t key, int32_t value); |
| void SetString(uint32_t key, const WideString& wsString); |
| void SetMeasurement(uint32_t key, const CXFA_Measurement& measurement); |
| Optional<int32_t> GetValue(uint32_t key) const; |
| Optional<WideString> GetString(uint32_t key) const; |
| Optional<CXFA_Measurement> GetMeasurement(uint32_t key) const; |
| bool HasKey(uint32_t key) const; |
| void RemoveKey(uint32_t key); |
| void MergeDataFrom(const CFXJSE_MapModule* pSrc); |
| |
| private: |
| // keyed by result of GetMapKey_*(). |
| std::map<uint32_t, int32_t> m_ValueMap; |
| std::map<uint32_t, WideString> m_StringMap; |
| std::map<uint32_t, CXFA_Measurement> m_MeasurementMap; |
| }; |
| |
| #endif // FXJS_XFA_CFXJSE_MAPMODULE_H_ |