int main() { // Create a default vector MyVector sam; // push some data into sam cout << "\nPushing three values into sam"; sam.push_back(TEST_VALUE1); sam.push_back(TEST_VALUE2); sam.push_back(TEST_VALUE3); cout << "\nThe values in sam are: "; // test for out of bounds condition here // and test exception for (int i = 0; i < sam.size() + 1; i++) { try { cout << sam.at(i) << " "; } catch (int badIndex) { cout << "\nOut of bounds at index " << badIndex << endl; } } cout << "\n--------------\n"; // clear sam and display its size and capacity sam.clear(); cout << "\nsam has been cleared."; cout << "\nSam's size is now " << sam.size(); cout << "\nSam's capacity is now " << sam.capacity() << endl; cout << "---------------\n"; // Push 12 values into the vector - it should grow cout << "\nPush 12 values into sam."; for (int i = 0; i < MAX; i++) sam.push_back(i); cout << "\nSam's size is now " << sam.size(); cout << "\nSam's capcacity is now " << sam.capacity() << endl; cout << "---------------\n"; cout << "\nTest to see if contents are correct..."; // display the values in the vector for (int i = 0; i < sam.size(); i++) { cout << sam.at(i) << " "; } cout << "\n--------------\n"; cout << "\n\nTest Complete..."; cout << endl; system("PAUSE"); return 0; }
void displayMyVector(MyVector& vec) { printf("display my vector, vector size:%d\n", vec.size()); for(unsigned int i = 0; i < vec.size(); i++) { Dynamic::Var var = vec.at(i); Poco::DynamicStruct ds = var.extract<DynamicStruct>(); printf("Array[%u]:%s\n", i, ds.toString().c_str()); } }
void MyVector::copy(const MyVector& rho) { // Copy atomic attributes currentSize = rho.size(); currentCapacity = rho.capacity(); // Copy data payload payload = new int[currentCapacity]; for (int i = 0; i < currentSize; i++) { payload[i] = rho.at(i); } }
int main(int argc, char *argv[]) { if(argc == 1){ struct shm_remove { shm_remove() { shared_memory_object::remove("MySharedMemory"); } ~shm_remove(){ shared_memory_object::remove("MySharedMemory"); } } remover; managed_shared_memory segment(create_only, "MySharedMemory", 65536); const ShmemAllocator alloc_inst (segment.get_segment_manager()); MyVector *myvector = segment.construct<MyVector>("MyVector")(alloc_inst); for(int i = 0; i < 100; ++i) //Insert data in the vector myvector->push_back(i); std::string s(argv[0]); s += " child "; if(0 != std::system(s.c_str())) return 1; if(segment.find<MyVector>("MyVector").first) return 1; } else{ managed_shared_memory segment(open_only, "MySharedMemory"); MyVector *myvector = segment.find<MyVector>("MyVector").first; std::sort(myvector->rbegin(), myvector->rend()); for(int i = 0; i < 100; ++i) //Insert data in the vector { printf("%d ", myvector->at(i)); } segment.destroy<MyVector>("MyVector"); } return 0; };