diff options
Diffstat (limited to 'lib/server/makeprotocol.pl.in')
-rwxr-xr-x | lib/server/makeprotocol.pl.in | 789 |
1 files changed, 0 insertions, 789 deletions
diff --git a/lib/server/makeprotocol.pl.in b/lib/server/makeprotocol.pl.in index 9caa970d..a074b435 100755 --- a/lib/server/makeprotocol.pl.in +++ b/lib/server/makeprotocol.pl.in @@ -30,26 +30,6 @@ my %log_display_types = 'string' => ['%s', 'VAR.c_str()'] ); -<<<<<<< HEAD - - -my ($type, $file) = @ARGV; - -if($type ne 'Server' && $type ne 'Client') -{ - die "Neither Server or Client is specified on command line\n"; -} - -open IN, $file or die "Can't open input file $file\n"; - -print "Making $type protocol classes from $file...\n"; - -my @extra_header_files; - -my $implement_syslog = 0; -my $implement_filelog = 0; - -======= if (@ARGV != 1) { die "Usage: $0 <protocol-txt-file>\n"; @@ -63,7 +43,6 @@ print "Making protocol classes from $file...\n"; my @extra_header_files; ->>>>>>> 0.12 # read attributes my %attr; while(<IN>) @@ -75,43 +54,6 @@ while(<IN>) my ($k,$v) = split /\s+/,$l,2; -<<<<<<< HEAD - if($k eq 'ClientType') - { - add_type($v) if $type eq 'Client'; - } - elsif($k eq 'ServerType') - { - add_type($v) if $type eq 'Server'; - } - elsif($k eq 'ImplementLog') - { - my ($log_if_type,$log_type) = split /\s+/,$v; - if($type eq $log_if_type) - { - if($log_type eq 'syslog') - { - $implement_syslog = 1; - } - elsif($log_type eq 'file') - { - $implement_filelog = 1; - } - else - { - printf("ERROR: Unknown log type for implementation: $log_type\n"); - exit(1); - } - } - } - elsif($k eq 'LogTypeToText') - { - my ($log_if_type,$type_name,$printf_format,$arg_template) = split /\s+/,$v; - if($type eq $log_if_type) - { - $log_display_types{$type_name} = [$printf_format,$arg_template] - } -======= if($k eq 'AddType') { add_type($v); @@ -124,7 +66,6 @@ while(<IN>) { my ($type_name,$printf_format,$arg_template) = split /\s+/,$v; $log_display_types{$type_name} = [$printf_format,$arg_template] ->>>>>>> 0.12 } else { @@ -200,11 +141,6 @@ close IN; # open files -<<<<<<< HEAD -my $h_filename = 'autogen_'.$protocol_name.'Protocol'.$type.'.h'; -open CPP,'>autogen_'.$protocol_name.'Protocol'.$type.'.cpp'; -open H,">$h_filename"; -======= my $filename_base = 'autogen_'.$protocol_name.'Protocol'; print "Writing $filename_base.cpp\n"; print "Writing $filename_base.h\n"; @@ -212,7 +148,6 @@ open CPP, "> $filename_base.cpp"; open H, "> $filename_base.h"; my $guardname = uc 'AUTOGEN_'.$protocol_name.'Protocol_H'; ->>>>>>> 0.12 print CPP <<__E; @@ -222,41 +157,16 @@ print CPP <<__E; #include <sstream> -<<<<<<< HEAD -#include "$h_filename" -#include "IOStream.h" - -__E - -if($implement_syslog) -{ - print H <<EOF; -#ifndef WIN32 -#include <syslog.h> -#endif -EOF -} - - -my $guardname = uc 'AUTOGEN_'.$protocol_name.'Protocol'.$type.'_H'; -print H <<__E; - -======= #include "$filename_base.h" #include "IOStream.h" __E print H <<__E; ->>>>>>> 0.12 // Auto-generated file -- do not edit #ifndef $guardname #define $guardname -<<<<<<< HEAD -#include "Protocol.h" -#include "ProtocolObject.h" -======= #include <cstdio> #include <list> @@ -266,128 +176,16 @@ print H <<__E; #include "Protocol.h" #include "Message.h" ->>>>>>> 0.12 #include "ServerException.h" class IOStream; -<<<<<<< HEAD -__E - -if($implement_filelog) -{ - print H qq~#include <stdio.h>\n~; -} -======= __E ->>>>>>> 0.12 # extra headers for(@extra_header_files) { -<<<<<<< HEAD - print H qq~#include "$_"\n~ -} -print H "\n"; - -if($type eq 'Server') -{ - # need utils file for the server - print H '#include "Utils.h"',"\n\n" -} - - -my $derive_objects_from = 'ProtocolObject'; -my $objects_extra_h = ''; -my $objects_extra_cpp = ''; -if($type eq 'Server') -{ - # define the context - print H "class $context_class;\n\n"; - print CPP "#include \"$context_class_inc\"\n\n"; - - # change class we derive the objects from - $derive_objects_from = $protocol_name.'ProtocolObject'; - - $objects_extra_h = <<__E; - virtual std::auto_ptr<ProtocolObject> DoCommand(${protocol_name}ProtocolServer &rProtocol, $context_class &rContext); -__E - $objects_extra_cpp = <<__E; -std::auto_ptr<ProtocolObject> ${derive_objects_from}::DoCommand(${protocol_name}ProtocolServer &rProtocol, $context_class &rContext) -{ - THROW_EXCEPTION(ConnectionException, Conn_Protocol_TriedToExecuteReplyCommand) -} -__E -} - -print CPP qq~#include "MemLeakFindOn.h"\n~; - -if($type eq 'Client' && ($implement_syslog || $implement_filelog)) -{ - # change class we derive the objects from - $derive_objects_from = $protocol_name.'ProtocolObjectCl'; -} -if($implement_syslog) -{ - $objects_extra_h .= <<__E; - virtual void LogSysLog(const char *Action) const = 0; -__E -} -if($implement_filelog) -{ - $objects_extra_h .= <<__E; - virtual void LogFile(const char *Action, FILE *file) const = 0; -__E -} - -if($derive_objects_from ne 'ProtocolObject') -{ - # output a definition for the protocol object derived class - print H <<__E; -class ${protocol_name}ProtocolServer; - -class $derive_objects_from : public ProtocolObject -{ -public: - $derive_objects_from(); - virtual ~$derive_objects_from(); - $derive_objects_from(const $derive_objects_from &rToCopy); - -$objects_extra_h -}; -__E - - # and some cpp definitions - print CPP <<__E; -${derive_objects_from}::${derive_objects_from}() -{ -} -${derive_objects_from}::~${derive_objects_from}() -{ -} -${derive_objects_from}::${derive_objects_from}(const $derive_objects_from &rToCopy) -{ -} -$objects_extra_cpp -__E -} - - - -my $classname_base = $protocol_name.'Protocol'.$type; - -# output the classes -for my $cmd (@cmd_list) -{ - print H <<__E; -class $classname_base$cmd : public $derive_objects_from -{ -public: - $classname_base$cmd(); - $classname_base$cmd(const $classname_base$cmd &rToCopy); - ~$classname_base$cmd(); -======= print H qq@#include "$_"\n@; } @@ -473,17 +271,13 @@ public: $cmd_class(); $cmd_class(const $cmd_class &rToCopy); ~$cmd_class(); ->>>>>>> 0.12 int GetType() const; enum { TypeID = $cmd_id{$cmd} }; __E -<<<<<<< HEAD -======= ->>>>>>> 0.12 # constants if(exists $cmd_constants{$cmd}) { @@ -491,82 +285,18 @@ __E print H join(",\n\t\t",@{$cmd_constants{$cmd}}); print H "\n\t};\n"; } -<<<<<<< HEAD -======= ->>>>>>> 0.12 # flags if(obj_is_type($cmd,'EndsConversation')) { print H "\tbool IsConversationEnd() const;\n"; } -<<<<<<< HEAD -======= ->>>>>>> 0.12 if(obj_is_type($cmd,'IsError')) { print H "\tbool IsError(int &rTypeOut, int &rSubTypeOut) const;\n"; print H "\tstd::string GetMessage() const;\n"; } -<<<<<<< HEAD - if($type eq 'Server' && obj_is_type($cmd, 'Command')) - { - print H "\tstd::auto_ptr<ProtocolObject> DoCommand(${protocol_name}ProtocolServer &rProtocol, $context_class &rContext); // IMPLEMENT THIS\n" - } - - # want to be able to read from streams? - my $read_from_streams = (obj_is_type($cmd,'Command') && $type eq 'Server') || (obj_is_type($cmd,'Reply') && $type eq 'Client'); - my $write_to_streams = (obj_is_type($cmd,'Command') && $type eq 'Client') || (obj_is_type($cmd,'Reply') && $type eq 'Server'); - - if($read_from_streams) - { - print H "\tvoid SetPropertiesFromStreamData(Protocol &rProtocol);\n"; - - # write Get functions - for(my $x = 0; $x < $#{$cmd_contents{$cmd}}; $x+=2) - { - my ($ty,$nm) = (${$cmd_contents{$cmd}}[$x], ${$cmd_contents{$cmd}}[$x+1]); - - print H "\t".translate_type_to_arg_type($ty)." Get$nm() {return m$nm;}\n"; - } - } - my $param_con_args = ''; - if($write_to_streams) - { - # extra constructor? - if($#{$cmd_contents{$cmd}} >= 0) - { - my @a; - for(my $x = 0; $x < $#{$cmd_contents{$cmd}}; $x+=2) - { - my ($ty,$nm) = (${$cmd_contents{$cmd}}[$x], ${$cmd_contents{$cmd}}[$x+1]); - - push @a,translate_type_to_arg_type($ty)." $nm"; - } - $param_con_args = join(', ',@a); - print H "\t$classname_base$cmd(".$param_con_args.");\n"; - } - print H "\tvoid WritePropertiesToStreamData(Protocol &rProtocol) const;\n"; - # set functions - for(my $x = 0; $x < $#{$cmd_contents{$cmd}}; $x+=2) - { - my ($ty,$nm) = (${$cmd_contents{$cmd}}[$x], ${$cmd_contents{$cmd}}[$x+1]); - - print H "\tvoid Set$nm(".translate_type_to_arg_type($ty)." $nm) {m$nm = $nm;}\n"; - } - } - - if($implement_syslog) - { - print H "\tvirtual void LogSysLog(const char *Action) const;\n"; - } - if($implement_filelog) - { - print H "\tvirtual void LogFile(const char *Action, FILE *file) const;\n"; - } - -======= if(obj_is_type($cmd, 'Command')) { @@ -613,7 +343,6 @@ __E print H "\tvirtual void LogSysLog(const char *Action) const;\n"; print H "\tvirtual void LogFile(const char *Action, FILE *file) const;\n"; print H "\tvirtual std::string ToString() const;\n"; ->>>>>>> 0.12 # write member variables and setup for cpp file my @def_constructor_list; @@ -647,20 +376,6 @@ __E my $param_con_vars = join(",\n\t ",@param_constructor_list); $param_con_vars = "\n\t: ".$param_con_vars if $param_con_vars ne ''; -<<<<<<< HEAD - my $class = "$classname_base$cmd".'::'; - print CPP <<__E; -$class$classname_base$cmd()$def_con_vars -{ -} -$class$classname_base$cmd(const $classname_base$cmd &rToCopy)$copy_con_vars -{ -} -$class~$classname_base$cmd() -{ -} -int ${class}GetType() const -======= print CPP <<__E; $cmd_class\::$cmd_class()$def_con_vars { @@ -672,56 +387,10 @@ $cmd_class\::~$cmd_class() { } int $cmd_class\::GetType() const ->>>>>>> 0.12 { return $cmd_id{$cmd}; } __E -<<<<<<< HEAD - if($read_from_streams) - { - print CPP "void ${class}SetPropertiesFromStreamData(Protocol &rProtocol)\n{\n"; - for(my $x = 0; $x < $#{$cmd_contents{$cmd}}; $x+=2) - { - my ($ty,$nm) = (${$cmd_contents{$cmd}}[$x], ${$cmd_contents{$cmd}}[$x+1]); - if($ty =~ m/\Avector/) - { - print CPP "\trProtocol.ReadVector(m$nm);\n"; - } - else - { - print CPP "\trProtocol.Read(m$nm);\n"; - } - } - print CPP "}\n"; - } - if($write_to_streams) - { - # implement extra constructor? - if($param_con_vars ne '') - { - print CPP "$class$classname_base$cmd($param_con_args)$param_con_vars\n{\n}\n"; - } - print CPP "void ${class}WritePropertiesToStreamData(Protocol &rProtocol) const\n{\n"; - for(my $x = 0; $x < $#{$cmd_contents{$cmd}}; $x+=2) - { - my ($ty,$nm) = (${$cmd_contents{$cmd}}[$x], ${$cmd_contents{$cmd}}[$x+1]); - if($ty =~ m/\Avector/) - { - print CPP "\trProtocol.WriteVector(m$nm);\n"; - } - else - { - print CPP "\trProtocol.Write(m$nm);\n"; - } - } - print CPP "}\n"; - } - if(obj_is_type($cmd,'EndsConversation')) - { - print CPP "bool ${class}IsConversationEnd() const\n{\n\treturn true;\n}\n"; - } -======= print CPP "void $cmd_class\::SetPropertiesFromStreamData(Protocol &rProtocol)\n{\n"; for(my $x = 0; $x < $#{$cmd_contents{$cmd}}; $x+=2) { @@ -762,27 +431,18 @@ __E print CPP "bool $cmd_class\::IsConversationEnd() const\n{\n\treturn true;\n}\n"; } ->>>>>>> 0.12 if(obj_is_type($cmd,'IsError')) { # get parameters my ($mem_type,$mem_subtype) = split /,/,obj_get_type_params($cmd,'IsError'); print CPP <<__E; -<<<<<<< HEAD -bool ${class}IsError(int &rTypeOut, int &rSubTypeOut) const -======= bool $cmd_class\::IsError(int &rTypeOut, int &rSubTypeOut) const ->>>>>>> 0.12 { rTypeOut = m$mem_type; rSubTypeOut = m$mem_subtype; return true; } -<<<<<<< HEAD -std::string ${class}GetMessage() const -======= std::string $cmd_class\::GetMessage() const ->>>>>>> 0.12 { switch(m$mem_subtype) { @@ -806,149 +466,6 @@ __E __E } -<<<<<<< HEAD - if($implement_syslog) - { - my ($log) = make_log_strings_framework($cmd); - print CPP <<__E; -void ${class}LogSysLog(const char *Action) const -{ - BOX_TRACE($log); -} -__E - } - if($implement_filelog) - { - my ($log) = make_log_strings_framework($cmd); - print CPP <<__E; -void ${class}LogFile(const char *Action, FILE *File) const -{ - std::ostringstream oss; - oss << $log; - ::fprintf(File, "%s\\n", oss.str().c_str()); - ::fflush(File); -} -__E - } -} - -# finally, the protocol object itself -print H <<__E; -class $classname_base : public Protocol -{ -public: - $classname_base(IOStream &rStream); - virtual ~$classname_base(); - - std::auto_ptr<$derive_objects_from> Receive(); - void Send(const ${derive_objects_from} &rObject); -__E -if($implement_syslog) -{ - print H "\tvoid SetLogToSysLog(bool Log = false) {mLogToSysLog = Log;}\n"; -} -if($implement_filelog) -{ - print H "\tvoid SetLogToFile(FILE *File = 0) {mLogToFile = File;}\n"; -} -if($type eq 'Server') -{ - # need to put in the conversation function - print H "\tvoid DoServer($context_class &rContext);\n\n"; - # and the send vector thing - print H "\tvoid SendStreamAfterCommand(IOStream *pStream);\n\n"; -} -if($type eq 'Client') -{ - # add plain object taking query functions - my $with_params; - for my $cmd (@cmd_list) - { - if(obj_is_type($cmd,'Command')) - { - my $has_stream = obj_is_type($cmd,'StreamWithCommand'); - my $argextra = $has_stream?', IOStream &rStream':''; - my $queryextra = $has_stream?', rStream':''; - my $reply = obj_get_type_params($cmd,'Command'); - print H "\tstd::auto_ptr<$classname_base$reply> Query(const $classname_base$cmd &rQuery$argextra);\n"; - my @a; - my @na; - for(my $x = 0; $x < $#{$cmd_contents{$cmd}}; $x+=2) - { - my ($ty,$nm) = (${$cmd_contents{$cmd}}[$x], ${$cmd_contents{$cmd}}[$x+1]); - push @a,translate_type_to_arg_type($ty)." $nm"; - push @na,"$nm"; - } - my $ar = join(', ',@a); - my $nar = join(', ',@na); - $nar = "($nar)" if $nar ne ''; - - $with_params .= "\tinline std::auto_ptr<$classname_base$reply> Query$cmd($ar$argextra)\n\t{\n"; - $with_params .= "\t\t$classname_base$cmd send$nar;\n"; - $with_params .= "\t\treturn Query(send$queryextra);\n"; - $with_params .= "\t}\n"; - } - } - # quick hack to correct bad argument lists for commands with zero paramters but with streams - $with_params =~ s/\(, /(/g; - print H "\n",$with_params,"\n"; -} -print H <<__E; -private: - $classname_base(const $classname_base &rToCopy); -__E -if($type eq 'Server') -{ - # need to put the streams to send vector - print H "\tstd::vector<IOStream*> mStreamsToSend;\n\tvoid DeleteStreamsToSend();\n"; -} - -if($implement_filelog || $implement_syslog) -{ - print H <<__E; - virtual void InformStreamReceiving(u_int32_t Size); - virtual void InformStreamSending(u_int32_t Size); -__E -} - -if($implement_syslog) -{ - print H "private:\n\tbool mLogToSysLog;\n"; -} -if($implement_filelog) -{ - print H "private:\n\tFILE *mLogToFile;\n"; -} -print H <<__E; - -protected: - virtual std::auto_ptr<ProtocolObject> MakeProtocolObject(int ObjType); - virtual const char *GetIdentString(); -}; - -__E - -my $constructor_extra = ''; -$constructor_extra .= ', mLogToSysLog(false)' if $implement_syslog; -$constructor_extra .= ', mLogToFile(0)' if $implement_filelog; - -my $destructor_extra = ($type eq 'Server')?"\n\tDeleteStreamsToSend();":''; - -my $prefix = $classname_base.'::'; -print CPP <<__E; -$prefix$classname_base(IOStream &rStream) - : Protocol(rStream)$constructor_extra -{ -} -$prefix~$classname_base() -{$destructor_extra -} -const char *${prefix}GetIdentString() -{ - return "$ident_string"; -} -std::auto_ptr<ProtocolObject> ${prefix}MakeProtocolObject(int ObjType) -======= my ($log) = make_log_strings_framework($cmd); print CPP <<__E; std::string $cmd_class\::ToString() const @@ -1388,25 +905,11 @@ __E # write receive and send functions print CPP <<__E; std::auto_ptr<Message> $server_or_client_class\::MakeMessage(int ObjType) ->>>>>>> 0.12 { switch(ObjType) { __E -<<<<<<< HEAD -# do objects within this -for my $cmd (@cmd_list) -{ - print CPP <<__E; - case $cmd_id{$cmd}: - return std::auto_ptr<ProtocolObject>(new $classname_base$cmd); - break; -__E -} - -print CPP <<__E; -======= # do objects within this for my $cmd (@cmd_list) { @@ -1418,40 +921,11 @@ __E } print CPP <<__E; ->>>>>>> 0.12 default: THROW_EXCEPTION(ConnectionException, Conn_Protocol_UnknownCommandRecieved) } } __E -<<<<<<< HEAD -# write receive and send functions -print CPP <<__E; -std::auto_ptr<$derive_objects_from> ${prefix}Receive() -{ - std::auto_ptr<${derive_objects_from}> preply((${derive_objects_from}*)(Protocol::Receive().release())); - -__E - if($implement_syslog) - { - print CPP <<__E; - if(mLogToSysLog) - { - preply->LogSysLog("Receive"); - } -__E - } - if($implement_filelog) - { - print CPP <<__E; - if(mLogToFile != 0) - { - preply->LogFile("Receive", mLogToFile); - } -__E - } -print CPP <<__E; -======= if(not $writing_local) { @@ -1470,45 +944,10 @@ std::auto_ptr<$message_base_class> $server_or_client_class\::Receive() { preply->LogFile("Receive", GetLogToFile()); } ->>>>>>> 0.12 return preply; } -<<<<<<< HEAD -void ${prefix}Send(const ${derive_objects_from} &rObject) -{ -__E - if($implement_syslog) - { - print CPP <<__E; - if(mLogToSysLog) - { - rObject.LogSysLog("Send"); - } -__E - } - if($implement_filelog) - { - print CPP <<__E; - if(mLogToFile != 0) - { - rObject.LogFile("Send", mLogToFile); - } -__E - } - -print CPP <<__E; - Protocol::Send(rObject); -} - -__E -# write server function? -if($type eq 'Server') -{ - print CPP <<__E; -void ${prefix}DoServer($context_class &rContext) -======= void $server_or_client_class\::Send(const $message_base_class &rObject) { if(GetLogToSysLog()) @@ -1532,7 +971,6 @@ __E { print CPP <<__E; void $server_or_client_class\::DoServer($context_class &rContext) ->>>>>>> 0.12 { // Handshake with client Handshake(); @@ -1542,22 +980,6 @@ void $server_or_client_class\::DoServer($context_class &rContext) while(inProgress) { // Get an object from the conversation -<<<<<<< HEAD - std::auto_ptr<${derive_objects_from}> pobj(Receive()); - - // Run the command - std::auto_ptr<${derive_objects_from}> preply((${derive_objects_from}*)(pobj->DoCommand(*this, rContext).release())); - - // Send the reply - Send(*(preply.get())); - - // Send any streams - for(unsigned int s = 0; s < mStreamsToSend.size(); s++) - { - // Send the streams - SendStream(*mStreamsToSend[s]); - } -======= std::auto_ptr<$message_base_class> pobj = Receive(); // Run the command @@ -1574,7 +996,6 @@ void $server_or_client_class\::DoServer($context_class &rContext) SendStream(**i); } ->>>>>>> 0.12 // Delete these streams DeleteStreamsToSend(); @@ -1586,122 +1007,6 @@ void $server_or_client_class\::DoServer($context_class &rContext) } } -<<<<<<< HEAD -void ${prefix}SendStreamAfterCommand(IOStream *pStream) -{ - ASSERT(pStream != NULL); - mStreamsToSend.push_back(pStream); -} - -void ${prefix}DeleteStreamsToSend() -{ - for(std::vector<IOStream*>::iterator i(mStreamsToSend.begin()); i != mStreamsToSend.end(); ++i) - { - delete (*i); - } - mStreamsToSend.clear(); -} - -__E -} - -# write logging functions? -if($implement_filelog || $implement_syslog) -{ - my ($fR,$fS); - - if($implement_syslog) - { - $fR .= <<__E; - if(mLogToSysLog) - { - if(Size==Protocol::ProtocolStream_SizeUncertain) - { - BOX_TRACE("Receiving stream, size uncertain"); - } - else - { - BOX_TRACE("Receiving stream, size " << Size); - } - } -__E - - $fS .= <<__E; - if(mLogToSysLog) - { - if(Size==Protocol::ProtocolStream_SizeUncertain) - { - BOX_TRACE("Sending stream, size uncertain"); - } - else - { - BOX_TRACE("Sending stream, size " << Size); - } - } -__E - } - - if($implement_filelog) - { - $fR .= <<__E; - if(mLogToFile) - { - ::fprintf(mLogToFile, - (Size==Protocol::ProtocolStream_SizeUncertain) - ?"Receiving stream, size uncertain\\n" - :"Receiving stream, size %d\\n", Size); - ::fflush(mLogToFile); - } -__E - $fS .= <<__E; - if(mLogToFile) - { - ::fprintf(mLogToFile, - (Size==Protocol::ProtocolStream_SizeUncertain) - ?"Sending stream, size uncertain\\n" - :"Sending stream, size %d\\n", Size); - ::fflush(mLogToFile); - } -__E - } - - print CPP <<__E; - -void ${prefix}InformStreamReceiving(u_int32_t Size) -{ -$fR} - -void ${prefix}InformStreamSending(u_int32_t Size) -{ -$fS} - -__E -} - - -# write client Query functions? -if($type eq 'Client') -{ - for my $cmd (@cmd_list) - { - if(obj_is_type($cmd,'Command')) - { - my $reply = obj_get_type_params($cmd,'Command'); - my $reply_id = $cmd_id{$reply}; - my $has_stream = obj_is_type($cmd,'StreamWithCommand'); - my $argextra = $has_stream?', IOStream &rStream':''; - my $send_stream_extra = ''; - if($has_stream) - { - $send_stream_extra = <<__E; - - // Send stream after the command - SendStream(rStream); -__E - } - print CPP <<__E; -std::auto_ptr<$classname_base$reply> ${classname_base}::Query(const $classname_base$cmd &rQuery$argextra) -======= __E } @@ -1734,44 +1039,10 @@ __E print CPP <<__E; std::auto_ptr<$reply_class> $server_or_client_class\::Query(const $request_class &rQuery$argextra) ->>>>>>> 0.12 { // Send query Send(rQuery); $send_stream_extra -<<<<<<< HEAD - // Wait for the reply - std::auto_ptr<${derive_objects_from}> preply(Receive().release()); - - if(preply->GetType() == $reply_id) - { - // Correct response - return std::auto_ptr<$classname_base$reply>(($classname_base$reply*)preply.release()); - } - else - { - // Set protocol error - int type, subType; - if(preply->IsError(type, subType)) - { - SetError(type, subType); - BOX_WARNING("$cmd command failed: received error " << - ((${classname_base}Error&)*preply).GetMessage()); - } - else - { - SetError(Protocol::UnknownError, Protocol::UnknownError); - BOX_WARNING("$cmd command failed: received " - "unexpected response type " << - preply->GetType()); - } - - // Throw an exception - THROW_EXCEPTION(ConnectionException, Conn_Protocol_UnexpectedReply) - } -} -__E -======= // Wait for the reply std::auto_ptr<$message_base_class> preply = Receive(); @@ -1808,16 +1079,10 @@ std::auto_ptr<$reply_class> $server_or_client_class\::Query(const $request_class __E } } ->>>>>>> 0.12 } } } -<<<<<<< HEAD - - -======= ->>>>>>> 0.12 print H <<__E; #endif // $guardname @@ -1827,12 +1092,7 @@ __E close H; close CPP; -<<<<<<< HEAD - -sub obj_is_type -======= sub obj_is_type ($$) ->>>>>>> 0.12 { my ($c,$ty) = @_; for(@{$cmd_attributes{$c}}) @@ -1886,43 +1146,6 @@ sub translate_type_to_member_type return $typename } -<<<<<<< HEAD -sub make_log_strings -{ - my ($cmd) = @_; - - my @str; - my @arg; - for(my $x = 0; $x < $#{$cmd_contents{$cmd}}; $x+=2) - { - my ($ty,$nm) = (${$cmd_contents{$cmd}}[$x], ${$cmd_contents{$cmd}}[$x+1]); - - if(exists $log_display_types{$ty}) - { - # need to translate it - my ($format,$arg) = @{$log_display_types{$ty}}; - $arg =~ s/VAR/m$nm/g; - - if ($format eq "0x%llx" and $target_windows) - { - $format = "0x%I64x"; - $arg = "(uint64_t)$arg"; - } - - push @str,$format; - push @arg,$arg; - } - else - { - # is opaque - push @str,'OPAQUE'; - } - } - return ($cmd.'('.join(',',@str).')', join(',','',@arg)); -} - -======= ->>>>>>> 0.12 sub make_log_strings_framework { my ($cmd) = @_; @@ -1939,11 +1162,7 @@ sub make_log_strings_framework my ($format,$arg) = @{$log_display_types{$ty}}; $arg =~ s/VAR/m$nm/g; -<<<<<<< HEAD - if ($format eq '\\"%s\\"') -======= if ($format eq '"%s"') ->>>>>>> 0.12 { $arg = "\"\\\"\" << $arg << \"\\\"\""; } @@ -1970,11 +1189,7 @@ sub make_log_strings_framework } } -<<<<<<< HEAD - my $log_cmd = "Action << \" $cmd(\" "; -======= my $log_cmd = '"'.$cmd.'(" '; ->>>>>>> 0.12 foreach my $arg (@args) { $arg = "<< $arg "; @@ -1984,7 +1199,3 @@ sub make_log_strings_framework return $log_cmd; } -<<<<<<< HEAD - -======= ->>>>>>> 0.12 |