int GroundMotion::recvSelf(int commitTag, Channel &theChannel, FEM_ObjectBroker &theBroker) { int dbTag = this->getDbTag(); static ID idData(8); int res = theChannel.recvID(dbTag, commitTag, idData); if (res < 0) { opserr << "UniformExcitation::sendSelf() - channel failed to send data\n"; return res; } int seriesClassTag = idData(0); if (seriesClassTag != -1) { int seriesDbTag = idData(1); if (theAccelSeries == 0 || theAccelSeries->getClassTag() != seriesClassTag) { if (theAccelSeries != 0) delete theAccelSeries; theAccelSeries = theBroker.getNewTimeSeries(seriesClassTag); if (theAccelSeries == 0) { opserr << "GroundMotionRecord::sendSelf - could not create a Series object\n"; return -2; } } theAccelSeries->setDbTag(seriesDbTag); res = theAccelSeries->recvSelf(commitTag, theChannel, theBroker); if (res < 0) { opserr << "UniformExcitation::sendSelf() - accel series failed to send data\n"; return res; } } seriesClassTag = idData(2); if (seriesClassTag != -1) { int seriesDbTag = idData(3); if (theVelSeries == 0 || theVelSeries->getClassTag() != seriesClassTag) { if (theVelSeries != 0) delete theVelSeries; theVelSeries = theBroker.getNewTimeSeries(seriesClassTag); if (theVelSeries == 0) { opserr << "GroundMotionRecord::sendSelf - could not create a Series object\n"; return -2; } } theVelSeries->setDbTag(seriesDbTag); res = theVelSeries->recvSelf(commitTag, theChannel, theBroker); if (res < 0) { opserr << "UniformExcitation::sendSelf() - accel series failed to send data\n"; return res; } } seriesClassTag = idData(4); if (seriesClassTag != -1) { int seriesDbTag = idData(5); if (theDispSeries == 0 || theDispSeries->getClassTag() != seriesClassTag) { if (theDispSeries != 0) delete theDispSeries; theDispSeries = theBroker.getNewTimeSeries(seriesClassTag); if (theDispSeries == 0) { opserr << "GroundMotionRecord::sendSelf - could not create a Series object\n"; return -2; } } theDispSeries->setDbTag(seriesDbTag); res = theDispSeries->recvSelf(commitTag, theChannel, theBroker); if (res < 0) { opserr << "UniformExcitation::sendSelf() - accel series failed to send data\n"; return res; } } seriesClassTag = idData(6); if (seriesClassTag != -1) { int seriesDbTag = idData(7); if (theIntegrator == 0 || theIntegrator->getClassTag() != seriesClassTag) { if (theIntegrator != 0) delete theIntegrator; theIntegrator = theBroker.getNewTimeSeriesIntegrator(seriesClassTag); if (theIntegrator == 0) { opserr << "GroundMotionRecord::sendSelf - could not create an Integrator object\n"; return -2; } } theIntegrator->setDbTag(seriesDbTag); res = theIntegrator->recvSelf(commitTag, theChannel, theBroker); if (res < 0) { opserr << "UniformExcitation::sendSelf() - accel series failed to send data\n"; return res; } } return 0; }