MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / process

Method process

Engine/source/app/net/net.cpp:105–156  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

103 }
104
105 void RemoteCommandEvent::process(NetConnection *conn)
106 {
107 static char idBuf[10];
108
109 // de-tag the command name
110
111 if (mArgc < 1 || mArgv[1][0] != StringTagPrefixByte)
112 return;
113
114 for(S32 i = mArgc - 1; i >= 0; i--)
115 {
116 char *arg = mArgv[i+1];
117 if(*arg == StringTagPrefixByte)
118 {
119 // it's a tag:
120 U32 localTag = dAtoi(arg + 1);
121 NetStringHandle tag = conn->translateRemoteStringId(localTag);
122 NetStringTable::expandString( tag,
123 mBuf,
124 sizeof(mBuf),
125 (mArgc - 1) - i,
126 (const char**)(mArgv + i + 2) );
127 dFree(mArgv[i+1]);
128 mArgv[i+1] = dStrdup(mBuf);
129 }
130 }
131 const char *rmtCommandName = dStrchr(mArgv[1], ' ') + 1;
132 if(conn->isConnectionToServer())
133 {
134 dStrcpy(mBuf, "clientCmd", 1024);
135 dStrcat(mBuf, rmtCommandName, 1024);
136
137 char *temp = mArgv[1];
138 mArgv[1] = mBuf;
139
140 Con::execute(mArgc, (const char **) mArgv+1);
141 mArgv[1] = temp;
142 }
143 else
144 {
145 dStrcpy(mBuf, "serverCmd", 1024);
146 dStrcat(mBuf, rmtCommandName, 1024);
147 char *temp = mArgv[1];
148
149 dSprintf(idBuf, sizeof(idBuf), "%d", conn->getId());
150 mArgv[0] = mBuf;
151 mArgv[1] = idBuf;
152
153 Con::execute(mArgc+1, (const char **) mArgv);
154 mArgv[1] = temp;
155 }
156 }
157
158 void RemoteCommandEvent::sendRemoteCommand(NetConnection *conn, S32 argc, const char **argv)
159 {

Callers

nothing calls this directly

Calls 10

dAtoiFunction · 0.85
dStrcpyFunction · 0.85
dStrcatFunction · 0.85
executeFunction · 0.85
dSprintfFunction · 0.85
isConnectionToServerMethod · 0.80
getIdMethod · 0.65
dFreeFunction · 0.50
dStrchrFunction · 0.50

Tested by

no test coverage detected