THRIFT-5750 Remove "ansistr_binary_" option
Client: delphi
Patch: Jens Geyer
diff --git a/compiler/cpp/src/thrift/generate/t_delphi_generator.cc b/compiler/cpp/src/thrift/generate/t_delphi_generator.cc
index c91ff33..c599836 100644
--- a/compiler/cpp/src/thrift/generate/t_delphi_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_delphi_generator.cc
@@ -68,7 +68,6 @@
has_const = false;
std::map<std::string, std::string>::const_iterator iter;
- ansistr_binary_ = false;
register_types_ = false;
constprefix_ = false;
old_names_ = false;
@@ -78,10 +77,7 @@
com_types_ = false;
rtti_ = false;
for( iter = parsed_options.begin(); iter != parsed_options.end(); ++iter) {
- if( iter->first.compare("ansistr_binary") == 0) {
- ansistr_binary_ = true;
- pwarning(0, "The 'ansistr_binary' option is deprecated.");
- } else if( iter->first.compare("register_types") == 0) {
+ if( iter->first.compare("register_types") == 0) {
register_types_ = true;
} else if( iter->first.compare("old_names") == 0) {
old_names_ = true;
@@ -102,10 +98,6 @@
}
}
- if(com_types_ && ansistr_binary_) {
- throw "com_types and ansistr_binary are mutually exclusive";
- }
-
out_dir_base_ = "gen-delphi";
escape_.clear();
escape_['\''] = "''";
@@ -468,7 +460,6 @@
void init_known_types_list();
bool is_void(t_type* type);
int indent_impl_;
- bool ansistr_binary_;
bool register_types_;
bool constprefix_;
bool old_names_;
@@ -760,7 +751,6 @@
f_all << "const" << endl;
indent_up();
- indent(f_all) << "c" << tmp_unit << "_Option_AnsiStr_Binary = " << (ansistr_binary_ ? "True" : "False") << ";" << endl;
indent(f_all) << "c" << tmp_unit << "_Option_Register_Types = " << (register_types_ ? "True" : "False") << ";" << endl;
indent(f_all) << "c" << tmp_unit << "_Option_ConstPrefix = " << (constprefix_ ? "True" : "False") << ";" << endl;
indent(f_all) << "c" << tmp_unit << "_Option_Events = " << (events_ ? "True" : "False") << ";" << endl;
@@ -2634,11 +2624,7 @@
break;
case t_base_type::TYPE_STRING:
if (type->is_binary()) {
- if (ansistr_binary_) {
- out << "ReadAnsiString();";
- } else {
- out << (com_types_ ? "ReadBinaryCOM();" : "ReadBinary();");
- }
+ out << (com_types_ ? "ReadBinaryCOM();" : "ReadBinary();");
} else {
out << "ReadString();";
}
@@ -2837,11 +2823,7 @@
break;
case t_base_type::TYPE_STRING:
if (type->is_binary()) {
- if (ansistr_binary_) {
- out << "WriteAnsiString(";
- } else {
- out << "WriteBinary(";
- }
+ out << "WriteBinary(";
} else {
out << "WriteString(";
}
@@ -3180,8 +3162,6 @@
return "";
case t_base_type::TYPE_STRING:
if (tbase->is_binary()) {
- if (ansistr_binary_)
- return "System.AnsiString";
if( com_types_)
return "IThriftBytes";
if( rtti_)
@@ -3400,11 +3380,7 @@
return "0";
case t_base_type::TYPE_STRING:
if (type->is_binary()) {
- if (ansistr_binary_) {
- return "''";
- } else {
- return "nil";
- }
+ return "nil";
} else {
return "''";
}
@@ -4072,7 +4048,6 @@
THRIFT_REGISTER_GENERATOR(
delphi,
"Delphi",
- " ansistr_binary: Use AnsiString for binary datatype (default is TBytes).\n"
" register_types: Enable TypeRegistry, allows for creation of struct, union\n"
" and container instances by interface or TypeInfo()\n"
" constprefix: Name TConstants classes after IDL to reduce ambiguities\n"
diff --git a/lib/delphi/src/Thrift.Protocol.pas b/lib/delphi/src/Thrift.Protocol.pas
index fd92da9..7cfc2ae 100644
--- a/lib/delphi/src/Thrift.Protocol.pas
+++ b/lib/delphi/src/Thrift.Protocol.pas
@@ -232,7 +232,7 @@
procedure WriteI64( const i64: Int64);
procedure WriteDouble( const d: Double);
procedure WriteString( const s: string );
- procedure WriteAnsiString( const s: AnsiString);
+ procedure WriteAnsiString( const s: AnsiString); deprecated 'AnsiString routines are deprecated, see THRIFT-5750';
procedure WriteBinary( const b: TBytes); overload;
procedure WriteBinary( const b: IThriftBytes); overload;
procedure WriteUuid( const uuid: TGuid);
@@ -259,7 +259,7 @@
function ReadBinaryCOM : IThriftBytes;
function ReadUuid: TGuid;
function ReadString: string;
- function ReadAnsiString: AnsiString;
+ function ReadAnsiString: AnsiString; deprecated 'AnsiString routines are deprecated, see THRIFT-5750';
function NextRecursionLevel : IProtocolRecursionTracker;
procedure IncrementRecursionDepth;
@@ -311,7 +311,6 @@
procedure WriteI64( const i64: Int64); virtual; abstract;
procedure WriteDouble( const d: Double); virtual; abstract;
procedure WriteString( const s: string ); virtual;
- procedure WriteAnsiString( const s: AnsiString); virtual;
procedure WriteBinary( const b: TBytes); overload; virtual; abstract;
procedure WriteUuid( const b: TGuid); virtual; abstract;
@@ -336,7 +335,6 @@
function ReadBinary: TBytes; virtual; abstract;
function ReadUuid: TGuid; virtual; abstract;
function ReadString: string; virtual;
- function ReadAnsiString: AnsiString; virtual;
// provide generic implementation for all derived classes
procedure WriteBinary( const bytes : IThriftBytes); overload; virtual;
@@ -344,6 +342,13 @@
property Transport: ITransport read GetTransport;
+ private
+ // THRIFT-5750 unit visible, but no longer protected - awaiting final removal
+ // - Note that you can implement whavetever you want in your derived class, but no longer inherit
+ // - The function can still be called via IProtocol until final removal
+ function ReadAnsiString: AnsiString; virtual; //deprecated;
+ procedure WriteAnsiString( const s: AnsiString); virtual; //deprecated;
+
public
constructor Create( const aTransport : ITransport); virtual;
end;
@@ -508,7 +513,6 @@
procedure WriteI64( const i64: Int64); override;
procedure WriteDouble( const d: Double); override;
procedure WriteString( const s: string ); override;
- procedure WriteAnsiString( const s: AnsiString); override;
procedure WriteBinary( const b: TBytes); override;
procedure WriteBinary( const bytes : IThriftBytes); overload; override;
procedure WriteUuid( const uuid: TGuid); override;
@@ -534,7 +538,15 @@
function ReadBinary: TBytes; override;
function ReadUuid: TGuid; override;
function ReadString: string; override;
- function ReadAnsiString: AnsiString; override;
+
+ private
+ // THRIFT-5750 unit visible, but no longer protected - awaiting final removal
+ // - Note that you can implement whavetever you want in your derived class, but no longer inherit
+ // - The function can still be called via IProtocol until final removal
+ {$WARN SYMBOL_DEPRECATED OFF}
+ function ReadAnsiString: AnsiString; override; deprecated;
+ procedure WriteAnsiString( const s: AnsiString); override; deprecated;
+ {$WARN SYMBOL_DEPRECATED DEFAULT}
end;
@@ -1520,7 +1532,9 @@
procedure TProtocolDecorator.WriteAnsiString( const s: AnsiString);
begin
+ {$WARN SYMBOL_DEPRECATED OFF}
FWrappedProtocol.WriteAnsiString( s);
+ {$WARN SYMBOL_DEPRECATED DEFAULT}
end;
@@ -1670,7 +1684,9 @@
function TProtocolDecorator.ReadAnsiString: AnsiString;
begin
+ {$WARN SYMBOL_DEPRECATED OFF}
result := FWrappedProtocol.ReadAnsiString;
+ {$WARN SYMBOL_DEPRECATED DEFAULT}
end;