void JVMGetThreadParent::HandleSuccess ( const JString& origData ) { JVMLink* link = dynamic_cast<JVMLink*>(CMGetLink()); const JVMSocket::MessageReady* msg; if (!link->GetLatestMessageFromJVM(&msg)) { return; } if (itsNode != NULL && !itsCheckOnlyFlag) { const unsigned char* data = msg->GetData(); const JUInt64 id = JVMSocket::Unpack(link->GetObjectIDSize(), data); itsNode->FindParent(id); } }
void JVMGetThreadParent::Starting() { CMCommand::Starting(); if (itsNode != NULL) { JVMLink* link = dynamic_cast<JVMLink*>(CMGetLink()); const JSize length = link->GetObjectIDSize(); unsigned char* data = (unsigned char*) calloc(length, 1); assert( data != NULL ); JVMSocket::Pack(length, itsNode->GetID(), data); const JBoolean isGroup = JI2B(itsNode->GetType() == JVMThreadNode::kGroupType); link->Send(this, isGroup ? JVMLink::kThreadGroupReferenceCmdSet : JVMLink::kThreadReferenceCmdSet, isGroup ? JVMLink::kTGParentCmd : JVMLink::kTThreadGroupCmd, data, length); free(data); } }