diff --git a/qse/configure b/qse/configure index 4edec468..0c464a52 100755 --- a/qse/configure +++ b/qse/configure @@ -23510,7 +23510,7 @@ QSE_PROJECT_AUTHOR="${PACKAGE_BUGREPORT}" QSE_PROJECT_URL="${PACKAGE_URL}" -ac_config_files="$ac_config_files Makefile README include/Makefile include/qse/Makefile include/qse/cmn/Makefile include/qse/cry/Makefile include/qse/si/Makefile include/qse/awk/Makefile include/qse/sed/Makefile include/qse/xli/Makefile include/qse/http/Makefile include/qse/rad/Makefile include/qse/dhcp/Makefile lib/Makefile lib/cmn/Makefile lib/cry/Makefile lib/si/Makefile lib/awk/Makefile lib/sed/Makefile lib/xli/Makefile lib/http/Makefile lib/rad/Makefile lib/dhcp/Makefile lib/qsecmn.pc lib/qsecry.pc lib/qsesi.pc lib/qsesed.pc lib/qseawk.pc lib/qsexli.pc lib/qsehttp.pc lib/qserad.pc lib/qsedhcp.pc cmd/Makefile cmd/awk/Makefile cmd/sed/Makefile cmd/xli/Makefile cmd/http/Makefile samples/Makefile samples/cmn/Makefile samples/cry/Makefile samples/si/Makefile samples/awk/Makefile samples/sed/Makefile samples/xli/Makefile samples/http/Makefile samples/rad/Makefile samples/dhcp/Makefile regress/Makefile regress/awk/Makefile regress/awk/regress.sh regress/sed/Makefile regress/sed/regress.sh doc/Makefile doc/Doxyfile tools/Makefile" +ac_config_files="$ac_config_files Makefile README include/Makefile include/qse/Makefile include/qse/cmn/Makefile include/qse/cry/Makefile include/qse/si/Makefile include/qse/awk/Makefile include/qse/sed/Makefile include/qse/xli/Makefile include/qse/http/Makefile include/qse/rad/Makefile include/qse/dhcp/Makefile include/qse/sttp/Makefile lib/Makefile lib/cmn/Makefile lib/cry/Makefile lib/si/Makefile lib/awk/Makefile lib/sed/Makefile lib/xli/Makefile lib/http/Makefile lib/rad/Makefile lib/dhcp/Makefile lib/sttp/Makefile lib/qsecmn.pc lib/qsecry.pc lib/qsesi.pc lib/qsesed.pc lib/qseawk.pc lib/qsexli.pc lib/qsehttp.pc lib/qserad.pc lib/qsedhcp.pc cmd/Makefile cmd/awk/Makefile cmd/sed/Makefile cmd/xli/Makefile cmd/http/Makefile samples/Makefile samples/cmn/Makefile samples/cry/Makefile samples/si/Makefile samples/awk/Makefile samples/sed/Makefile samples/xli/Makefile samples/http/Makefile samples/rad/Makefile samples/dhcp/Makefile regress/Makefile regress/awk/Makefile regress/awk/regress.sh regress/sed/Makefile regress/sed/regress.sh doc/Makefile doc/Doxyfile tools/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -24680,6 +24680,7 @@ do "include/qse/http/Makefile") CONFIG_FILES="$CONFIG_FILES include/qse/http/Makefile" ;; "include/qse/rad/Makefile") CONFIG_FILES="$CONFIG_FILES include/qse/rad/Makefile" ;; "include/qse/dhcp/Makefile") CONFIG_FILES="$CONFIG_FILES include/qse/dhcp/Makefile" ;; + "include/qse/sttp/Makefile") CONFIG_FILES="$CONFIG_FILES include/qse/sttp/Makefile" ;; "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; "lib/cmn/Makefile") CONFIG_FILES="$CONFIG_FILES lib/cmn/Makefile" ;; "lib/cry/Makefile") CONFIG_FILES="$CONFIG_FILES lib/cry/Makefile" ;; @@ -24690,6 +24691,7 @@ do "lib/http/Makefile") CONFIG_FILES="$CONFIG_FILES lib/http/Makefile" ;; "lib/rad/Makefile") CONFIG_FILES="$CONFIG_FILES lib/rad/Makefile" ;; "lib/dhcp/Makefile") CONFIG_FILES="$CONFIG_FILES lib/dhcp/Makefile" ;; + "lib/sttp/Makefile") CONFIG_FILES="$CONFIG_FILES lib/sttp/Makefile" ;; "lib/qsecmn.pc") CONFIG_FILES="$CONFIG_FILES lib/qsecmn.pc" ;; "lib/qsecry.pc") CONFIG_FILES="$CONFIG_FILES lib/qsecry.pc" ;; "lib/qsesi.pc") CONFIG_FILES="$CONFIG_FILES lib/qsesi.pc" ;; diff --git a/qse/configure.ac b/qse/configure.ac index e45d1cf0..0a24c34f 100644 --- a/qse/configure.ac +++ b/qse/configure.ac @@ -952,6 +952,7 @@ AC_CONFIG_FILES([ include/qse/http/Makefile include/qse/rad/Makefile include/qse/dhcp/Makefile + include/qse/sttp/Makefile lib/Makefile lib/cmn/Makefile lib/cry/Makefile @@ -962,6 +963,7 @@ AC_CONFIG_FILES([ lib/http/Makefile lib/rad/Makefile lib/dhcp/Makefile + lib/sttp/Makefile lib/qsecmn.pc lib/qsecry.pc lib/qsesi.pc diff --git a/qse/include/qse/Makefile.am b/qse/include/qse/Makefile.am index 117cde78..82ef73dd 100644 --- a/qse/include/qse/Makefile.am +++ b/qse/include/qse/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = cmn cry si awk sed xli http rad dhcp +SUBDIRS = cmn cry si awk sed xli http rad dhcp sttp pkgincludedir = $(includedir)/qse diff --git a/qse/include/qse/Makefile.in b/qse/include/qse/Makefile.in index f272ad64..e804515b 100644 --- a/qse/include/qse/Makefile.in +++ b/qse/include/qse/Makefile.in @@ -390,7 +390,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = cmn cry si awk sed xli http rad dhcp +SUBDIRS = cmn cry si awk sed xli http rad dhcp sttp pkginclude_HEADERS = conf-msw.h conf-os2.h conf-dos.h conf-vms.h \ conf-mac.h conf-inf.h types.h macros.h pack1.h unpack.h \ $(am__append_1) diff --git a/qse/include/qse/cmn/Makefile.am b/qse/include/qse/cmn/Makefile.am index ca590210..9a3b0d59 100644 --- a/qse/include/qse/cmn/Makefile.am +++ b/qse/include/qse/cmn/Makefile.am @@ -41,11 +41,22 @@ pkginclude_HEADERS = \ if ENABLE_CXX pkginclude_HEADERS += \ - Mmgr.hpp StdMmgr.hpp HeapMmgr.hpp Mmged.hpp \ - ScopedPtr.hpp SharedPtr.hpp \ - StrBase.hpp String.hpp \ - Mpool.hpp Association.hpp LinkedList.hpp HashList.hpp HashTable.hpp \ - RedBlackTree.hpp RedBlackTable.hpp \ - Array.hpp BinaryHeap.hpp + Array.hpp \ + Association.hpp \ + BinaryHeap.hpp \ + HashList.hpp \ + HashTable.hpp \ + HeapMmgr.hpp \ + LinkedList.hpp \ + Mmged.hpp \ + Mmgr.hpp \ + Mpool.hpp \ + RedBlackTree.hpp \ + RedBlackTable.hpp \ + ScopedPtr.hpp \ + SharedPtr.hpp \ + StrBase.hpp + String.hpp \ + StdMmgr.hpp endif diff --git a/qse/include/qse/cmn/Makefile.in b/qse/include/qse/cmn/Makefile.in index 21372dff..f9cab507 100644 --- a/qse/include/qse/cmn/Makefile.in +++ b/qse/include/qse/cmn/Makefile.in @@ -88,12 +88,21 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @ENABLE_CXX_TRUE@am__append_1 = \ -@ENABLE_CXX_TRUE@ Mmgr.hpp StdMmgr.hpp HeapMmgr.hpp Mmged.hpp \ -@ENABLE_CXX_TRUE@ ScopedPtr.hpp SharedPtr.hpp \ -@ENABLE_CXX_TRUE@ StrBase.hpp String.hpp \ -@ENABLE_CXX_TRUE@ Mpool.hpp Association.hpp LinkedList.hpp HashList.hpp HashTable.hpp \ -@ENABLE_CXX_TRUE@ RedBlackTree.hpp RedBlackTable.hpp \ -@ENABLE_CXX_TRUE@ Array.hpp BinaryHeap.hpp +@ENABLE_CXX_TRUE@ Array.hpp \ +@ENABLE_CXX_TRUE@ Association.hpp \ +@ENABLE_CXX_TRUE@ BinaryHeap.hpp \ +@ENABLE_CXX_TRUE@ HashList.hpp \ +@ENABLE_CXX_TRUE@ HashTable.hpp \ +@ENABLE_CXX_TRUE@ HeapMmgr.hpp \ +@ENABLE_CXX_TRUE@ LinkedList.hpp \ +@ENABLE_CXX_TRUE@ Mmged.hpp \ +@ENABLE_CXX_TRUE@ Mmgr.hpp \ +@ENABLE_CXX_TRUE@ Mpool.hpp \ +@ENABLE_CXX_TRUE@ RedBlackTree.hpp \ +@ENABLE_CXX_TRUE@ RedBlackTable.hpp \ +@ENABLE_CXX_TRUE@ ScopedPtr.hpp \ +@ENABLE_CXX_TRUE@ SharedPtr.hpp \ +@ENABLE_CXX_TRUE@ StrBase.hpp subdir = include/qse/cmn ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -135,10 +144,10 @@ am__pkginclude_HEADERS_DIST = alg.h arr.h chr.h cp949.h cp950.h dll.h \ env.h fma.h fmt.h gdl.h htb.h htl.h hton.h hwad.h ipad.h \ main.h map.h mb8.h mbwc.h mem.h oht.h opt.h path.h pma.h rbt.h \ rex.h sll.h slmb.h str.h time.h tmr.h tre.h test.h uni.h uri.h \ - utf8.h xma.h Mmgr.hpp StdMmgr.hpp HeapMmgr.hpp Mmged.hpp \ - ScopedPtr.hpp SharedPtr.hpp StrBase.hpp String.hpp Mpool.hpp \ - Association.hpp LinkedList.hpp HashList.hpp HashTable.hpp \ - RedBlackTree.hpp RedBlackTable.hpp Array.hpp BinaryHeap.hpp + utf8.h xma.h Array.hpp Association.hpp BinaryHeap.hpp \ + HashList.hpp HashTable.hpp HeapMmgr.hpp LinkedList.hpp \ + Mmged.hpp Mmgr.hpp Mpool.hpp RedBlackTree.hpp \ + RedBlackTable.hpp ScopedPtr.hpp SharedPtr.hpp StrBase.hpp am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -623,6 +632,8 @@ uninstall-am: uninstall-pkgincludeHEADERS .PRECIOUS: Makefile +@ENABLE_CXX_TRUE@ String.hpp \ +@ENABLE_CXX_TRUE@ StdMmgr.hpp # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/qse/include/qse/cmn/StrBase.hpp b/qse/include/qse/cmn/StrBase.hpp index 2916c823..6caf0338 100644 --- a/qse/include/qse/cmn/StrBase.hpp +++ b/qse/include/qse/cmn/StrBase.hpp @@ -167,23 +167,16 @@ public: typedef StrBase SelfType; typedef StrBaseData StringItem; - /// The StrBase() function creates an empty string with the default memory manager. - StrBase (): Mmged(QSE_NULL) - { - this->_item = new(this->getMmgr()) StringItem (this->getMmgr(), this->round_capacity(DEFAULT_CAPACITY), (const CHAR_TYPE*)QSE_NULL, 0); - this->ref_item (); - } - /// The StrBase() function creates an empty string with a memory manager \a mmgr. - StrBase (Mmgr* mmgr): Mmged(mmgr) + StrBase (Mmgr* mmgr = QSE_NULL): Mmged(mmgr) { this->_item = new(this->getMmgr()) StringItem (this->getMmgr(), this->round_capacity(DEFAULT_CAPACITY), (const CHAR_TYPE*)QSE_NULL, 0); this->ref_item (); } - StrBase (int capacity): Mmged(QSE_NULL) + StrBase (int capacity, Mmgr* mmgr = QSE_NULL): Mmged(mmgr) { - if (capacity <= -1) + if (capacity <= -1) { // this is a special constructor to instanatiate a string with no buffer. // it is designed to be followed by truncate() immediately for actual buffer @@ -204,66 +197,27 @@ public: this->ref_item (); } } - StrBase (Mmgr* mmgr, int capacity): Mmged(mmgr) - { - if (capacity <= -1) - { - // this is a special constructor to instanatiate a string with no buffer. - // it is intended to be followed by truncate() for actual buffer allocation. - this->_item = QSE_NULL; - } - else - { - this->_item = new(this->getMmgr()) StringItem (this->getMmgr(), this->round_capacity(capacity), (const CHAR_TYPE*)QSE_NULL, 0); - this->ref_item (); - } - } - StrBase (qse_size_t capacity): Mmged(QSE_NULL) + StrBase (qse_size_t capacity, Mmgr* mmgr = QSE_NULL): Mmged(mmgr) { this->_item = new(this->getMmgr()) StringItem (this->getMmgr(), this->round_capacity(capacity), (const CHAR_TYPE*)QSE_NULL, 0); this->ref_item (); } - StrBase (Mmgr* mmgr, qse_size_t capacity): Mmged(mmgr) - { - this->_item = new(this->getMmgr()) StringItem (this->getMmgr(), this->round_capacity(capacity), (const CHAR_TYPE*)QSE_NULL, 0); - this->ref_item (); - } - - StrBase (const CHAR_TYPE* str): Mmged(QSE_NULL) + StrBase (const CHAR_TYPE* str, Mmgr* mmgr = QSE_NULL): Mmged(mmgr) { qse_size_t len = this->_opset.getLength(str); this->_item = new(this->getMmgr()) StringItem (this->getMmgr(), this->round_capacity(len), str, len); this->ref_item (); } - StrBase (Mmgr* mmgr, const CHAR_TYPE* str): Mmged(mmgr) - { - qse_size_t len = this->_opset.getLength(str); - this->_item = new(this->getMmgr()) StringItem (this->getMmgr(), this->round_capacity(len), str, len); - this->ref_item (); - } - - StrBase (const CHAR_TYPE* str, qse_size_t size): Mmged(QSE_NULL) + StrBase (const CHAR_TYPE* str, qse_size_t size, Mmgr* mmgr = QSE_NULL): Mmged(mmgr) { this->_item = new(this->getMmgr()) StringItem (this->getMmgr(), this->round_capacity(size), str, size); this->ref_item (); } - StrBase (Mmgr* mmgr, const CHAR_TYPE* str, qse_size_t size): Mmged(mmgr) - { - this->_item = new(this->getMmgr()) StringItem (this->getMmgr(), this->round_capacity(size), str, size); - this->ref_item (); - } - - StrBase (CHAR_TYPE c, qse_size_t size): Mmged(QSE_NULL) - { - this->_item = new(this->getMmgr()) StringItem (this->getMmgr(), this->round_capacity(size), c, size); - this->ref_item (); - } - - StrBase (Mmgr* mmgr, CHAR_TYPE c, qse_size_t size): Mmged(mmgr) + StrBase (CHAR_TYPE c, qse_size_t size, Mmgr* mmgr = QSE_NULL): Mmged(mmgr) { this->_item = new(this->getMmgr()) StringItem (this->getMmgr(), this->round_capacity(size), c, size); this->ref_item (); @@ -790,7 +744,7 @@ public: void invert (qse_size_t index, qse_size_t size) { QSE_ASSERT (index + size <= this->_item->size); - + if (this->_item->isShared()) this->possess_data (); CHAR_TYPE c; diff --git a/qse/include/qse/cmn/String.hpp b/qse/include/qse/cmn/String.hpp index bb3f36a1..b9b37faa 100644 --- a/qse/include/qse/cmn/String.hpp +++ b/qse/include/qse/cmn/String.hpp @@ -187,16 +187,11 @@ private: public: WcString (): ParentType() {} WcString (Mmgr* mmgr): ParentType(mmgr) {} - WcString (int capacity): ParentType(capacity) {} - WcString (Mmgr* mmgr, int capacity): ParentType(mmgr, capacity) {} - WcString (qse_size_t capacity): ParentType(capacity) {} - WcString (Mmgr* mmgr, qse_size_t capacity): ParentType(mmgr, capacity) {} - WcString (const qse_wchar_t* str): ParentType(str) {} - WcString (Mmgr* mmgr, const qse_wchar_t* str): ParentType(mmgr, str) {} - WcString (const qse_wchar_t* str, qse_size_t size): ParentType(str, size) {} - WcString (Mmgr* mmgr, const qse_wchar_t* str, qse_size_t size): ParentType(mmgr, str, size) {} - WcString (qse_wchar_t c, qse_size_t size): ParentType(c, size) {} - WcString (Mmgr* mmgr, qse_wchar_t c, qse_size_t size): ParentType(mmgr, c, size) {} + WcString (int capacity, Mmgr* mmgr = QSE_NULL): ParentType(capacity, mmgr) {} + WcString (qse_size_t capacity, Mmgr* mmgr = QSE_NULL): ParentType(capacity, mmgr) {} + WcString (const qse_wchar_t* str, Mmgr* mmgr = QSE_NULL): ParentType(str, mmgr) {} + WcString (const qse_wchar_t* str, qse_size_t size, Mmgr* mmgr = QSE_NULL): ParentType(str, size, mmgr) {} + WcString (qse_wchar_t c, qse_size_t size, Mmgr* mmgr = QSE_NULL): ParentType(c, size, mmgr) {} WcString (const WcString& str): ParentType(str) {} #if defined(QSE_CPP_ENABLE_CPP11_MOVE) WcString (WcString&& str): ParentType(QSE_CPP_RVREF(str)) {} @@ -224,16 +219,11 @@ private: public: MbString (): ParentType() {} MbString (Mmgr* mmgr): ParentType(mmgr) {} - MbString (int capacity): ParentType(capacity) {} - MbString (Mmgr* mmgr, int capacity): ParentType(mmgr, capacity) {} - MbString (qse_size_t capacity): ParentType(capacity) {} - MbString (Mmgr* mmgr, qse_size_t capacity): ParentType(mmgr, capacity) {} - MbString (const qse_mchar_t* str): ParentType(str) {} - MbString (Mmgr* mmgr, const qse_mchar_t* str): ParentType(mmgr, str) {} - MbString (const qse_mchar_t* str, qse_size_t size): ParentType(str, size) {} - MbString (Mmgr* mmgr, const qse_mchar_t* str, qse_size_t size): ParentType(mmgr, str, size) {} - MbString (qse_mchar_t c, qse_size_t size): ParentType(c, size) {} - MbString (Mmgr* mmgr, qse_mchar_t c, qse_size_t size): ParentType(mmgr, c, size) {} + MbString (int capacity, Mmgr* mmgr = QSE_NULL): ParentType(capacity, mmgr) {} + MbString (qse_size_t capacity, Mmgr* mmgr = QSE_NULL): ParentType(capacity, mmgr) {} + MbString (const qse_mchar_t* str, Mmgr* mmgr = QSE_NULL): ParentType(str, mmgr) {} + MbString (const qse_mchar_t* str, qse_size_t size, Mmgr* mmgr = QSE_NULL): ParentType(str, size, mmgr) {} + MbString (qse_mchar_t c, qse_size_t size, Mmgr* mmgr = QSE_NULL): ParentType(c, size, mmgr) {} MbString (const MbString& str): ParentType(str) {} MbString (const ParentType& str): ParentType(str) {} #if defined(QSE_CPP_ENABLE_CPP11_MOVE) diff --git a/qse/include/qse/cmn/Transmittable.hpp b/qse/include/qse/cmn/Transmittable.hpp new file mode 100644 index 00000000..95546636 --- /dev/null +++ b/qse/include/qse/cmn/Transmittable.hpp @@ -0,0 +1,52 @@ +/* + * $Id$ + * + Copyright (c) 2006-2014 Chung, Hyung-Hwan. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _QSE_CMN_TRANSMITTABLE_CLASS_ +#define _QSE_CMN_TRANSMITTABLE_CLASS_ + +#include + +QSE_BEGIN_NAMESPACE(QSE) + +class Transmittable +{ +public: + virtual ~Transmittable () {} + + //virtual void enableTimeout (qse_ntime_t t) = 0; + //virtual void disableTimeout () = 0; + + virtual qse_ssize_t send (const void* buf, qse_size_t len) QSE_CPP_NOEXCEPT = 0; + virtual qse_ssize_t receive (void* buf, qse_size_t len) QSE_CPP_NOEXCEPT = 0; + + //qse_ssize_t send (const void* buf, qse_size_t len, const SocketAddress& dstaddr) QSE_CPP_NOEXCEPT; + //qse_ssize_t receive (void* buf, qse_size_t len, SocketAddress& srcaddr) QSE_CPP_NOEXCEPT; +}; + + +QSE_END_NAMESPACE(QSE) + +#endif diff --git a/qse/include/qse/si/Socket.hpp b/qse/include/qse/si/Socket.hpp index 529df455..d09ccdf7 100644 --- a/qse/include/qse/si/Socket.hpp +++ b/qse/include/qse/si/Socket.hpp @@ -29,6 +29,7 @@ #include #include +#include #include #include @@ -37,7 +38,7 @@ QSE_BEGIN_NAMESPACE(QSE) ///////////////////////////////// -class Socket: public Uncopyable, public Types +class Socket: public Uncopyable, public Types, public Transmittable { public: enum Trait @@ -47,7 +48,7 @@ public: }; Socket () QSE_CPP_NOEXCEPT; - ~Socket () QSE_CPP_NOEXCEPT; + virtual ~Socket () QSE_CPP_NOEXCEPT; ErrorCode getErrorCode () const QSE_CPP_NOEXCEPT { return this->errcode; } void setErrorCode (ErrorCode errcode) QSE_CPP_NOEXCEPT { this->errcode = errcode; } diff --git a/qse/include/qse/sttp/Makefile.am b/qse/include/qse/sttp/Makefile.am new file mode 100644 index 00000000..b8002870 --- /dev/null +++ b/qse/include/qse/sttp/Makefile.am @@ -0,0 +1,9 @@ +pkgincludedir = $(includedir)/qse/sttp + +pkginclude_HEADERS = + + +if ENABLE_CXX +pkginclude_HEADERS += SttpCmd.hpp Sttp.hpp +endif + diff --git a/qse/include/qse/sttp/Makefile.in b/qse/include/qse/sttp/Makefile.in new file mode 100644 index 00000000..de390504 --- /dev/null +++ b/qse/include/qse/sttp/Makefile.in @@ -0,0 +1,611 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@ENABLE_CXX_TRUE@am__append_1 = SttpCmd.hpp Sttp.hpp +subdir = include/qse/sttp +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_sign.m4 \ + $(top_srcdir)/m4/ax_cxx_namespace.m4 \ + $(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/ax_numval.m4 \ + $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/lx_find_mpi.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__pkginclude_HEADERS_DIST) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/include/qse/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__pkginclude_HEADERS_DIST = SttpCmd.hpp Sttp.hpp +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludedir)" +HEADERS = $(pkginclude_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +pkgincludedir = $(includedir)/qse/sttp +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BUILD_MODE = @BUILD_MODE@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CHAR_MODE = @CHAR_MODE@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DL_LIBS = @DL_LIBS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_CXX = @HAVE_CXX@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBM = @LIBM@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTDL_LIBS = @LTDL_LIBS@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MPICC = @MPICC@ +MPI_CFLAGS = @MPI_CFLAGS@ +MPI_CLDFLAGS = @MPI_CLDFLAGS@ +MYSQL_CFLAGS = @MYSQL_CFLAGS@ +MYSQL_CONFIG = @MYSQL_CONFIG@ +MYSQL_LDFLAGS = @MYSQL_LDFLAGS@ +MYSQL_VERSION = @MYSQL_VERSION@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +QSE_PROJECT_AUTHOR = @QSE_PROJECT_AUTHOR@ +QSE_PROJECT_URL = @QSE_PROJECT_URL@ +QSE_SIZEOF_CHAR = @QSE_SIZEOF_CHAR@ +QSE_SIZEOF_DOUBLE = @QSE_SIZEOF_DOUBLE@ +QSE_SIZEOF_FLOAT = @QSE_SIZEOF_FLOAT@ +QSE_SIZEOF_INT = @QSE_SIZEOF_INT@ +QSE_SIZEOF_LONG = @QSE_SIZEOF_LONG@ +QSE_SIZEOF_LONG_DOUBLE = @QSE_SIZEOF_LONG_DOUBLE@ +QSE_SIZEOF_LONG_LONG = @QSE_SIZEOF_LONG_LONG@ +QSE_SIZEOF_OFF64_T = @QSE_SIZEOF_OFF64_T@ +QSE_SIZEOF_OFF_T = @QSE_SIZEOF_OFF_T@ +QSE_SIZEOF_SHORT = @QSE_SIZEOF_SHORT@ +QSE_SIZEOF_VOID_P = @QSE_SIZEOF_VOID_P@ +QSE_SIZEOF_WCHAR_T = @QSE_SIZEOF_WCHAR_T@ +QUADMATH_LIBS = @QUADMATH_LIBS@ +RANLIB = @RANLIB@ +RM = @RM@ +RMDIR = @RMDIR@ +SED = @SED@ +SENDFILE_LIBS = @SENDFILE_LIBS@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SOCKET_LIBS = @SOCKET_LIBS@ +SSL_LIBS = @SSL_LIBS@ +STRIP = @STRIP@ +TRUE = @TRUE@ +UCI_LIBS = @UCI_LIBS@ +UNICOWS_LIBS = @UNICOWS_LIBS@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkginclude_HEADERS = $(am__append_1) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/qse/sttp/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign include/qse/sttp/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludeHEADERS: $(pkginclude_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \ + done + +uninstall-pkgincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludeHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkgincludeHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgincludeHEADERS install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgincludeHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/qse/include/qse/sttp/Sttp.hpp b/qse/include/qse/sttp/Sttp.hpp new file mode 100644 index 00000000..4bce09cf --- /dev/null +++ b/qse/include/qse/sttp/Sttp.hpp @@ -0,0 +1,186 @@ +/* + * $Id$ + * + Copyright (c) 2006-2014 Chung, Hyung-Hwan. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#ifndef _QSE_STTP_STTP_CLASS_ +#define _QSE_STTP_STTP_CLASS_ + +#include +#include +#include +#include +#include + +QSE_BEGIN_NAMESPACE(QSE) + +class Sttp: public Mmged, public Uncopyable +{ +public: + // + // additional error codes + // + enum ErrorCode + { + E_NOERR = 0, + E_MEMORY, + E_RECEIVE, + E_SEND, + E_UTF8_CONV, + E_CMDNAME, + E_CMDPROC, // user cmd proc returned -1 + E_UNKNOWNCMD, // unknown command received + E_TOOLONGCMD, + E_SEMICOLON, + E_TOOMANYARGS, + E_WRONGARG, + E_WRONGCHAR + }; + + Sttp (Transmittable* s = QSE_NULL, Mmgr* mmgr = QSE_NULL) QSE_CPP_NOEXCEPT; + virtual ~Sttp () QSE_CPP_NOEXCEPT; + + void reset () QSE_CPP_NOEXCEPT; + + qse_size_t getMaxRawCmdLen () const QSE_CPP_NOEXCEPT + { + return max_raw_cmd_len; + } + void setMaxRawCmdLen (qse_size_t v) QSE_CPP_NOEXCEPT + { + max_raw_cmd_len = v; + } + + qse_size_t maxArgCount () const QSE_CPP_NOEXCEPT + { + return max_arg_count; + } + void setMaxArgCount (qse_size_t v) QSE_CPP_NOEXCEPT + { + max_arg_count = v; + } + + bool getOptSendNewline () const QSE_CPP_NOEXCEPT + { + return this->opt_send_newline; + } + void setOptSendNewline (bool opt) QSE_CPP_NOEXCEPT + { + this->opt_send_newline = opt; + } + + ErrorCode getErrorCode() const QSE_CPP_NOEXCEPT + { + return this->p_errcode; + } + + // The receiveCmd() function reads a complete command and stores + // it to the command object pointed to by \a cmd. + // + // Upon failure, if the error code is #ERR_RECEIVE, you can check + // the error code of the medium set to find more about the error. + // See the following pseudo code. + // + // \code + // Socket sck; + // Sttp sttp(sck); + // if (sttp->receiveCmd(&cmd) <= -1 && + // sttp->getErrorCode() == Sttp::E_RECEIVE && + // sck->getErrorCode() == Socket::E_EAGAIN) { ... } + // \endcode + // + // \return 1 if a command is received. 0 if end of input is detected + // -1 if an error has occurred. + int receiveCmd (SttpCmd* cmd) QSE_CPP_NOEXCEPT; + + int sendCmd (const SttpCmd& cmd) QSE_CPP_NOEXCEPT; + int sendCmd (const qse_char_t* name, qse_size_t nargs, ...) QSE_CPP_NOEXCEPT; + int sendCmdL (const qse_char_t* name, qse_size_t nargs, ...) QSE_CPP_NOEXCEPT; + int sendCmdL (const qse_char_t* name, qse_size_t nmlen, qse_size_t nargs, ...) QSE_CPP_NOEXCEPT; + + const qse_char_t* getErrorStr () const QSE_CPP_NOEXCEPT; + +protected: + enum + { + MAX_RAW_CMD_LEN = 1024 * 1000, + MAX_ARG_COUNT = 20, + MAX_INBUF_LEN = 1024, + MAX_OUTBUF_LEN = 1024 + + }; + + enum TokenType + { + T_EOF = 1, + T_STRING = 2, + T_IDENT = 3, + T_SEMICOLON = 4, + T_COMMA = 5 + }; + + Transmittable* p_medium; + ErrorCode p_errcode; + + qse_mchar_t inbuf [MAX_INBUF_LEN]; + qse_mchar_t outbuf[MAX_OUTBUF_LEN]; + qse_size_t inbuf_len; + qse_size_t outbuf_len; + qse_size_t sttp_curp; + qse_cint_t sttp_curc; + + qse_size_t max_raw_cmd_len; + qse_size_t max_arg_count; + qse_size_t raw_cmd_len; + bool opt_send_newline; + + TokenType token_type; + String token_value; + + int get_char () QSE_CPP_NOEXCEPT; + int get_token () QSE_CPP_NOEXCEPT; + int get_ident () QSE_CPP_NOEXCEPT; + int get_string (qse_char_t end) QSE_CPP_NOEXCEPT; + qse_cint_t translate_escaped_char (qse_cint_t c) QSE_CPP_NOEXCEPT; + bool is_ident_char (qse_cint_t c) QSE_CPP_NOEXCEPT; + + int put_mchar (qse_mchar_t ch) QSE_CPP_NOEXCEPT; + int put_wchar (qse_wchar_t ch) QSE_CPP_NOEXCEPT; + + int put_char (qse_char_t ch) QSE_CPP_NOEXCEPT + { + #if defined(QSE_CHAR_IS_MCHAR) + return this->put_mchar(ch) + #else + return this->put_wchar(ch); + #endif + } + + int flush_outbuf () QSE_CPP_NOEXCEPT; +}; + +QSE_END_NAMESPACE(QSE) + +#endif diff --git a/qse/include/qse/sttp/SttpCmd.hpp b/qse/include/qse/sttp/SttpCmd.hpp new file mode 100644 index 00000000..5354e4b8 --- /dev/null +++ b/qse/include/qse/sttp/SttpCmd.hpp @@ -0,0 +1,80 @@ +/* + * $Id$ + * + Copyright (c) 2006-2014 Chung, Hyung-Hwan. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _QSE_STTP_STTPCMD_CLASS_ +#define _QSE_STTP_STTPCMD_CLASS_ + +#include +#include + +QSE_BEGIN_NAMESPACE(QSE) + +class SttpCmd: public QSE::Array +{ +public: + SttpCmd (const qse_char_t* n = QSE_T(""), QSE::Mmgr* mmgr = QSE_NULL): + QSE::Array(mmgr, 20), name (n) {} + + SttpCmd (const QSE::String& n, QSE::Mmgr* mmgr = QSE_NULL): + QSE::Array(mmgr, 20), name (n) {} + + qse_size_t getArgCount () const + { + return this->getSize (); + } + + const qse_char_t* getArgAt (qse_size_t i) const + { + return this->getValueAt(i).getBuffer(); + } + + qse_size_t getArgLenAt (qse_size_t i) const + { + return this->getValueAt(i).getSize(); + } + + void addArg (const qse_char_t* n, qse_size_t size) + { + this->insertLast (QSE::String(n, size)); + } + + void setName (const qse_char_t* n, qse_size_t size) + { + this->name.truncate (0); + this->name.append (n, size); + } + + bool isNullCmd () const + { + return this->name.getSize() == 0; + } + + QSE::String name; +}; + +QSE_END_NAMESPACE(QSE) + +#endif diff --git a/qse/lib/Makefile.am b/qse/lib/Makefile.am index b3c8be2c..b9add5e9 100644 --- a/qse/lib/Makefile.am +++ b/qse/lib/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = cmn cry si sed awk xli http rad dhcp +SUBDIRS = cmn cry si sed awk xli http rad dhcp sttp DIST_SUBDIRS = $(SUBDIRS) pkgconfigdir = $(libdir)/pkgconfig diff --git a/qse/lib/Makefile.in b/qse/lib/Makefile.in index 59454916..13c434d6 100644 --- a/qse/lib/Makefile.in +++ b/qse/lib/Makefile.in @@ -384,7 +384,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = cmn cry si sed awk xli http rad dhcp +SUBDIRS = cmn cry si sed awk xli http rad dhcp sttp DIST_SUBDIRS = $(SUBDIRS) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = qsecmn.pc qsecry.pc qsesi.pc qsesed.pc qseawk.pc qsexli.pc qsehttp.pc qserad.pc qsedhcp.pc diff --git a/qse/lib/sttp/Makefile.am b/qse/lib/sttp/Makefile.am new file mode 100644 index 00000000..64afbc6b --- /dev/null +++ b/qse/lib/sttp/Makefile.am @@ -0,0 +1,17 @@ +AUTOMAKE_OPTIONS = nostdinc + +AM_CPPFLAGS = \ + -I$(top_builddir)/include \ + -I$(top_srcdir)/include + +#noinst_HEADERS = + +lib_LTLIBRARIES = + +if ENABLE_CXX +lib_LTLIBRARIES += libqsesttpxx.la +libqsesttpxx_la_SOURCES = Sttp.cpp +libqsesttpxx_la_LDFLAGS = -L. -L../cmn -L../si -version-info 1:0:0 -no-undefined +libqsesttpxx_la_LIBADD = -lqsecmnxx -lqsesi -lqsecmn +endif + diff --git a/qse/lib/sttp/Makefile.in b/qse/lib/sttp/Makefile.in new file mode 100644 index 00000000..2197ef8c --- /dev/null +++ b/qse/lib/sttp/Makefile.in @@ -0,0 +1,706 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@ENABLE_CXX_TRUE@am__append_1 = libqsesttpxx.la +subdir = lib/sttp +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_sign.m4 \ + $(top_srcdir)/m4/ax_cxx_namespace.m4 \ + $(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/ax_numval.m4 \ + $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/lx_find_mpi.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/include/qse/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +libqsesttpxx_la_DEPENDENCIES = +am__libqsesttpxx_la_SOURCES_DIST = Sttp.cpp +@ENABLE_CXX_TRUE@am_libqsesttpxx_la_OBJECTS = Sttp.lo +libqsesttpxx_la_OBJECTS = $(am_libqsesttpxx_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libqsesttpxx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(AM_CXXFLAGS) $(CXXFLAGS) $(libqsesttpxx_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@ENABLE_CXX_TRUE@am_libqsesttpxx_la_rpath = -rpath $(libdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = +depcomp = $(SHELL) $(top_srcdir)/ac/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +SOURCES = $(libqsesttpxx_la_SOURCES) +DIST_SOURCES = $(am__libqsesttpxx_la_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/ac/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BUILD_MODE = @BUILD_MODE@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CHAR_MODE = @CHAR_MODE@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DL_LIBS = @DL_LIBS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_CXX = @HAVE_CXX@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBM = @LIBM@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTDL_LIBS = @LTDL_LIBS@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MPICC = @MPICC@ +MPI_CFLAGS = @MPI_CFLAGS@ +MPI_CLDFLAGS = @MPI_CLDFLAGS@ +MYSQL_CFLAGS = @MYSQL_CFLAGS@ +MYSQL_CONFIG = @MYSQL_CONFIG@ +MYSQL_LDFLAGS = @MYSQL_LDFLAGS@ +MYSQL_VERSION = @MYSQL_VERSION@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +QSE_PROJECT_AUTHOR = @QSE_PROJECT_AUTHOR@ +QSE_PROJECT_URL = @QSE_PROJECT_URL@ +QSE_SIZEOF_CHAR = @QSE_SIZEOF_CHAR@ +QSE_SIZEOF_DOUBLE = @QSE_SIZEOF_DOUBLE@ +QSE_SIZEOF_FLOAT = @QSE_SIZEOF_FLOAT@ +QSE_SIZEOF_INT = @QSE_SIZEOF_INT@ +QSE_SIZEOF_LONG = @QSE_SIZEOF_LONG@ +QSE_SIZEOF_LONG_DOUBLE = @QSE_SIZEOF_LONG_DOUBLE@ +QSE_SIZEOF_LONG_LONG = @QSE_SIZEOF_LONG_LONG@ +QSE_SIZEOF_OFF64_T = @QSE_SIZEOF_OFF64_T@ +QSE_SIZEOF_OFF_T = @QSE_SIZEOF_OFF_T@ +QSE_SIZEOF_SHORT = @QSE_SIZEOF_SHORT@ +QSE_SIZEOF_VOID_P = @QSE_SIZEOF_VOID_P@ +QSE_SIZEOF_WCHAR_T = @QSE_SIZEOF_WCHAR_T@ +QUADMATH_LIBS = @QUADMATH_LIBS@ +RANLIB = @RANLIB@ +RM = @RM@ +RMDIR = @RMDIR@ +SED = @SED@ +SENDFILE_LIBS = @SENDFILE_LIBS@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SOCKET_LIBS = @SOCKET_LIBS@ +SSL_LIBS = @SSL_LIBS@ +STRIP = @STRIP@ +TRUE = @TRUE@ +UCI_LIBS = @UCI_LIBS@ +UNICOWS_LIBS = @UNICOWS_LIBS@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = nostdinc +AM_CPPFLAGS = \ + -I$(top_builddir)/include \ + -I$(top_srcdir)/include + + +#noinst_HEADERS = +lib_LTLIBRARIES = $(am__append_1) +@ENABLE_CXX_TRUE@libqsesttpxx_la_SOURCES = Sttp.cpp +@ENABLE_CXX_TRUE@libqsesttpxx_la_LDFLAGS = -L. -L../cmn -L../si -version-info 1:0:0 -no-undefined +@ENABLE_CXX_TRUE@libqsesttpxx_la_LIBADD = -lqsecmnxx -lqsesi -lqsecmn +all: all-am + +.SUFFIXES: +.SUFFIXES: .cpp .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lib/sttp/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign lib/sttp/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libqsesttpxx.la: $(libqsesttpxx_la_OBJECTS) $(libqsesttpxx_la_DEPENDENCIES) $(EXTRA_libqsesttpxx_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libqsesttpxx_la_LINK) $(am_libqsesttpxx_la_rpath) $(libqsesttpxx_la_OBJECTS) $(libqsesttpxx_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Sttp.Plo@am__quote@ + +.cpp.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.lo: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(libdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libLTLIBRARIES install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/qse/lib/sttp/Sttp.cpp b/qse/lib/sttp/Sttp.cpp new file mode 100644 index 00000000..873fa4c2 --- /dev/null +++ b/qse/lib/sttp/Sttp.cpp @@ -0,0 +1,606 @@ +/* + * $Id$ + * + Copyright (c) 2006-2014 Chung, Hyung-Hwan. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#include +#include +#include +#include "../cmn/mem-prv.h" + +#define GET_CHAR() if (this->get_char() <= -1) return -1; +#define GET_TOKEN() if (this->get_token() <= -1) return -1; +#define PUT_CHAR(x) if (this->put_char(x) <= -1) return -1; + +QSE_BEGIN_NAMESPACE(QSE) + +Sttp::Sttp (Transmittable* s, Mmgr* mmgr) QSE_CPP_NOEXCEPT: Mmged(mmgr), p_medium(s) +{ + this->reset (); +} + +Sttp::~Sttp () +{ +} + +void Sttp::reset () QSE_CPP_NOEXCEPT +{ + this->inbuf_len = 0; + this->outbuf_len = 0; + this->sttp_curp = 0; + this->sttp_curc = QSE_T('\0'); + + this->max_raw_cmd_len = MAX_RAW_CMD_LEN; + this->max_arg_count = MAX_ARG_COUNT; + this->raw_cmd_len = 0; + + this->opt_send_newline = true; +} + +int Sttp::receiveCmd (SttpCmd* cmd) QSE_CPP_NOEXCEPT +{ + QSE_ASSERT (p_medium != QSE_NULL); + + this->p_errcode = E_NOERR; + this->raw_cmd_len = 0; + + GET_CHAR (); + GET_TOKEN(); + + /* + if (this->token_type == T_SEMICOLON) { + // null command + cmd->clear (); + return 0; + } + */ + + if (this->token_type == T_EOF) return 0; // no more command. end of input + + if (this->token_type != T_IDENT) + { + this->p_errcode = E_CMDNAME; + return -1; + } + + cmd->clear (); + try { cmd->setName (token_value.getBuffer(), token_value.getSize()); } + catch (...) + { + this->p_errcode= E_MEMORY; + return -1; + } + + while (1) + { + GET_TOKEN(); + switch (this->token_type) + { + case T_STRING: + try { cmd->addArg (token_value.getBuffer(), token_value.getSize()); } + catch (...) + { + this->p_errcode = E_MEMORY; + return -1; + } + break; + + case T_IDENT: + // you don't have to quote a string owing to this. + try { cmd->addArg (token_value.getBuffer(), token_value.getSize()); } + catch (...) + { + this->p_errcode = E_MEMORY; + return -1; + } + break; + + default: + if (cmd->getArgCount() == 0) break; + this->p_errcode = E_WRONGARG; + return -1; + } + + GET_TOKEN(); + if (this->token_type != T_COMMA) break; + if (cmd->getArgCount() >= this->max_arg_count) + { + this->p_errcode = E_TOOMANYARGS; + return -1; + } + } + + if (this->token_type != T_SEMICOLON) + { + this->p_errcode = E_SEMICOLON; + return -1; + } + + return 1; // got a command +} + +int Sttp::sendCmd (const SttpCmd& cmd) QSE_CPP_NOEXCEPT +{ + this->p_errcode = E_NOERR; + + const qse_char_t* p = (const qse_char_t*)cmd.name; + if (*p == QSE_T('\0')) return 0; // don't send a null command + + while (*p != QSE_T('\0')) PUT_CHAR(*p++); + + qse_size_t nargs = cmd.getArgCount(); + if (nargs > 0) + { + PUT_CHAR (QSE_T(' ')); + + for (qse_size_t i = 0; i < nargs; i++) + { + const qse_char_t* arg = cmd.getArgAt(i); + qse_size_t arg_len = cmd.getArgLenAt(i); + + PUT_CHAR (QSE_T('\"')); + for (qse_size_t j = 0; j < arg_len; j++) + { + // Don't have to send a backslash when encryption is on + // because only 16 characters from 'A' TO 'P' are used + if (arg[j] == QSE_T('\\') || + arg[j] == QSE_T('\"')) PUT_CHAR ('\\'); + PUT_CHAR (arg[j]); + } + PUT_CHAR (QSE_T('\"')); + + if (i < nargs - 1) PUT_CHAR (QSE_T(',')); + } + } + + PUT_CHAR (QSE_T(';')); + if (this->opt_send_newline) + { + PUT_CHAR (QSE_T('\r')); + PUT_CHAR (QSE_T('\n')); + } + return this->flush_outbuf(); +} + + +int Sttp::sendCmd (const qse_char_t* name, qse_size_t nargs = 0, ...) QSE_CPP_NOEXCEPT +{ + this->p_errcode = E_NOERR; + + const qse_char_t* p = name; + if (*p == QSE_T('\0')) return 0; // don't send a null command + + while (*p != QSE_T('\0')) PUT_CHAR (*p++); + + if (nargs > 0) + { + va_list ap; + va_start (ap, nargs); + + PUT_CHAR (QSE_T(' ')); + for (qse_size_t i = 1; i <= nargs; i++) + { + p = va_arg (ap, qse_char_t*); + + PUT_CHAR (QSE_T('\"')); + while (*p) + { + if (*p == QSE_T('\\') || *p == QSE_T('\"')) PUT_CHAR (QSE_T('\\')); + PUT_CHAR (*p++); + } + PUT_CHAR (QSE_T('\"')); + + if (i < nargs) PUT_CHAR (QSE_T(',')); + } + va_end (ap); + } + + PUT_CHAR (QSE_T(';')); + if (this->opt_send_newline) + { + PUT_CHAR (QSE_T('\r')); + PUT_CHAR (QSE_T('\n')); + } + return this->flush_outbuf(); +} + +int Sttp::sendCmdL (const qse_char_t* name, qse_size_t nargs = 0, ...) QSE_CPP_NOEXCEPT +{ + this->p_errcode = E_NOERR; + + const qse_char_t* p = name; + if (*p == QSE_T('\0')) return 0; // don't send a null command + + while (*p != QSE_T('\0')) PUT_CHAR (*p++); + + if (nargs > 0) + { + va_list ap; + va_start (ap, nargs); + + PUT_CHAR (QSE_T(' ')); + for (qse_size_t i = 1; i <= nargs; i++) + { + p = va_arg (ap, qse_char_t*); + qse_size_t len = va_arg (ap, qse_size_t); + + PUT_CHAR (QSE_T('\"')); + while (len > 0) + { + if (*p == QSE_T('\\') || *p == QSE_T('\"')) PUT_CHAR (QSE_T('\\')); + PUT_CHAR (*p++); + len--; + } + PUT_CHAR (QSE_T('\"')); + + if (i < nargs) PUT_CHAR (QSE_T(',')); + } + va_end (ap); + } + + PUT_CHAR (QSE_T(';')); + if (this->opt_send_newline) + { + PUT_CHAR (QSE_T('\r')); + PUT_CHAR (QSE_T('\n')); + } + return this->flush_outbuf(); +} + +int Sttp::sendCmdL (const qse_char_t* name, qse_size_t nmlen, qse_size_t nargs = 0, ...) QSE_CPP_NOEXCEPT +{ + this->p_errcode = E_NOERR; + + qse_char_t* p = (qse_char_t*)name; + if (*p == QSE_T('\0')) return 0; // don't send a null command + + //while (*p != QSE_T('\0')) PUT_CHAR (*p++); + while (nmlen > 0) + { + PUT_CHAR (*p++); + nmlen--; + } + + if (nargs > 0) + { + va_list ap; + + va_start (ap, nargs); + + PUT_CHAR (QSE_T(' ')); + for (qse_size_t i = 1; i <= nargs; i++) + { + p = va_arg (ap, qse_char_t*); + qse_size_t len = va_arg (ap, qse_size_t); + + PUT_CHAR (QSE_T('\"')); + while (len > 0) + { + if (*p == QSE_T('\\') || *p == QSE_T('\"')) PUT_CHAR (QSE_T('\\')); + PUT_CHAR (*p++); + len--; + } + PUT_CHAR (QSE_T('\"')); + + if (i < nargs) PUT_CHAR (QSE_T(',')); + } + + va_end (ap); + } + + PUT_CHAR (QSE_T(';')); + if (this->opt_send_newline) + { + PUT_CHAR (QSE_T('\r')); + PUT_CHAR (QSE_T('\n')); + } + return this->flush_outbuf(); +} + + +int Sttp::get_char () QSE_CPP_NOEXCEPT +{ + qse_size_t remain = 0; + + if (this->sttp_curp == this->inbuf_len) + { + qse_ssize_t n; + + if (this->sttp_curc == QSE_CHAR_EOF) + { + /* called again after EOF is received. */ + this->p_errcode = E_RECEIVE; + return -1; + } + +#if defined(QSE_CHAR_IS_WCHAR) + get_char_utf8: +#endif + n = this->p_medium->receive(&inbuf[remain], QSE_COUNTOF(inbuf) - remain); + if (n <= -1) + { + this->p_errcode = E_RECEIVE; + return -1; + } + if (n == 0) + { + // no more input +// TODO: if EOF has been read already, raise an error + + this->sttp_curc = QSE_CHAR_EOF; + return 0; + } + + this->sttp_curp = 0; + this->inbuf_len = (qse_size_t)n + remain; + } + +#if defined(QSE_CHAR_IS_WCHAR) + + remain = this->inbuf_len - this->sttp_curp; + + qse_size_t seqlen = qse_utf8len(&this->inbuf[this->sttp_curp], remain); + if (seqlen == 0) + { + // invalid sequence + this->sttp_curp++; // skip one byte + this->p_errcode = E_UTF8_CONV; + return -1; + } + + if (remain < seqlen) + { + // incomplete sequence. must read further... + qse_memcpy (this->inbuf, &this->inbuf[this->sttp_curp], remain); + this->sttp_curp = 0; + this->inbuf_len = remain; + goto get_char_utf8; + } + + qse_wchar_t wch; + qse_size_t n = qse_utf8touc(&this->inbuf[this->sttp_curp], seqlen, &wch); + if (n == 0) + { + // this part is not likely to be reached for qse_utf8len() above. + // but keep it for completeness + this->sttp_curp++; // still must skip a character + this->p_errcode = E_UTF8_CONV; + return -1; + } + + this->sttp_curc = wch; + this->sttp_curp += n; +#else + this->sttp_curc = this->inbuf[this->sttp_curp++]; +#endif + + /* + if (sttp_curc == QSE_T('\0')) { + this->p_errcode = E_WRONGCHAR; + return -1; + } + */ + + if (raw_cmd_len >= max_raw_cmd_len) + { + this->p_errcode = E_TOOLONGCMD; + return -1; + } + raw_cmd_len++; + + return 0; +} + +int Sttp::get_token () QSE_CPP_NOEXCEPT +{ + while (QSE_ISSPACE(this->sttp_curc)) GET_CHAR (); // skip spaces... + + if (is_ident_char(this->sttp_curc)) return get_ident (); + else if (this->sttp_curc == QSE_T('\"') || this->sttp_curc == QSE_T('\'')) + { + return get_string (sttp_curc); + } + else if (this->sttp_curc == QSE_T(';')) + { + this->token_type = T_SEMICOLON; + this->token_value = QSE_T(';'); + // do not read the next character to terminate a command + // get_char (); + } + else if (this->sttp_curc == QSE_T(',')) + { + this->token_type = T_COMMA; + this->token_value = QSE_T(','); + GET_CHAR (); + } + else + { + this->p_errcode = E_WRONGCHAR; + return -1; + } + + return 0; +} + +int Sttp::get_ident () QSE_CPP_NOEXCEPT +{ + this->token_type = T_IDENT; + this->token_value = QSE_T(""); + + while (is_ident_char(this->sttp_curc)) + { + this->token_value.append (this->sttp_curc); + GET_CHAR (); + } + + return 0; +} + +int Sttp::get_string (qse_char_t end) QSE_CPP_NOEXCEPT +{ + bool escaped = false; + + this->token_type = T_STRING; + this->token_value = QSE_T(""); + + GET_CHAR (); + while (1) + { + if (escaped == true) + { + this->sttp_curc = this->translate_escaped_char(this->sttp_curc); + escaped = false; + } + else + { + if (this->sttp_curc == end) + { + GET_CHAR (); + break; + } + else if (this->sttp_curc == QSE_T('\\')) + { + GET_CHAR (); + escaped = true; + continue; + } + } + + this->token_value.append (this->sttp_curc); + GET_CHAR (); + } + + return 0; +} + +qse_cint_t Sttp::translate_escaped_char (qse_cint_t c) QSE_CPP_NOEXCEPT +{ + if (c == QSE_T('n')) c = QSE_T('\n'); + else if (c == QSE_T('t')) c = QSE_T('\t'); + else if (c == QSE_T('r')) c = QSE_T('\r'); + else if (c == QSE_T('v')) c = QSE_T('\v'); + else if (c == QSE_T('f')) c = QSE_T('\f'); + else if (c == QSE_T('a')) c = QSE_T('\a'); + else if (c == QSE_T('b')) c = QSE_T('\b'); + //else if (c == QSE_T('0')) c = QSE_T('\0'); + + return c; +} + +bool Sttp::is_ident_char (qse_cint_t c) QSE_CPP_NOEXCEPT +{ + return QSE_ISALNUM(c) || c == QSE_T('_') || c == QSE_T('.') || c == QSE_T('*') || c == QSE_T('@'); +} + +///////////////////////////////////////////////////////////////////////// + +int Sttp::put_mchar (qse_mchar_t ch) QSE_CPP_NOEXCEPT +{ + this->outbuf[outbuf_len++] = ch; + if (this->outbuf_len >= QSE_COUNTOF(outbuf)) return this->flush_outbuf(); + return 0; +} + +int Sttp::put_wchar (qse_wchar_t ch) QSE_CPP_NOEXCEPT +{ + qse_mchar_t buf[QSE_UTF8LEN_MAX]; + qse_size_t len = qse_uctoutf8(ch, buf, QSE_COUNTOF(buf)); + if (len == 0 || len > QSE_COUNTOF(buf)) + { + this->p_errcode = E_UTF8_CONV; + return -1; + } + + for (qse_size_t i = 0; i < len; i++) + { + if (this->put_mchar(buf[i]) == -1) return -1; + } + return 0; +} + + +int Sttp::flush_outbuf () QSE_CPP_NOEXCEPT +{ + if (this->outbuf_len > 0) + { + qse_size_t pos = 0; + + do + { + qse_ssize_t n = this->p_medium->send(&this->outbuf[pos], this->outbuf_len); + if (n <= -1) + { + if (pos > 0) QSE_MEMCPY (&this->outbuf[0], &this->outbuf[pos], this->outbuf_len * QSE_SIZEOF(this->outbuf[0])); + this->p_errcode = E_SEND; + return -1; + } + + this->outbuf_len -= n; + pos += n; + } + while (this->outbuf_len > 0); + return 1; + } + + return 0; +} + + +const qse_char_t* Sttp::getErrorStr () const QSE_CPP_NOEXCEPT +{ + switch (this->p_errcode) + { + case E_NOERR: + return QSE_T("no error"); + case E_MEMORY: + return QSE_T("memory exhausted"); + case E_RECEIVE: + return QSE_T("failed receive over medium"); + case E_SEND: + return QSE_T("failed send over medium"); + case E_UTF8_CONV: + return QSE_T("utf8 conversion failure"); + case E_CMDNAME: + return QSE_T("command name expected"); + case E_CMDPROC: + return QSE_T("command procedure exit"); + case E_UNKNOWNCMD: + return QSE_T("unknown command"); + case E_TOOLONGCMD: + return QSE_T("command too long"); + case E_SEMICOLON: + return QSE_T("semicolon expected"); + case E_TOOMANYARGS: + return QSE_T("too many command arguments"); + case E_WRONGARG: + return QSE_T("wrong command argument"); + case E_WRONGCHAR: + return QSE_T("wrong character"); + default: + return QSE_T("unknown error"); + } +} + +QSE_END_NAMESPACE(QSE) diff --git a/qse/samples/si/Makefile.am b/qse/samples/si/Makefile.am index ffcc6458..a2385dca 100644 --- a/qse/samples/si/Makefile.am +++ b/qse/samples/si/Makefile.am @@ -65,17 +65,19 @@ if ENABLE_CXX CXXLIB = -lqsesixx -lqsecmnxx -bin_PROGRAMS += sck01 spl02 tcpsvr01 thr02 thr03 +bin_PROGRAMS += sck01 spl02 tcpsvr01 tcpsvr02 thr02 thr03 sck01_SOURCES = sck01.cpp spl02_SOURCES = spl02.cpp tcpsvr01_SOURCES = tcpsvr01.cpp +tcpsvr02_SOURCES = tcpsvr02.cpp thr02_SOURCES = thr02.cpp thr03_SOURCES = thr03.cpp sck01_LDADD = $(CXXLIB) $(LDADD) spl02_LDADD = $(CXXLIB) $(LDADD) tcpsvr01_LDADD = $(CXXLIB) $(LDADD) +tcpsvr02_LDADD = $(CXXLIB) $(LDADD) -L../../lib/sttp -lqsesttpxx thr02_LDADD = $(CXXLIB) $(LDADD) thr03_LDADD = $(CXXLIB) $(LDADD) diff --git a/qse/samples/si/Makefile.in b/qse/samples/si/Makefile.in index f57a8e00..71edba09 100644 --- a/qse/samples/si/Makefile.in +++ b/qse/samples/si/Makefile.in @@ -95,7 +95,7 @@ bin_PROGRAMS = aio01$(EXEEXT) dir01$(EXEEXT) fio01$(EXEEXT) \ sio01$(EXEEXT) sio02$(EXEEXT) sio03$(EXEEXT) spl01$(EXEEXT) \ task01$(EXEEXT) thr01$(EXEEXT) $(am__EXEEXT_1) @WCHAR_TRUE@@WIN32_TRUE@am__append_1 = $(UNICOWS_LIBS) -@ENABLE_CXX_TRUE@am__append_2 = sck01 spl02 tcpsvr01 thr02 thr03 +@ENABLE_CXX_TRUE@am__append_2 = sck01 spl02 tcpsvr01 tcpsvr02 thr02 thr03 subdir = samples/si ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_sign.m4 \ @@ -113,8 +113,8 @@ CONFIG_HEADER = $(top_builddir)/include/qse/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @ENABLE_CXX_TRUE@am__EXEEXT_1 = sck01$(EXEEXT) spl02$(EXEEXT) \ -@ENABLE_CXX_TRUE@ tcpsvr01$(EXEEXT) thr02$(EXEEXT) \ -@ENABLE_CXX_TRUE@ thr03$(EXEEXT) +@ENABLE_CXX_TRUE@ tcpsvr01$(EXEEXT) tcpsvr02$(EXEEXT) \ +@ENABLE_CXX_TRUE@ thr02$(EXEEXT) thr03$(EXEEXT) am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_aio01_OBJECTS = aio01.$(OBJEXT) @@ -215,6 +215,11 @@ am__tcpsvr01_SOURCES_DIST = tcpsvr01.cpp tcpsvr01_OBJECTS = $(am_tcpsvr01_OBJECTS) @ENABLE_CXX_TRUE@tcpsvr01_DEPENDENCIES = $(am__DEPENDENCIES_1) \ @ENABLE_CXX_TRUE@ $(am__DEPENDENCIES_3) +am__tcpsvr02_SOURCES_DIST = tcpsvr02.cpp +@ENABLE_CXX_TRUE@am_tcpsvr02_OBJECTS = tcpsvr02.$(OBJEXT) +tcpsvr02_OBJECTS = $(am_tcpsvr02_OBJECTS) +@ENABLE_CXX_TRUE@tcpsvr02_DEPENDENCIES = $(am__DEPENDENCIES_1) \ +@ENABLE_CXX_TRUE@ $(am__DEPENDENCIES_3) am_thr01_OBJECTS = thr01.$(OBJEXT) thr01_OBJECTS = $(am_thr01_OBJECTS) thr01_LDADD = $(LDADD) @@ -288,8 +293,8 @@ SOURCES = $(aio01_SOURCES) $(dir01_SOURCES) $(fio01_SOURCES) \ $(pio01_SOURCES) $(rwl01_SOURCES) $(sck01_SOURCES) \ $(sio01_SOURCES) $(sio02_SOURCES) $(sio03_SOURCES) \ $(spl01_SOURCES) $(spl02_SOURCES) $(task01_SOURCES) \ - $(tcpsvr01_SOURCES) $(thr01_SOURCES) $(thr02_SOURCES) \ - $(thr03_SOURCES) + $(tcpsvr01_SOURCES) $(tcpsvr02_SOURCES) $(thr01_SOURCES) \ + $(thr02_SOURCES) $(thr03_SOURCES) DIST_SOURCES = $(aio01_SOURCES) $(dir01_SOURCES) $(fio01_SOURCES) \ $(fio02_SOURCES) $(fs01_SOURCES) $(fs02_SOURCES) \ $(fs03_SOURCES) $(glob01_SOURCES) $(log01_SOURCES) \ @@ -297,8 +302,9 @@ DIST_SOURCES = $(aio01_SOURCES) $(dir01_SOURCES) $(fio01_SOURCES) \ $(pio01_SOURCES) $(rwl01_SOURCES) $(am__sck01_SOURCES_DIST) \ $(sio01_SOURCES) $(sio02_SOURCES) $(sio03_SOURCES) \ $(spl01_SOURCES) $(am__spl02_SOURCES_DIST) $(task01_SOURCES) \ - $(am__tcpsvr01_SOURCES_DIST) $(thr01_SOURCES) \ - $(am__thr02_SOURCES_DIST) $(am__thr03_SOURCES_DIST) + $(am__tcpsvr01_SOURCES_DIST) $(am__tcpsvr02_SOURCES_DIST) \ + $(thr01_SOURCES) $(am__thr02_SOURCES_DIST) \ + $(am__thr03_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -523,11 +529,13 @@ thr01_SOURCES = thr01.c @ENABLE_CXX_TRUE@sck01_SOURCES = sck01.cpp @ENABLE_CXX_TRUE@spl02_SOURCES = spl02.cpp @ENABLE_CXX_TRUE@tcpsvr01_SOURCES = tcpsvr01.cpp +@ENABLE_CXX_TRUE@tcpsvr02_SOURCES = tcpsvr02.cpp @ENABLE_CXX_TRUE@thr02_SOURCES = thr02.cpp @ENABLE_CXX_TRUE@thr03_SOURCES = thr03.cpp @ENABLE_CXX_TRUE@sck01_LDADD = $(CXXLIB) $(LDADD) @ENABLE_CXX_TRUE@spl02_LDADD = $(CXXLIB) $(LDADD) @ENABLE_CXX_TRUE@tcpsvr01_LDADD = $(CXXLIB) $(LDADD) +@ENABLE_CXX_TRUE@tcpsvr02_LDADD = $(CXXLIB) $(LDADD) -L../../lib/sttp -lqsesttpxx @ENABLE_CXX_TRUE@thr02_LDADD = $(CXXLIB) $(LDADD) @ENABLE_CXX_TRUE@thr03_LDADD = $(CXXLIB) $(LDADD) all: all-am @@ -701,6 +709,10 @@ tcpsvr01$(EXEEXT): $(tcpsvr01_OBJECTS) $(tcpsvr01_DEPENDENCIES) $(EXTRA_tcpsvr01 @rm -f tcpsvr01$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(tcpsvr01_OBJECTS) $(tcpsvr01_LDADD) $(LIBS) +tcpsvr02$(EXEEXT): $(tcpsvr02_OBJECTS) $(tcpsvr02_DEPENDENCIES) $(EXTRA_tcpsvr02_DEPENDENCIES) + @rm -f tcpsvr02$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(tcpsvr02_OBJECTS) $(tcpsvr02_LDADD) $(LIBS) + thr01$(EXEEXT): $(thr01_OBJECTS) $(thr01_DEPENDENCIES) $(EXTRA_thr01_DEPENDENCIES) @rm -f thr01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(thr01_OBJECTS) $(thr01_LDADD) $(LIBS) @@ -741,6 +753,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spl02.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tcpsvr01.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tcpsvr02.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thr01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thr02.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thr03.Po@am__quote@