00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef SVC_CONF_LEXER_H
00017 #define SVC_CONF_LEXER_H
00018
00019 #include "ace/pre.h"
00020 #include "ace/Svc_Conf.h"
00021
00022 #if (ACE_USES_CLASSIC_SVC_CONF == 1)
00023 #include "ace/Encoding_Converter_Factory.h"
00024
00025 class ACE_Encoding_Converter;
00026
00027 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00028
00029
00030
00031
00032
00033 class ACE_Svc_Conf_Lexer
00034 {
00035 public:
00036
00037
00038
00039 static int yylex (ACE_YYSTYPE* ace_yylval,
00040 ACE_Svc_Conf_Param* param);
00041
00042 private:
00043 static size_t input(ACE_Svc_Conf_Param* param, char* buf, size_t max_size);
00044
00045 static int scan (ACE_YYSTYPE* ace_yylval, ACE_Svc_Conf_Param* param);
00046
00047 #if defined (ACE_USES_WCHAR)
00048 static bool convert_to_utf8 (
00049 ACE_Svc_Conf_Param* param,
00050 size_t skip_bytes,
00051 ACE_Encoding_Converter_Factory::Encoding_Hint hint);
00052 static bool convert_from_utf8 (ACE_Encoding_Converter* converter,
00053 const char* source,
00054 size_t source_size,
00055 ACE_TCHAR* target,
00056 size_t target_size,
00057 size_t& length);
00058 static ACE_Encoding_Converter_Factory::Encoding_Hint
00059 locate_bom (char* source,
00060 size_t source_size,
00061 size_t& bytes_used);
00062 #endif
00063 };
00064
00065 ACE_END_VERSIONED_NAMESPACE_DECL
00066 #endif
00067
00068 #include "ace/post.h"
00069
00070 #endif