*Backed out changeset 3be01fb200a5
--HG-- branch : trunk
This commit is contained in:
@@ -20,41 +20,52 @@
|
||||
* @author Phil Mesnier <[email protected]>
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
#ifndef ACE_CODESET_REGISTRY_H
|
||||
#define ACE_CODESET_REGISTRY_H
|
||||
|
||||
#include /**/ "ace/pre.h"
|
||||
#include "ace/SString.h"
|
||||
#include "ace/CDR_Base.h"
|
||||
#include "ace/Codeset_Symbols.h"
|
||||
|
||||
#if !defined (ACE_LACKS_PRAGMA_ONCE)
|
||||
# pragma once
|
||||
#endif /* ACE_LACKS_PRAGMA_ONCE */
|
||||
|
||||
#if defined (ACE_HAS_DCE_CODESET_REGISTRY)
|
||||
#include /**/ <dce/rpc.h>
|
||||
#endif /* ACE_HAS_DCE_CODESET_REGISTRY */
|
||||
|
||||
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
|
||||
|
||||
class ACE_Export ACE_Codeset_Registry
|
||||
{
|
||||
public:
|
||||
|
||||
/// Based on a locale string, find the registry value and optional codeset
|
||||
/// collection. This wraps the dce_cs_loc_to_rgy function, or emulates it.
|
||||
static int locale_to_registry (const ACE_CString &locale,
|
||||
ACE_CDR::ULong &codeset_id,
|
||||
ACE_CDR::UShort * = 0,
|
||||
ACE_CDR::UShort ** = 0);
|
||||
|
||||
/// Based on a registry value, find the locale string and optional codeset
|
||||
/// collection. This wraps the dce_cs_rgy_to_loc function, or emulates it.
|
||||
static int registry_to_locale (ACE_CDR::ULong codeset_id,
|
||||
ACE_CString &locale,
|
||||
ACE_CDR::UShort * = 0,
|
||||
ACE_CDR::UShort ** = 0);
|
||||
|
||||
/// Tell if two codesets are compatible. This wraps the
|
||||
/// rpc_cs_char_set_compat_check function.
|
||||
static int is_compatible (ACE_CDR::ULong codeset_id,
|
||||
ACE_CDR::ULong other);
|
||||
|
||||
/// Return the max number of bytes required to represent a single character.
|
||||
/// This wraps the rpc_rgy_get_max_bytes function.
|
||||
static ACE_CDR::Short get_max_bytes (ACE_CDR::ULong codeset_id);
|
||||
|
||||
enum {max_charsets_ = 5};
|
||||
protected:
|
||||
typedef struct {
|
||||
@@ -65,9 +76,11 @@ protected:
|
||||
ACE_CDR::UShort char_sets_[max_charsets_];
|
||||
ACE_CDR::UShort max_bytes_;
|
||||
} registry_entry;
|
||||
|
||||
private:
|
||||
static size_t const num_registry_entries_;
|
||||
static registry_entry const registry_db_[];
|
||||
|
||||
static int locale_to_registry_i (const ACE_CString &locale,
|
||||
ACE_CDR::ULong &codeset_id,
|
||||
ACE_CDR::UShort * = 0,
|
||||
@@ -80,10 +93,13 @@ private:
|
||||
ACE_CDR::ULong other);
|
||||
static ACE_CDR::Short get_max_bytes_i (ACE_CDR::ULong codeset_id);
|
||||
};
|
||||
|
||||
ACE_END_VERSIONED_NAMESPACE_DECL
|
||||
|
||||
#if defined (__ACE_INLINE__)
|
||||
#include "ace/Codeset_Registry.inl"
|
||||
#endif /* __ACE_INLINE__ */
|
||||
|
||||
#include /**/ "ace/post.h"
|
||||
#endif /* ACE_CODESET_REGISTRY_H */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user