18 #ifndef TESTCOPYWORK_CC
19 #define TESTCOPYWORK_CC
31 #include "SharedEmployee.h"
53 sprintf(logName,
"thread%d.log",
iter->getId());
55 logger->writeLn(
"TestCopyWork: running...");
60 communicatorToFrontEnd->connectToInternetServer(
69 PageHandlePtr destPageHandle = make_shared<PageHandle>(proxy, destPage);
73 blockPtr = std::make_shared<pdb::UseTemporaryAllocationBlock>(
74 destPageHandle->getWritableBytes(), destPageHandle->getWritableSize());
76 pdb::makeObject<pdb::Vector<pdb::Handle<SharedEmployee>>>(300000);
78 while (this->
iter->hasNext()) {
79 page = this->
iter->next();
80 if (page !=
nullptr) {
83 std::cout <<
"processing page with pageId=" << page->getPageID() << std::endl;
87 std::cout <<
"there are " << inputVec->size() <<
" objects on the page." << std::endl;
90 for (
int i = 0; i < inputVec->size(); i++) {
93 std::cout << i <<
":";
95 std::cout << std::endl;
98 outputVec->push_back(
object);
100 std::cout <<
"########################################\n";
101 std::cout <<
"a page is fully written with " << outputVec->size()
104 destPageHandle->unpin();
107 logger->writeLn(
"TestCopyWork: proxy pinned a new temp page with pageId=");
108 logger->writeInt(destPage->getPageID());
109 destPageHandle = make_shared<PageHandle>(proxy, destPage);
112 blockPtr = std::make_shared<pdb::UseTemporaryAllocationBlock>(
113 destPageHandle->getWritableBytes(), destPageHandle->getWritableSize());
114 outputVec = pdb::makeObject<pdb::Vector<pdb::Handle<SharedEmployee>>>(300000);
115 outputVec->push_back(
object);
119 if (proxy->unpinUserPage(
120 nodeId, page->getDbID(), page->getTypeID(), page->getSetID(), page) ==
false) {
121 logger->writeLn(
"TestCopyWork: can not unpin finished page.");
122 destPageHandle->unpin();
126 logger->writeLn(
"TestCopyWork: send out unpinPage for source page with pageID:");
127 logger->writeInt(page->getPageID());
130 std::cout <<
"########################################\n";
131 std::cout <<
"a page is fully written with " << outputVec->size() <<
" objects\n";
133 destPageHandle->unpin();
shared_ptr< PDBPage > PDBPagePtr
PageCircularBufferIteratorPtr iter
ConfigurationPtr getConf()
Handle< ObjType > getRootObject()
shared_ptr< DataProxy > DataProxyPtr
pdb::HermesExecutionServer * server
shared_ptr< PageHandle > PageHandlePtr
Record< ObjType > * getRecord(Handle< ObjType > &forMe)
std::shared_ptr< PDBCommunicator > PDBCommunicatorPtr
SharedMemPtr getSharedMem()
shared_ptr< PDBBuzzer > PDBBuzzerPtr
std::shared_ptr< PDBLogger > PDBLoggerPtr
std::shared_ptr< UseTemporaryAllocationBlock > UseTemporaryAllocationBlockPtr
DatabaseID destDatabaseId
void execute(PDBBuzzerPtr callerBuzzer) override
TestCopyWork(PageCircularBufferIteratorPtr iter, DatabaseID destDatabaseId, UserTypeID destTypeId, SetID destSetId, pdb::HermesExecutionServer *server, int &counter)
shared_ptr< PageCircularBufferIterator > PageCircularBufferIteratorPtr