void dmtcp::ProcessInfo::serialize ( jalib::JBinarySerializer& o ) { JSERIALIZE_ASSERT_POINT ( "dmtcp::ProcessInfo:" ); if (o.isWriter()){ refresh(); } o & _isRootOfProcessTree & _pid & _sid & _ppid & _gid & _fgid; o & _procname & _hostname & _upid & _uppid; o & _compGroup & _numPeers & _noCoordinator & _argvSize & _envSize; JTRACE("Serialized process information") (_sid) (_ppid) (_gid) (_fgid) (_procname) (_hostname) (_upid) (_uppid) (_compGroup) (_numPeers) (_noCoordinator) (_argvSize) (_envSize); JASSERT(!_noCoordinator || _numPeers == 1) (_noCoordinator) (_numPeers); if ( _isRootOfProcessTree ) { JTRACE ( "This process is Root of Process Tree" ); } JTRACE ("Serializing ChildPid Table") (_childTable.size()) (o.filename()); o.serializeMap(_childTable); JTRACE ("Serializing tidVector"); JSERIALIZE_ASSERT_POINT ( "TID Vector:[" ); o & _tidVector; JSERIALIZE_ASSERT_POINT ( "}" ); JSERIALIZE_ASSERT_POINT( "EOF" ); }
void UniquePid::serialize ( jalib::JBinarySerializer& o ) { // NOTE: Do not put JTRACE/JNOTE/JASSERT in here UniquePid theCurrentProcess, theParentProcess; if ( o.isWriter() ) { theCurrentProcess = ThisProcess(); theParentProcess = ParentProcess(); } o & theCurrentProcess & theParentProcess; if ( o.isReader() ) { theProcess() = theCurrentProcess; parentProcess() = theParentProcess; } }
void SocketConnection::serialize(jalib::JBinarySerializer &o) { JSERIALIZE_ASSERT_POINT("SocketConnection"); o&_sockDomain&_sockType&_sockProtocol &_peerType; JSERIALIZE_ASSERT_POINT("SocketOptions:"); uint64_t numSockOpts = _sockOptions.size(); o &numSockOpts; if (o.isWriter()) { // JTRACE("TCP Serialize ") (_type) (_id.conId()); typedef map<int64_t, map<int64_t, jalib::JBuffer> >::iterator levelIterator; typedef map<int64_t, jalib::JBuffer>::iterator optionIterator; uint64_t numLvl = _sockOptions.size(); o &numLvl; for (levelIterator lvl = _sockOptions.begin(); lvl != _sockOptions.end(); ++lvl) { int64_t lvlVal = lvl->first; uint64_t numOpts = lvl->second.size(); JSERIALIZE_ASSERT_POINT("Lvl"); o&lvlVal &numOpts; for (optionIterator opt = lvl->second.begin(); opt != lvl->second.end(); ++opt) { int64_t optType = opt->first; jalib::JBuffer &buffer = opt->second; int64_t bufLen = buffer.size(); JSERIALIZE_ASSERT_POINT("Opt"); o&optType &bufLen; o.readOrWrite(buffer.buffer(), bufLen); } } } else { uint64_t numLvl = 0; o &numLvl; while (numLvl-- > 0) { int64_t lvlVal = -1; int64_t numOpts = 0; JSERIALIZE_ASSERT_POINT("Lvl"); o&lvlVal &numOpts; while (numOpts-- > 0) { int64_t optType = -1; int64_t bufLen = -1; JSERIALIZE_ASSERT_POINT("Opt"); o&optType &bufLen; jalib::JBuffer buffer(bufLen); o.readOrWrite(buffer.buffer(), bufLen); _sockOptions[lvlVal][optType] = buffer; } } } JSERIALIZE_ASSERT_POINT("EndSockOpts"); }