CSE687 Project 3: Sending STL Containers as Messages in C++ - Prof. James Fawcett, Study Guides, Projects, Research of Engineering

Project 3 for cse687 - object oriented design, spring 2008. Students are required to send stl-based data structures between machines on a local area network by serializing and deserializing the source data structure into messages. The project covers various stl containers like vector, list, set, map, stack, and queue using insertion for serialization and extraction. Students must use standard c++1, iostream library, and provide a message-passing communication component.

Typology: Study Guides, Projects, Research

Pre 2010

Uploaded on 08/09/2009

koofers-user-xjp
koofers-user-xjp 🇺🇸

8 documents

1 / 2

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
CSE687 - Object Oriented Design
Spring 2008
Project #3 – Remote Data Structure due
Monday, April 14
Version 3.0
Purpose:
This Project requires you to send certain types of STL-based data structures between machines
on a local area network. This process consists of serializing the source data structure into a
sequence of messages, transmitting those across the network, and de-serializing into the target
data structure. You will find this implementation to be a significant support in completing Project
#4.
For this project you will be required to demonstrate the transmission process for the most
important STL containers, e.g., vector, list, set, map, stack, and queue. You are expected to use
insertion as the linguistic vehicle for serialization and extraction for de-serialization. That will
allow you to easily support structures like lists of vectors of strings, for example. Note that, since
the STL does not provide native insertion and extraction operations for these structures, you will
have to provide global template functions to affect these transformations.
Requirements:
Your RemoteDS program:
1. shall use standard C++1 and the standard library, compile and link from the command line,
using visual Studio 2008, as provided in the ECS clusters and operate in the environment
provided there2.
2. shall use services of the C++ iostream library for all input and output to and from the user’s
console3 and C++ operator new and delete for all dynamic memory management, if you use
any.
3. shall provide a message-passing communication component that demonstration programs
use to show that test data structures are being sent4.
4. shall demonstrate that each of the STL containers, cited in the purpose section can be sent
between processes. For this part you are required to use both doubles and strings as the
container type in two tests, one for each type5.
5. shall demonstrate that 1) lists of vectors of strings can be sent and 2) maps of string keys
and vectors of string values can also be sent and correctly received.
6. shall add Test.h and Test.cpp 6 to your demonstration project, and call the two functions cited
there with a path set to some subdirectory of your project folder.
7. shall provide compile and run batch files that, when unzipped in an empty folder on any
drive will compile and run without user intervention, demonstrating each of the requirements
1 This means, for example that you may not use the .Net managed extensions to C++.
2 VC++ version 8.0 is provided by Visual Studio .Net 2005, and is available in all the ECS clusters.
3 You may use a WinForm interface, but are not requi red to do so. For that part, only, you may use
managed C++ code.
4 I will provide some prototype code that will give you significant help with this task.
5 If you need to use directories in either source or destination, please place them immediately below the
directory where the executable is running, and use relative paths to access them.
6 Source attached to this statement. Source code in SocketCommunicator-CSE687 folder.
pf2

Partial preview of the text

Download CSE687 Project 3: Sending STL Containers as Messages in C++ - Prof. James Fawcett and more Study Guides, Projects, Research Engineering in PDF only on Docsity!

CSE687 - Object Oriented Design

Spring 2008

Project #3 – Remote Data Structure due

Monday, April 14

Version 3.

Purpose:

This Project requires you to send certain types of STL-based data structures between machines on a local area network. This process consists of serializing the source data structure into a sequence of messages, transmitting those across the network, and de-serializing into the target data structure. You will find this implementation to be a significant support in completing Project #4. For this project you will be required to demonstrate the transmission process for the most important STL containers, e.g., vector, list, set, map, stack, and queue. You are expected to use insertion as the linguistic vehicle for serialization and extraction for de-serialization. That will allow you to easily support structures like lists of vectors of strings, for example. Note that, since the STL does not provide native insertion and extraction operations for these structures, you will have to provide global template functions to affect these transformations.

Requirements:

Your RemoteDS program:

  1. shall use standard C++^1 and the standard library, compile and link from the command line, using visual Studio 2008, as provided in the ECS clusters and operate in the environment provided there^2.
  2. shall use services of the C++ iostream library for all input and output to and from the user’s console^3 and C++ operator new and delete for all dynamic memory management, if you use any.
  3. shall provide a message-passing communication component that demonstration programs use to show that test data structures are being sent^4.
  4. shall demonstrate that each of the STL containers, cited in the purpose section can be sent between processes. For this part you are required to use both doubles and strings as the container type in two tests, one for each type^5.
  5. shall demonstrate that 1) lists of vectors of strings can be sent and 2) maps of string keys and vectors of string values can also be sent and correctly received.
  6. shall add Test.h and Test.cpp^6 to your demonstration project, and call the two functions cited there with a path set to some subdirectory of your project folder.
  7. shall provide compile and run batch files that, when unzipped in an empty folder on any drive will compile and run without user intervention, demonstrating each of the requirements (^1) This means, for example that you may not use the .Net managed extensions to C++. (^2) VC++ version 8.0 is provided by Visual Studio .Net 2005, and is available in all the ECS clusters. (^3) You may use a WinForm interface, but are not required to do so. For that part, only, you may use managed C++ code. (^4) I will provide some prototype code that will give you significant help with this task. (^5) If you need to use directories in either source or destination, please place them immediately below the directory where the executable is running, and use relative paths to access them. (^6) Source attached to this statement. Source code in SocketCommunicator-CSE687 folder.

CSE687 - Object Oriented Design

Spring 2008

above.

  1. shall provide a Visual Studio solution file that also demonstrates each of the requirements above. Note that there is no requirement to provide a graphical user interface. If you do so, you should also provide a command line interface, as required in #5. Please demonstrate that you meet all of the requirements, stated above.