better formatting of non-DC msg logging

This commit is contained in:
Darren Ranalli 2007-02-23 08:42:36 +00:00
parent 58800c72a0
commit c26824b602
2 changed files with 35 additions and 8 deletions

View File

@ -236,7 +236,7 @@ check_datagram() {
#endif //WANT_NATIVE_NET #endif //WANT_NATIVE_NET
while (do_check_datagram()) { //Read a datagram while (do_check_datagram()) { //Read a datagram
if (get_verbose()) { if (get_verbose()) {
describe_message(nout, "RECV", _dg.get_message()); describe_message(nout, "RECV", _dg);
} }
// Start breaking apart the datagram. // Start breaking apart the datagram.
@ -361,7 +361,7 @@ send_datagram(const Datagram &dg) {
} }
if (get_verbose()) { if (get_verbose()) {
describe_message(nout, "SEND", dg.get_message()); describe_message(nout, "SEND", dg);
} }
#ifdef WANT_NATIVE_NET #ifdef WANT_NATIVE_NET
@ -703,10 +703,10 @@ handle_update_field_owner() {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
void CConnectionRepository:: void CConnectionRepository::
describe_message(ostream &out, const string &prefix, describe_message(ostream &out, const string &prefix,
const string &message_data) const { const Datagram &dg) const {
DCPacker packer; DCPacker packer;
packer.set_unpack_data(message_data); packer.set_unpack_data(dg.get_message());
CHANNEL_TYPE do_id; CHANNEL_TYPE do_id;
int msg_type; int msg_type;
bool is_update = false; bool is_update = false;
@ -728,7 +728,35 @@ describe_message(ostream &out, const string &prefix,
} }
if (!is_update) { if (!is_update) {
out << full_prefix << "message " << msg_type << "\n"; // figure out the name of the message
// TODO: print out the arguments to the message
string msgName;
#ifdef HAVE_PYTHON
if (_python_repository != (PyObject *)NULL) {
PyObject *msgId = PyLong_FromLong(msg_type);
nassertv(msgId != NULL);
PyObject *methodName = PyString_FromString("_getMsgName");
nassertv(methodName != NULL);
PyObject *result = PyObject_CallMethodObjArgs(_python_repository, methodName,
msgId, NULL);
nassertv(result != NULL);
msgName += string(PyString_AsString(result));
Py_DECREF(methodName);
Py_DECREF(msgId);
Py_DECREF(result);
}
#endif
if (msgName.length() == 0) {
msgName += "unknown message ";
msgName += msg_type;
msgName += "\n";
}
out << full_prefix << ":" << msgName << "\n";
dg.dump_hex(out);
} else { } else {
// It's an update message. Figure out what dclass the object is // It's an update message. Figure out what dclass the object is
@ -773,8 +801,7 @@ describe_message(ostream &out, const string &prefix,
} else { } else {
out << full_prefix << out << full_prefix <<
":" << do_id << ":" << dclass->get_name() << "(" << do_id << ").";
":" << dclass->get_name() << ".";
DCField *field = dclass->get_field_by_index(field_id); DCField *field = dclass->get_field_by_index(field_id);
if (field == (DCField *)NULL) { if (field == (DCField *)NULL) {
out << "unknown field " << field_id << "\n"; out << "unknown field " << field_id << "\n";

View File

@ -130,7 +130,7 @@ private:
bool handle_update_field_owner(); bool handle_update_field_owner();
void describe_message(ostream &out, const string &prefix, void describe_message(ostream &out, const string &prefix,
const string &message_data) const; const Datagram &dg) const;
#ifdef HAVE_PYTHON #ifdef HAVE_PYTHON
PyObject *_python_repository; PyObject *_python_repository;