#include <Argv_Type_Converter.h>
Public Member Functions | |
ACE_Argv_Type_Converter (int &argc, char **argv) | |
~ACE_Argv_Type_Converter (void) | |
ACE_TCHAR ** | get_TCHAR_argv (void) |
Returns the pointer of converted command line. | |
char ** | get_ASCII_argv (void) |
Returns the pointer of ASCII (char) command line. | |
int & | get_argc (void) |
Returns the number of sub paramters (argc). | |
Private Member Functions | |
ACE_Argv_Type_Converter (const ACE_Argv_Type_Converter &) | |
Copy Constructor should not be used. | |
ACE_Argv_Type_Converter | operator= (const ACE_Argv_Type_Converter &) |
Assignment '=' operator should not be used. | |
Private Attributes | |
int & | saved_argc_ |
Original number of input paramter, same as 'argc'. | |
char ** | char_argv_ |
Data member pointer that contains converted argv in ACE_ANTI_TCHAR. |
This class is to convert 'char' type command line paramter to wide-character (wchar_t) format and stores the copy of it. This is useful for all classes that use 'char**' argv but cannot be converted into 'ACE_TCHAR**' version. Note that the converted data will be lost upon destruction, so classes should use this class as their data member.
Definition at line 39 of file Argv_Type_Converter.h.
ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_Argv_Type_Converter::ACE_Argv_Type_Converter | ( | int & | argc, | |
char ** | argv | |||
) |
Definition at line 36 of file Argv_Type_Converter.cpp.
References ACE_TEXT_ANTI_TO_TCHAR, and ACE_OS::strdup().
00037 : saved_argc_(argc), 00038 char_argv_(argv) 00039 #if defined (ACE_USES_WCHAR) 00040 , wchar_argv_(0), 00041 before_pass_argc_(argc), 00042 original_type_(false), 00043 wchar_passed_(false), 00044 char_passed_(false) 00045 { 00046 this->initialize(); 00047 00048 for (int i = 0; i < argc; ++i) 00049 this->wchar_argv_[i] = ACE_OS::strdup (ACE_TEXT_ANTI_TO_TCHAR (argv[i])); 00050 } 00051 #else 00052 { 00053 }
ACE_Argv_Type_Converter::~ACE_Argv_Type_Converter | ( | void | ) |
Definition at line 56 of file Argv_Type_Converter.cpp.
References ACE_OS::free().
00057 { 00058 #if defined (ACE_USES_WCHAR) 00059 // selectively delete the 'copy' of argv 00060 if (this->original_type_) 00061 { 00062 // if original type is wchar_t 00063 if (this->char_passed_) 00064 this->align_wchar_with_char (); 00065 00066 for (int i = 0; i < this->before_pass_argc_; ++i) 00067 ACE_OS::free (this->char_argv_[i]); 00068 00069 delete [] this->char_argv_; 00070 } 00071 else 00072 { 00073 // if original type is char 00074 if (this->wchar_passed_) 00075 this->align_char_with_wchar (); 00076 00077 for (int i = 0; i < this->before_pass_argc_; ++i) 00078 ACE_OS::free (this->wchar_argv_[i]); 00079 00080 delete [] this->wchar_argv_; 00081 } 00082 #endif // ACE_USES_WCHAR 00083 }
ACE_Argv_Type_Converter::ACE_Argv_Type_Converter | ( | const ACE_Argv_Type_Converter & | ) | [private] |
Copy Constructor should not be used.
ACE_INLINE int & ACE_Argv_Type_Converter::get_argc | ( | void | ) |
Returns the number of sub paramters (argc).
Definition at line 39 of file Argv_Type_Converter.inl.
References saved_argc_.
00040 { 00041 return this->saved_argc_; 00042 }
ACE_INLINE char ** ACE_Argv_Type_Converter::get_ASCII_argv | ( | void | ) |
Returns the pointer of ASCII (char) command line.
Definition at line 24 of file Argv_Type_Converter.inl.
References char_argv_.
00025 { 00026 #if defined (ACE_USES_WCHAR) 00027 if (this->wchar_passed_) 00028 { 00029 this->align_char_with_wchar (); 00030 } 00031 00032 this->char_passed_ = true; 00033 #endif // ACE_USES_WCHAR 00034 00035 return this->char_argv_; 00036 }
ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE ACE_TCHAR ** ACE_Argv_Type_Converter::get_TCHAR_argv | ( | void | ) |
Returns the pointer of converted command line.
Definition at line 8 of file Argv_Type_Converter.inl.
References char_argv_.
00009 { 00010 #if defined (ACE_USES_WCHAR) 00011 if (this->char_passed_) 00012 { 00013 this->align_wchar_with_char (); 00014 } 00015 00016 this->wchar_passed_ = true; 00017 return this->wchar_argv_; 00018 #else 00019 return this->char_argv_; 00020 #endif // ACE_USES_WCHAR 00021 }
ACE_Argv_Type_Converter ACE_Argv_Type_Converter::operator= | ( | const ACE_Argv_Type_Converter & | ) | [private] |
Assignment '=' operator should not be used.
char** ACE_Argv_Type_Converter::char_argv_ [private] |
Data member pointer that contains converted argv in ACE_ANTI_TCHAR.
Definition at line 90 of file Argv_Type_Converter.h.
Referenced by get_ASCII_argv(), and get_TCHAR_argv().
int& ACE_Argv_Type_Converter::saved_argc_ [private] |
Original number of input paramter, same as 'argc'.
Definition at line 87 of file Argv_Type_Converter.h.
Referenced by get_argc().