// IThorSlaveActivity void CDiskReadSlaveActivityBase::init(MemoryBuffer &data, MemoryBuffer &slaveData) { subfileLogicalFilenames.kill(); partDescs.kill(); data.read(logicalFilename); unsigned subfiles; data.read(subfiles); unsigned s=0; for (; s<subfiles; s++) { StringAttr subfile; data.read(subfile); subfileLogicalFilenames.append(subfile); } unsigned parts; data.read(parts); if (parts) { deserializePartFileDescriptors(data, partDescs); unsigned encryptedKeyLen; void *encryptedKey; helper->getEncryptKey(encryptedKeyLen, encryptedKey); if (0 != encryptedKeyLen) { bool dfsEncrypted = partDescs.item(0).queryOwner().queryProperties().getPropBool("@encrypted"); if (dfsEncrypted) // otherwise ignore (warning issued by master) eexp.setown(createAESExpander256(encryptedKeyLen, encryptedKey)); memset(encryptedKey, 0, encryptedKeyLen); free(encryptedKey); } } }
// IThorSlaveActivity void CDiskReadSlaveActivityBase::init(MemoryBuffer &data, MemoryBuffer &slaveData) { subfileLogicalFilenames.kill(); partDescs.kill(); data.read(logicalFilename); unsigned subfiles; data.read(subfiles); unsigned s=0; for (; s<subfiles; s++) { StringAttr subfile; data.read(subfile); subfileLogicalFilenames.append(subfile); } unsigned parts; data.read(parts); if (parts) { deserializePartFileDescriptors(data, partDescs); // put temp files in individual slave temp dirs (incl port) if ((helper->getFlags() & TDXtemporary) && (!container.queryJob().queryUseCheckpoints())) partDescs.item(0).queryOwner().setDefaultDir(queryTempDir()); } }