OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #ifndef _FX_STRING_H_ | 7 #ifndef _FX_STRING_H_ |
8 #define _FX_STRING_H_ | 8 #define _FX_STRING_H_ |
9 | 9 |
10 #include "fx_memory.h" | 10 #include "fx_memory.h" |
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
421 return CFX_ByteString(str1, str2); | 421 return CFX_ByteString(str1, str2); |
422 } | 422 } |
423 inline CFX_ByteString operator + (const CFX_ByteString& str1, FX_BSTR str2) | 423 inline CFX_ByteString operator + (const CFX_ByteString& str1, FX_BSTR str2) |
424 { | 424 { |
425 return CFX_ByteString(str1, str2); | 425 return CFX_ByteString(str1, str2); |
426 } | 426 } |
427 inline CFX_ByteString operator + (FX_BSTR str1, const CFX_ByteString& str2) | 427 inline CFX_ByteString operator + (FX_BSTR str1, const CFX_ByteString& str2) |
428 { | 428 { |
429 return CFX_ByteString(str1, str2); | 429 return CFX_ByteString(str1, str2); |
430 } | 430 } |
431 class CFX_StringBufBase | |
432 { | |
433 public: | |
434 | |
435 CFX_StringBufBase(FX_STRSIZE limit) | |
436 { | |
437 m_Size = 0; | |
438 m_Limit = limit; | |
439 } | |
440 | |
441 FX_CHAR* GetPtr() const | |
442 { | |
443 return (FX_CHAR*)(this + 1); | |
444 } | |
445 | |
446 FX_STRSIZE GetSize() const | |
447 { | |
448 return m_Size; | |
449 } | |
450 | |
451 void Empty() | |
452 { | |
453 m_Size = 0; | |
454 } | |
455 | |
456 void Copy(FX_BSTR str); | |
457 | |
458 void Append(FX_BSTR str); | |
459 | |
460 void Append(int i, FX_DWORD flags = 0); | |
461 | |
462 CFX_ByteStringC GetStringC() const | |
463 { | |
464 return CFX_ByteStringC((FX_CHAR*)(this + 1), m_Size); | |
465 } | |
466 | |
467 CFX_ByteString GetString() const | |
468 { | |
469 return CFX_ByteString((FX_CHAR*)(this + 1), m_Size); | |
470 } | |
471 protected: | |
472 | |
473 FX_STRSIZE m_Limit; | |
474 | |
475 FX_STRSIZE m_Size; | |
476 }; | |
477 template<FX_STRSIZE limit> | |
478 class CFX_StringBufTemplate : public CFX_StringBufBase | |
479 { | |
480 public: | |
481 | |
482 CFX_StringBufTemplate() : CFX_StringBufBase(limit) {} | |
483 | |
484 FX_CHAR m_Buffer[limit]; | |
485 }; | |
486 typedef CFX_StringBufTemplate<256> CFX_StringBuf256; | |
487 class CFX_WideStringC | 431 class CFX_WideStringC |
488 { | 432 { |
489 public: | 433 public: |
490 typedef FX_WCHAR value_type; | 434 typedef FX_WCHAR value_type; |
491 | 435 |
492 CFX_WideStringC() | 436 CFX_WideStringC() |
493 { | 437 { |
494 m_Ptr = NULL; | 438 m_Ptr = NULL; |
495 m_Length = 0; | 439 m_Length = 0; |
496 } | 440 } |
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
867 CFX_ByteString FX_UTF8Encode(FX_LPCWSTR pwsStr, FX_STRSIZE len); | 811 CFX_ByteString FX_UTF8Encode(FX_LPCWSTR pwsStr, FX_STRSIZE len); |
868 inline CFX_ByteString FX_UTF8Encode(FX_WSTR wsStr) | 812 inline CFX_ByteString FX_UTF8Encode(FX_WSTR wsStr) |
869 { | 813 { |
870 return FX_UTF8Encode(wsStr.GetPtr(), wsStr.GetLength()); | 814 return FX_UTF8Encode(wsStr.GetPtr(), wsStr.GetLength()); |
871 } | 815 } |
872 inline CFX_ByteString FX_UTF8Encode(const CFX_WideString &wsStr) | 816 inline CFX_ByteString FX_UTF8Encode(const CFX_WideString &wsStr) |
873 { | 817 { |
874 return FX_UTF8Encode(wsStr.c_str(), wsStr.GetLength()); | 818 return FX_UTF8Encode(wsStr.c_str(), wsStr.GetLength()); |
875 } | 819 } |
876 #endif | 820 #endif |
OLD | NEW |