Example #1
0
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;
}
Example #2
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);
	}
}
Example #4
0
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;
};