00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "stdafx.h"
00012
00013 #include "ippdme/Command/ippCommand.h"
00014 #include "ippdme/misc/ippStringBuilder.h"
00015
00016 #include "ippdme/assert.h"
00017
00018 ippCommandPtr g;
00019 ippCommandPtr g1=g;
00020
00021 ippCommand::ippCommand(
00022 unsigned int inTagNumber,
00023 ippCommandNameType inCommandName
00024 )
00025 : _tag(inTagNumber, inCommandName)
00026 {
00027 _commandName = inCommandName;
00028 }
00029
00030
00031 ippCommand::ippCommand(
00032 unsigned int inTagNumber,
00033 tagIdType inTagType,
00034 ippCommandNameType inCommandName
00035 )
00036 : _tag(inTagNumber, inTagType)
00037 {
00038 _commandName = inCommandName;
00039
00040 }
00041
00042 ippCommand::~ippCommand()
00043 {
00044
00045 }
00046
00047
00048
00049 const char * getCommandNameString(ippCommandNameType key)
00050 {
00051 switch(key)
00052 {
00053 #define ENUM(a,b) case ipp::a: return b;
00054 COMMAND_ENUMERATION
00055 #undef ENUM
00056 };
00057 return "bug";
00058 }
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078 void ippCommand::printLikeGet(
00079 ippStringBuilder& builder,
00080 bool R,
00081 bool X, bool Y, bool Z,
00082 bool A, bool B, bool C
00083 ) const
00084 {
00085 if (R) builder.AppendFunc("R");
00086 if (X) builder.AppendFunc("X");
00087 if (Y) builder.AppendFunc("Y");
00088 if (Z) builder.AppendFunc("Z");
00089 if (A) builder.AppendFunc("Tool.A");
00090 if (B) builder.AppendFunc("Tool.B");
00091 if (C) builder.AppendFunc("Tool.C");
00092 }
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111 std::string ippCommand::getCommandString() const
00112 {
00113
00114 switch(_commandName)
00115 {
00116 case AbortE:
00117 case ClearAllErrors:
00118 case DisableUser:
00119 case EnableUser:
00120 case EndSession:
00121 case EnumTools:
00122 case GetCoordSystem:
00123 case GetDMEVersion:
00124 case GetErrStatusE:
00125 case GetMachineClass:
00126 case GetXtdErrStatus:
00127 case Home:
00128 case IsHomed:
00129 case IsUserEnabled:
00130 case ReQualify:
00131 case StartSession:
00132 case StopAllDaemons:
00133 case EnumCoordSystems: {
00134 ippStringBuilder builder(_tag);
00135 builder.StartFunc(getCommandNameString(_commandName));
00136 builder.EndFunc();
00137 return builder.ToString();
00138 break;
00139 }
00140 default: {
00141 IPP_ASSERT_FAIL("Unsupported case :");
00142 return "ERROR";
00143 }
00144 }
00145 }
00146