AUTOMAKE_OPTIONS = foreign
-SUBDIRS = src include etc doc
+SUBDIRS = src
-EXTRA_DIST= README LICENSE yazpp.m4 yaz.m4 usemarcon.m4 buildconf.sh
-
-dist-hook:
- mkdir $(distdir)/win
- cp $(srcdir)/win/makefile $(distdir)/win/
- mkdir $(distdir)/debian
- cp $(srcdir)/debian/control $(distdir)/debian
- cp $(srcdir)/debian/changelog $(distdir)/debian
- cp $(srcdir)/debian/rules $(distdir)/debian
- cp $(srcdir)/debian/postinst $(distdir)/debian
- cp $(srcdir)/debian/compat $(distdir)/debian
- cp $(srcdir)/debian/*.install $(distdir)/debian
+EXTRA_DIST= yazpp.m4 yaz.m4 usemarcon.m4 buildconf.sh
AC_INIT(configure.in)
-AM_INIT_AUTOMAKE(yazproxy,1.1.0)
+AM_INIT_AUTOMAKE(yp2,0.0.0)
AC_PROG_CC
AC_PROG_CPP
YAZPROXY_SRC_ROOT=`cd ${srcdir}; pwd`
YAZPROXY_BUILD_ROOT=`pwd`
AC_OUTPUT([
+ Doxyfile
Makefile
src/Makefile
- include/Makefile
- include/yazproxy/Makefile
- doc/Makefile
- doc/yazproxy.xml
- doc/yazprint.dsl doc/yazphp.dsl doc/yazhtml.dsl
- doc/tkl.xsl
- etc/Makefile
])
-## $Id: Makefile.am,v 1.1 2005-10-06 09:37:25 marc Exp $
+## $Id: Makefile.am,v 1.2 2005-10-06 09:53:11 marc Exp $
-AM_CXXFLAGS = $(YAZPPINC) -I$(srcdir)/../include $(XSLT_CFLAGS) $(USEMARCONINC)
+AM_CXXFLAGS = $(YAZPPINC) $(XSLT_CFLAGS) $(USEMARCONINC)
-lib_LTLIBRARIES = libyazproxy.la
-libyazproxy_la_LDFLAGS=-version-info 1:0:0
+bin_PROGRAMS =
+check_PROGRAMS =
+noinst_PROGRAMS = p2 design
-libyazproxy_la_SOURCES= yaz-proxy.cpp yaz-proxy-config.cpp yaz-bw.cpp \
- proxyp.h yaz-usemarcon.cpp charset-converter.cpp msg-thread.cpp msg-thread.h \
- modules.cpp
+TESTS=$(check_PROGRAMS)
-bin_PROGRAMS = yazproxy
-check_PROGRAMS = cdetails
-noinst_PROGRAMS = tstthreads t-server p2
+design_SOURCES=design.h design_main.cpp
-TESTS=$(check_PROGRAMS)
-yazproxy_SOURCES=yaz-proxy-main.cpp
-cdetails_SOURCES=cdetails.cpp
-tstthreads_SOURCES=tstthreads.cpp
-t_server_SOURCES=t-server.cpp
p2_SOURCES=p2_frontend.cpp p2_msg.cpp p2.cpp p2_frontend.h \
p2_config.cpp p2_config.h \
p2_backend.h p2_backend_dummy.cpp \
p2_modules.cpp p2_modules.h \
- p2_xmlerror.cpp p2_xmlerror.h
+ p2_xmlerror.cpp p2_xmlerror.h msg-thread.h msg-thread.cpp
-LDADD=libyazproxy.la $(YAZPPLALIB) $(XSLT_LIBS) $(USEMARCONLALIB)
-libyazproxy_la_LIBADD = $(XSLT_LIBS)
+LDADD= $(YAZPPLALIB) $(XSLT_LIBS) $(USEMARCONLALIB)
-# Modules
-mod_proxy_sample_la_SOURCES = mod_sample.cpp
-mod_proxy_sample_la_LDFLAGS = -rpath $(pkglibdir) -module -avoid-version
-pkglib_LTLIBRARIES = mod_proxy_sample.la
+# Modules
--- /dev/null
+
+#ifndef P3_FILTER_H
+#define P3_FILTER_H
+
+#include <stdexcept>
+
+
+namespace p3 {
+
+ class Package;
+
+
+
+ class Filter {
+ public:
+ virtual ~Filter(){};
+ virtual Package & process(Package & package) const {
+ return package;
+ };
+ virtual void configure(){};
+
+ // set/get the C++ way .. just as showoff
+
+ // get function - returns copy and keeps object const,
+ // thus is right val in assignment
+ unsigned int max_front_workers() const {
+ return m_max_front;
+ }
+ // set function - returns reference and changes object,
+ // thus is left val in assignment
+ unsigned int & max_front_workers() {
+ return m_max_front;
+ }
+ // more traditional set function, taking const reference
+ // or copy (here const ref for demo), returning ref to object
+ // can be chained with other similar functions!
+ Filter & max_front_workers(const unsigned int & max_front){
+ m_max_front = max_front;
+ return *this;
+ }
+
+ private:
+ unsigned int m_max_front;
+ };
+
+
+ class Filter_Exception : public std::runtime_error {
+ public:
+ Filter_Exception(const std::string message)
+ : std::runtime_error("Filter_Exception: " + message){
+ };
+ };
+
+
+ class Router {
+ public:
+ virtual ~Router(){};
+ virtual const Filter &
+ route(const Filter & filter, Package & package) const {
+ //if (!m_sillyrule)
+ //throw Router_Exception("no routing rules known");
+ return m_sillyrule;
+ };
+ virtual void configure(){};
+ Router & rule(Filter filter){
+ m_sillyrule = filter;
+ return *this;
+ }
+ private:
+ Filter m_sillyrule;
+ };
+
+
+ class Router_Exception : public std::runtime_error {
+ public:
+ Router_Exception(const std::string message)
+ : std::runtime_error("Router_Exception: " + message){};
+ };
+
+
+ class Package {
+ public:
+
+ // send package to it's next filter defined in chain
+ void move() {
+ Filter oldfilter;
+ Filter nextfilter = m_router.route(oldfilter, *this);
+ nextfilter.process(*this);
+ }
+
+
+ // get function - returns copy and keeps object const,
+ // thus is right val in assignment
+ unsigned int data() const {
+ return m_data;
+ }
+ // set function - returns reference and changes object,
+ // thus is left val in assignment
+ unsigned int & data() {
+ return m_data;
+ }
+
+ // more traditional set function, taking const reference
+ // or copy (here const ref for demo), returning ref to object
+ // can be chained with other similar functions!
+ Package & data(const unsigned int & data){
+ m_data = data;
+ return *this;
+ }
+
+ // get function - returns copy and keeps object const,
+ // thus is right val in assignment
+ Router router() const {
+ return m_router;
+ }
+ // set function - returns reference and changes object,
+ // thus is left val in assignment
+ Router & router() {
+ return m_router;
+ }
+ // more traditional set function, taking const reference
+ // or copy (here const ref for demo), returning ref to object
+ // can be chained with other similar functions!
+ Package & router(const Router & router){
+ m_router = router;
+ return *this;
+ }
+
+ private:
+ unsigned int m_data;
+ Router m_router;
+ };
+
+
+ class Package_Exception : public std::runtime_error {
+ public:
+ Package_Exception(const std::string message)
+ : std::runtime_error("Package_Exception: " + message){
+ };
+ };
+
+
+
+
+}
+
+#endif
--- /dev/null
+
+#include <iostream>
+#include "design.h"
+
+
+
+int main(int argc, char **argv) {
+
+ // test filter set/get/exception
+ try {
+ std::cout << "\nTRY" << "\n";
+ p3::Filter filter;
+ unsigned int tmp;
+
+ filter.max_front_workers(1).max_front_workers(2);
+ tmp = filter.max_front_workers();
+ std::cout << "workers: " << tmp << "\n";
+
+ filter.max_front_workers() = 3;
+ tmp = filter.max_front_workers();
+ std::cout << "workers: " << tmp << "\n";
+
+ throw p3::Filter_Exception("finished");
+ }
+ catch (std::exception &e) {
+ std::cout << e.what() << "\n";
+ }
+
+
+ try {
+ std::cout << "\nTRY" << "\n";
+
+ p3::Filter filter1;
+ p3::Filter filter2;
+
+ std::cout << "filter1 filter2" << "\n";
+
+ p3::Router router1;
+ router1.rule(filter1);
+ std::cout << "router1.rule(filter1)" << "\n";
+
+ p3::Router router2;
+ router2.rule(filter2);
+ std::cout << "router2.rule(filter2)" << "\n";
+
+ p3::Package pack_in;
+ pack_in.data(7).router(router1);
+ std::cout << "pack_in.data(7).router(router1)" << "\n";
+
+ pack_in.move();
+ std::cout << "pack_in.move()" << "\n";
+
+ pack_in.router(router2);
+ std::cout << "pack_in.router(router2)" << "\n";
+
+ pack_in.move();
+ std::cout << "pack_in.move()" << "\n";
+
+ throw p3::Router_Exception("finished");
+
+ }
+ catch (std::exception &e) {
+ std::cout << e.what() << "\n";
+ }
+
+
+
+}
+
+++ /dev/null
-
-#ifndef P3_FILTER_H
-#define P3_FILTER_H
-
-#include <stdexcept>
-
-
-namespace p3 {
-
- class Package;
-
-
-
- class Filter {
- public:
- virtual ~Filter(){};
- virtual Package & process(Package & package) const {
- return package;
- };
- virtual void configure(){};
-
- // set/get the C++ way .. just as showoff
-
- // get function - returns copy and keeps object const,
- // thus is right val in assignment
- unsigned int max_front_workers() const {
- return m_max_front;
- }
- // set function - returns reference and changes object,
- // thus is left val in assignment
- unsigned int & max_front_workers() {
- return m_max_front;
- }
- // more traditional set function, taking const reference
- // or copy (here const ref for demo), returning ref to object
- // can be chained with other similar functions!
- Filter & max_front_workers(const unsigned int & max_front){
- m_max_front = max_front;
- return *this;
- }
-
- private:
- unsigned int m_max_front;
- };
-
-
- class Filter_Exception : public std::runtime_error {
- public:
- Filter_Exception(const std::string message)
- : std::runtime_error("Filter_Exception: " + message){
- };
- };
-
-
- class Router {
- public:
- virtual ~Router(){};
- virtual const Filter &
- route(const Filter & filter, Package & package) const {
- //if (!m_sillyrule)
- //throw Router_Exception("no routing rules known");
- return m_sillyrule;
- };
- virtual void configure(){};
- Router & rule(Filter filter){
- m_sillyrule = filter;
- return *this;
- }
- private:
- Filter m_sillyrule;
- };
-
-
- class Router_Exception : public std::runtime_error {
- public:
- Router_Exception(const std::string message)
- : std::runtime_error("Router_Exception: " + message){};
- };
-
-
- class Package {
- public:
-
- // send package to it's next filter defined in chain
- void move() {
- Filter oldfilter;
- Filter nextfilter = m_router.route(oldfilter, *this);
- nextfilter.process(*this);
- }
-
-
- // get function - returns copy and keeps object const,
- // thus is right val in assignment
- unsigned int data() const {
- return m_data;
- }
- // set function - returns reference and changes object,
- // thus is left val in assignment
- unsigned int & data() {
- return m_data;
- }
-
- // more traditional set function, taking const reference
- // or copy (here const ref for demo), returning ref to object
- // can be chained with other similar functions!
- Package & data(const unsigned int & data){
- m_data = data;
- return *this;
- }
-
- // get function - returns copy and keeps object const,
- // thus is right val in assignment
- Router router() const {
- return m_router;
- }
- // set function - returns reference and changes object,
- // thus is left val in assignment
- Router & router() {
- return m_router;
- }
- // more traditional set function, taking const reference
- // or copy (here const ref for demo), returning ref to object
- // can be chained with other similar functions!
- Package & router(const Router & router){
- m_router = router;
- return *this;
- }
-
- private:
- unsigned int m_data;
- Router m_router;
- };
-
-
- class Package_Exception : public std::runtime_error {
- public:
- Package_Exception(const std::string message)
- : std::runtime_error("Package_Exception: " + message){
- };
- };
-
-
-
-
-}
-
-#endif
+++ /dev/null
-
-#include <iostream>
-#include "p3_filter.h"
-
-
-
-int main(int argc, char **argv) {
-
- // test filter set/get/exception
- try {
- std::cout << "\nTRY" << "\n";
- p3::Filter filter;
- unsigned int tmp;
-
- filter.max_front_workers(1).max_front_workers(2);
- tmp = filter.max_front_workers();
- std::cout << "workers: " << tmp << "\n";
-
- filter.max_front_workers() = 3;
- tmp = filter.max_front_workers();
- std::cout << "workers: " << tmp << "\n";
-
- throw p3::Filter_Exception("finished");
- }
- catch (std::exception &e) {
- std::cout << e.what() << "\n";
- }
-
-
- try {
- std::cout << "\nTRY" << "\n";
-
- p3::Filter filter1;
- p3::Filter filter2;
-
- std::cout << "filter1 filter2" << "\n";
-
- p3::Router router1;
- router1.rule(filter1);
- std::cout << "router1.rule(filter1)" << "\n";
-
- p3::Router router2;
- router2.rule(filter2);
- std::cout << "router2.rule(filter2)" << "\n";
-
- p3::Package pack_in;
- pack_in.data(7).router(router1);
- std::cout << "pack_in.data(7).router(router1)" << "\n";
-
- pack_in.move();
- std::cout << "pack_in.move()" << "\n";
-
- pack_in.router(router2);
- std::cout << "pack_in.router(router2)" << "\n";
-
- pack_in.move();
- std::cout << "pack_in.move()" << "\n";
-
- throw p3::Router_Exception("finished");
-
- }
- catch (std::exception &e) {
- std::cout << e.what() << "\n";
- }
-
-
-
-}
-