A command-line client for interacting with "book" and "member" servers via XMLRPC calls. Servers were created by other students.

Matt Kava c08f1e791c Adding missed menu.o binary needed to compile. 2 years ago
.gitignore d291bff2cc initial commit 2 years ago
BookstoreCaller.cpp 111946e051 Initial commit of project code. 2 years ago
BookstoreCaller.h 111946e051 Initial commit of project code. 2 years ago
LICENSE d291bff2cc initial commit 2 years ago
Makefile 111946e051 Initial commit of project code. 2 years ago
MemberType.cpp 111946e051 Initial commit of project code. 2 years ago
MemberType.h 111946e051 Initial commit of project code. 2 years ago
README eeef91fdd5 Fixing the README presentation. 2 years ago
booktype.cpp 111946e051 Initial commit of project code. 2 years ago
booktype.h 111946e051 Initial commit of project code. 2 years ago
menu.h 111946e051 Initial commit of project code. 2 years ago
menu.o c08f1e791c Adding missed menu.o binary needed to compile. 2 years ago
xmlrpc_client.cpp 111946e051 Initial commit of project code. 2 years ago
xmlrpc_server.cpp 111946e051 Initial commit of project code. 2 years ago

README


/================================================================\
| d8b d8888 d8888 .d8888b. |
| Y8P d8P888 d8P888 d88P Y88b |
| d8P 888 d8P 888 888 888 |
| .d8888b .d8888b 888 .d8888b d8P 888 d8P 888 888 888 |
| d88P" 88K 888 88K d88 888 d88 888 888 888 |
| 888 "Y8888b. 888 "Y8888b. 8888888888 8888888888 888 888 |
| Y88b. X88 888 X88 888 888 Y88b d88P |
| "Y8888P 88888P' 888 88888P' 888 888 "Y8888P" |
\================================================================/

Filename: README
Author: Matt Kava
Class: CSIS 440, Spring 2010
Asmt: Asmt FINAL :: XMLRPC Bookstore

* Table of Contents
* Purpose / Description
* File List
* Compiling/Making
* How to execute each binary
* Known Bugs / Caveats
* Additional Information / Comments

* Purpose / Description
Note: This assignment uses xmlrpc-c and xmlrpc-c-config.

- This package is an implementation of XMLRPC-C in C++.
- Objects (MemberType and BookType) are marshalled/unmarshalled.
- Book and member servers are called for storage of both objects.
- This is recreation of a CSIS 152 assignment (bookstore) utilizing
XMLRPC for cross-language interaction. Primary focused langauges:
C++ and Python.

* File List
= README - This file
= Makefile - Makefile that compiles each binary
= BookType.h - BookType header
= BookType.cpp - BookType implementation
= MemberType.h - MemberType header
= MemberType.cpp - MemberType implemention
= menu.h - Menu class header
= menu.o - Menu class object code (needed)
= BookstoreCaller.h - XMLRPC-C Bookstore Caller header
= BookstoreCaller.cpp - XMLRPC-C Bookstore Caller implementation
This handles calling the servers and their
return results.
= xmlrpc_client.cpp - XMLRPC-C Client for Bookstore
The heavy-lifter of the Bookstore that
utilizes each object and the Menu
= xmlrpc_server.cpp - Dumby XMLRPC-C server (non-working)
Originally created to test XMLRPC-C for client
Is not in a working state for this package,
but a barebones example of a possible
XMLRPC-C server.

* Compiling/Making
= Simply run 'make' in the same directory as the Makefile and both
the client binary will be compiled with the default
name, as shown below.

= Default binary names using Makefile
+ xmlrpc_client.cpp -> client

= The Makefile provides functionality to remove all binaries and object
(.o) files.


* How to execute each binary
= Client
+ Takes 4 parameters.
- Member Server Hostname
-- Hostname (IP or fully-qualified domain) that server is on
- Member Server Port
-- Port the member server is running on.
- Book Server Hostname
-- Hostname (IP or fully-qualified domain) that server is on
- Book Server Port
-- Port the book server is running on.

* Known Bugs / Caveats
= Caveat - Book Server (Joe Anderson's) is a tad slow, so it appears to lock-up
on query, but it is fine.
= Bug - Connection issues are not caught by the client and this causes the client to
halt ungracefully.

* Additional Information / Comments
= c++ and c++2 mean entirely different C++ XMLRPC-C wrappers when using
xmlrpc-c-config utility. Can save days of annoyance.

= XMLRPC-C is a pain in C/C++

= http://xmlrpc-c.sourceforge.net/doc/

= Makefile allows for creation of individual binaries by using the
default binary name, as provided above.

= Hardware/OS: All of this was coded on a dual-core processer box (x86),
running Fedora 12 using the kernel version 2.6.32.10-90.fc12.i686.PAE
from Mar 23, 2010.


EOF.
=============================================================================