first commit acl to github

first commit acl to github
This commit is contained in:
zsxxsz 2013-08-18 17:42:25 +08:00
parent c11442e824
commit cc05b877a2
2899 changed files with 586601 additions and 0 deletions

1844
Doxyfile Normal file

File diff suppressed because it is too large Load Diff

1754
Doxyfile_acl_protocol Normal file

File diff suppressed because it is too large Load Diff

184
Makefile Normal file
View File

@ -0,0 +1,184 @@
SHELL = /bin/sh
OSNAME = $(shell uname -sm)
OSTYPE = $(shell uname -p)
LIB_PATH = ./dist/lib
ACL_LIB = $(LIB_PATH)
PROTO_LIB = $(LIB_PATH)
DICT_LIB = $(LIB_PATH)
TLS_LIB = $(LIB_PATH)
INC_PATH = ./dist/include
ACL_INC = $(INC_PATH)/acl
PROTO_INC = $(INC_PATH)/protocol
DICT_INC = $(INC_PATH)/dict
TLS_INC = $(INC_PATH)/tls
RPATH =
DATE_NOW = 20`date +%y`.`date +%m`.`date +%d`
MAKE_ARGS =
ifeq ($(findstring FreeBSD, $(OSNAME)), FreeBSD)
RPATH = freebsd
endif
ifeq ($(findstring Linux, $(OSNAME)), Linux)
ifeq ($(findstring i686, $(OSTYPE)), i686)
RPATH = linux32
endif
ifeq ($(findstring x86_64, $(OSTYPE)), x86_64)
RPATH = linux64
endif
n = `cat /proc/cpuinfo | grep processor | wc -l`
MAKE_ARGS = -j $(n)
endif
ifeq ($(findstring SunOS, $(OSNAME)), SunOS)
ifeq ($(findstring i386, $(OSTYPE)), i386)
RPATH = sunos_x86
endif
endif
##############################################################################
.PHONY = check help all clean install uninstall uninstall_all build_bin build_src
VERSION = 2.1.2.8
help:
@(echo "usage: make help|all|clean|install|uninstall|uninstall_all|build_bin|build_src")
all:
@(cd lib_acl; make $(MAKE_ARGS))
@(cd lib_protocol; make $(MAKE_ARGS))
@(cd lib_acl_cpp; make $(MAKE_ARGS))
@(cd lib_rpc; make $(MAKE_ARGS))
@(cd unit_test; make $(MAKE_ARGS))
@(cd samples; make)
# @(cd lib_dict; make $(MAKE_ARGS))
# @(cd lib_tls; make $(MAKE_ARGS))
clean:
@(cd lib_acl; make clean)
@(cd lib_protocol; make clean)
@(cd lib_acl_cpp; make clean)
@(cd lib_rpc; make clean)
@(cd unit_test; make clean)
@(cd samples; make clean)
# @(cd lib_dict; make clean)
# @(cd lib_tls; make clean)
install:
@(echo "")
@(echo "begin copy file...")
cp -f lib_acl/master/acl_master ./dist/master/libexec/$(RPATH)/
cp -f lib_acl/lib/lib_acl.a $(ACL_LIB)/$(RPATH)/
cp -Rf lib_acl/include/* $(ACL_INC)/
cp -f lib_protocol/lib/lib_protocol.a $(PROTO_LIB)/$(RPATH)/
cp -Rf lib_protocol/include/* $(PROTO_INC)/
cp -f lib_acl_cpp/lib/lib_acl_cpp.a $(ACL_LIB)/$(RPATH)/
cp -Rf lib_acl_cpp/include/acl_cpp/* $(INC_PATH)/acl_cpp/
# cp -f lib_dict/lib/lib_dict.a $(DICT_LIB)/$(RPATH)/
# cp -Rf lib_dict/include/* $(DICT_INC)/
# cp -f lib_tls/lib/lib_tls.a $(TLS_LIB)/$(RPATH)/
# cp -Rf lib_tls/include/* $(TLS_INC)/
uninstall:
@(echo "")
@(echo "begin remove file...")
rm -f ./dist/master/libexec/$(RPATH)/*
rm -f $(ACL_LIB)/$(RPATH)/lib_acl.a
rm -Rf $(ACL_INC)/*
rm -f $(PROTO_LIB)/$(RPATH)/lib_protocol.a
rm -Rf $(PROTO_INC)/*
rm -f $(ACL_LIB)/$(RPATH)/lib_acl_cpp.a
rm -Rf $(INC_PATH)/acl_cpp/*
rm -f $(DICT_LIB)/$(RPATH)/lib_dict.a
rm -Rf $(DICT_INC)/*
rm -f $(TLS_LIB)/$(RPATH)/lib_tls.a
rm -Rf $(TLS_INC)/*
uninstall_all:
@(echo "")
@(echo "begin remove all dist files ...")
rm -Rf $(ACL_INC)/*
rm -Rf $(PROTO_INC)/*
rm -Rf $(DICT_INC)/*
rm -Rf $(TLS_INC)/*
rm -f ./dist/master/libexec/linux32/*
rm -f ./dist/master/libexec/linux64/*
rm -f ./dist/master/libexec/sunos_x86/*
rm -f ./dist/master/libexec/freebsd/*
rm -f $(ACL_LIB)/linux32/*.a
rm -f $(ACL_LIB)/linux64/*.a
rm -f $(ACL_LIB)/sunos_x86/*.a
rm -f $(ACL_LIB)/freebsd/*.a
rm -f $(ACL_LIB)/win32/*.lib
rm -f $(ACL_LIB)/win32/*.dll
rm -f $(PROTO_LIB)/linux32/*.a
rm -f $(PROTO_LIB)/linux64/*.a
rm -f $(PROTO_LIB)/sunos_x86/*.a
rm -f $(PROTO_LIB)/freebsd/*.a
rm -f $(PROTO_LIB)/win32/*.lib
rm -f $(PROTO_LIB)/win32/*.dll
rm -f $(DICT_LIB)/linux32/*.a
rm -f $(DICT_LIB)/linux64/*.a
rm -f $(DICT_LIB)/sunos_x86/*.a
rm -f $(DICT_LIB)/freebsd/*.a
rm -f $(DICT_LIB)/win32/*.lib
rm -f $(DICT_LIB)/win32/*.dll
rm -f $(TLS_LIB)/linux32/*.a
rm -f $(TLS_LIB)/linux64/*.a
rm -f $(TLS_LIB)/sunos_x86/*.a
rm -f $(TLS_LIB)/freebsd/*.a
rm -f $(TLS_LIB)/win32/*.lib
rm -f $(TLS_LIB)/win32/*.dll
rm -f win32_build/vc/lib_acl/*.map
rm -f win32_build/vc/lib_acl/*.ilk
rm -f win32_build/vc/lib_protocol/*.map
rm -f win32_build/vc/lib_protocol/*.ilk
build_bin:
@(echo "please waiting ...")
@(echo "begin building bin release...")
@(rm -rf acl.bin)
@(echo "copy files ...")
@(cp -R dist acl.bin)
@(cp lib_acl/changes.txt acl.bin/include/acl/)
@(cp lib_protocol/changes.txt acl.bin/include/protocol/)
@(cp lib_dict/changes.txt acl.bin/include/dict/)
@(cp lib_tls/changes.txt acl.bin/include/tls/)
@(cp changes.txt acl.bin/)
@(echo "make tar package ...")
@(tar -cf acl.bin.tar acl.bin)
@(echo "make gzip package ...")
@(gzip -c acl.bin.tar > acl.bin.tgz)
@(rm acl.bin.tar)
@(rm -rf acl.bin)
@(echo "move acl.bin.tgz to ../acl$(VERSION).bin.$(DATE_NOW).tgz")
@(mv acl.bin.tgz ../acl$(VERSION).bin.$(DATE_NOW).tgz)
# @(echo "move acl.bin.tgz to ../acl$(VERSION).bin.tgz")
# @(mv acl.bin.tgz ../acl$(VERSION).bin.tgz)
build_src: clean uninstall_all
@(echo "begin building src release...")
@(rm -rf acl)
@(echo "copy files ...")
@(mkdir acl)
@(cp -R dist acl/)
@(cp -R lib_acl acl/)
@(cp -R lib_protocol acl/)
@(cp -R lib_dict acl/)
@(cp -R lib_tls acl/)
@(cp -R samples acl/)
@(cp -R unit_test acl/)
@(cp -R win32_build acl/)
@(cp -R lib acl/)
@(cp -R doc acl/)
@(cp Makefile acl/)
@(cp changes.txt acl/)
@(cp readme.txt acl/)
@(cp Doxyfile acl/)
@(echo "make tar package ...")
@(tar -cf acl.src.tar acl)
@(echo "make gzip package ...")
@(gzip -c acl.src.tar > acl.src.tgz)
@(rm acl.src.tar)
@(rm -rf acl)
@(echo "move acl.src.tgz to ../acl$(VERSION).src.$(DATE_NOW).tgz")
@(mv acl.src.tgz ../acl$(VERSION).src.$(DATE_NOW).tgz)
# @(echo "move acl.src.tgz to ../acl$(VERSION).src.tgz")
# @(mv acl.src.tgz ../acl$(VERSION).src.tgz)
check:
echo "TYPE=$(OSTYPE), OSNAME=$(OSNAME), RPATH=$(RPATH)"

700
acl_cpp_vc2003.sln Normal file
View File

@ -0,0 +1,700 @@
Microsoft Visual Studio Solution File, Format Version 8.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "socket_stream", "lib_acl_cpp\samples\socket_stream\socket_stream.vcproj", "{41FA5224-3315-4CDA-9C44-19085049F179}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime", "lib_acl_cpp\samples\mime\mime.vcproj", "{52AA7352-CE48-4F60-B92D-1EB16A79FE54}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "lib_acl_cpp\samples\xml\xml.vcproj", "{2DABFAD1-114B-4F96-9185-DC0C56A3662D}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "string", "lib_acl_cpp\samples\string\string.vcproj", "{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fstream", "lib_acl_cpp\samples\fstream\fstream.vcproj", "{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_base64", "lib_acl_cpp\samples\mime_base64\mime_base64.vcproj", "{19CB30E5-2672-4A8B-96FB-9C42970CCF69}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_qp", "lib_acl_cpp\samples\mime_qp\mime_qp.vcproj", "{5DC79C83-9DE8-46B3-A172-8A4E3371878B}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flock", "lib_acl_cpp\samples\flock\flock.vcproj", "{5F4063AD-B591-4C64-ADEA-609968A83550}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rfc2047", "lib_acl_cpp\samples\rfc2047\rfc2047.vcproj", "{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aio_server", "lib_acl_cpp\samples\aio_server\aio_server.vcproj", "{225D0BFA-64D7-4F8F-951E-36A494CF6178}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aio_client", "lib_acl_cpp\samples\aio_client\aio_client.vcproj", "{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winaio", "lib_acl_cpp\samples\winaio\winaio.vcproj", "{ADE6F714-BD52-432D-AB86-62FA59AB6746}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aio_ipc", "lib_acl_cpp\samples\aio_ipc\aio_ipc.vcproj", "{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aio_dns", "lib_acl_cpp\samples\aio_dns\aio_dns.vcproj", "{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "socket_client", "lib_acl_cpp\samples\socket_client\socket_client.vcproj", "{7DA0AC89-62E4-4D02-9BC5-C32E6846E168}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "http_client", "lib_acl_cpp\samples\http_client\http_client.vcproj", "{82B65DCB-D910-4B92-BFDF-15896A575861}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HttpClient", "lib_acl_cpp\samples\HttpClient\HttpClient.vcproj", "{C0A7DB86-EF13-4A3E-9F34-8950521C9675}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_client", "lib_acl_cpp\samples\ssl_client\ssl_client.vcproj", "{B14C93A6-DABE-48F9-A78C-C94049B69984}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_aio_client", "lib_acl_cpp\samples\ssl_aio_client\ssl_aio_client.vcproj", "{8CF882F1-3D3C-4233-BCA6-7F90E49B80BE}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "final_class", "lib_acl_cpp\samples\final_class\final_class.vcproj", "{840C2263-DF87-4FD2-8964-EF81B74695FE}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite", "lib_acl_cpp\samples\sqlite\sqlite.vcproj", "{20013703-57CC-4821-BF24-129A12490435}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "db_service", "lib_acl_cpp\samples\db_service\db_service.vcproj", "{82C00ED0-AEF5-4E5B-9581-1EA052CBEA01}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "win_dbservice", "lib_acl_cpp\samples\win_dbservice\win_dbservice.vcproj", "{DC7E75E5-FE42-4529-9D9A-19D240B8727B}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "lib_acl_cpp\samples\zlib\zlib.vcproj", "{F6292B2C-2C57-40E1-805F-86D9FB1C3251}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mysql", "lib_acl_cpp\samples\mysql\mysql.vcproj", "{A804ECF6-59F0-4CCF-8D71-6E44CBCA2796}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_threads", "lib_acl_cpp\samples\master_threads\master_threads.vcproj", "{FA0EEABF-CC21-4A99-89AA-D0379175E55A}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_aio", "lib_acl_cpp\samples\master_aio\master_aio.vcproj", "{4B7C83E5-C34F-4C42-9A37-E5F33FBA2EA3}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_trigger", "lib_acl_cpp\samples\master_trigger\master_trigger.vcproj", "{80F0213B-A053-4420-BAF9-4657AD8473DA}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_proc", "lib_acl_cpp\samples\master_proc\master_proc.vcproj", "{B7EE43F4-7541-48A7-A066-DA60A55E67ED}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "http_client2", "lib_acl_cpp\samples\http_client2\http_client2.vcproj", "{BC32C5A1-CDE1-4872-9CE8-5F3A65D39680}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json", "lib_acl_cpp\samples\json\json.vcproj", "{56199633-C345-4733-8292-A4F2D86AA847}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rfc822", "lib_acl_cpp\samples\rfc822\rfc822.vcproj", "{1B51538E-859A-46FE-B423-592D79DEEF63}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "http_servlet", "lib_acl_cpp\samples\http_servlet\http_servlet.vcproj", "{5A189A92-9AF4-49FC-ABF4-8220A26E46D0}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "http_mime", "lib_acl_cpp\samples\http_mime\http_mime.vcproj", "{A1BA7D3E-5434-4F98-87F2-78673B3EEEF1}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cgi", "lib_acl_cpp\samples\cgi\cgi.vcproj", "{864A7341-756C-4BF9-A16F-059FDD972D79}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cgi_upload", "lib_acl_cpp\samples\cgi_upload\cgi_upload.vcproj", "{A28B19ED-291C-47C8-BDD5-10BB038C371E}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rpc_download", "lib_acl_cpp\samples\rpc_download\rpc_download.vcproj", "{349F7822-A752-42F0-BB13-4A28497D68DF}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gui_rpc", "lib_acl_cpp\samples\gui_rpc\gui_rpc.vcproj", "{F37E8828-252D-4F3E-A5B6-E3770750042F}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "acl_cpp_test", "lib_acl_cpp\samples\acl_cpp_test\acl_cpp_test.vcproj", "{C8CED6EB-DCC8-4CEE-921F-3190C879B116}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "md5", "lib_acl_cpp\samples\md5\md5.vcproj", "{B8029C89-9870-4EE4-ADD0-E7852E0D1810}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "http_server", "lib_acl_cpp\samples\http_server\http_server.vcproj", "{8B7A7746-C678-4205-8EA7-492A097F524B}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_acl", "lib_acl\lib_acl_vc2003.vcproj", "{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_protocol", "lib_protocol\lib_protocol_vc2003.vcproj", "{FE724EF7-3763-4E78-BDF5-BCBC075719FD}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_acl_cpp", "lib_acl_cpp\lib_acl_cpp_vc2003.vcproj", "{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "singleton", "lib_acl_cpp\samples\singleton\singleton.vcproj", "{128791D9-6787-471C-9A0C-0DCAE53F4911}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "session", "lib_acl_cpp\samples\session\session.vcproj", "{90D013A0-4813-4BAB-8155-D175631A695E}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "beanstalk", "lib_acl_cpp\samples\beanstalk\beanstalk.vcproj", "{1509DA30-29B0-4B73-921A-BBBD9E5608BE}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "url_coder", "lib_acl_cpp\samples\url_coder\url_coder.vcproj", "{143ED97E-1EC6-4821-A5FA-A6728B69273E}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fs_benchmark", "lib_acl_cpp\samples\fs_benchmark\fs_benchmark.vcproj", "{02B1C8C9-0B52-491D-89D3-8B37CE3A4FE9}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "memcache_pool", "lib_acl_cpp\samples\memcache_pool\memcache_pool.vcproj", "{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug
DebugDll = DebugDll
Release = Release
Releasedll = Releasedll
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{41FA5224-3315-4CDA-9C44-19085049F179}.Debug.ActiveCfg = Debug|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Debug.Build.0 = Debug|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.DebugDll.ActiveCfg = DebugDll|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.DebugDll.Build.0 = DebugDll|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Release.ActiveCfg = Release|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Release.Build.0 = Release|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Releasedll.ActiveCfg = Releasedll|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Releasedll.Build.0 = Releasedll|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Debug.ActiveCfg = Debug|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Debug.Build.0 = Debug|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.DebugDll.ActiveCfg = DebugDll|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.DebugDll.Build.0 = DebugDll|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Release.ActiveCfg = Release|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Release.Build.0 = Release|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Releasedll.ActiveCfg = Releasedll|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Releasedll.Build.0 = Releasedll|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Debug.ActiveCfg = Debug|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Debug.Build.0 = Debug|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.DebugDll.ActiveCfg = DebugDll|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.DebugDll.Build.0 = DebugDll|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Release.ActiveCfg = Release|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Release.Build.0 = Release|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Releasedll.ActiveCfg = Releasedll|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Releasedll.Build.0 = Releasedll|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Debug.ActiveCfg = Debug|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Debug.Build.0 = Debug|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.DebugDll.ActiveCfg = DebugDll|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.DebugDll.Build.0 = DebugDll|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Release.ActiveCfg = Release|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Release.Build.0 = Release|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Releasedll.ActiveCfg = Releasedll|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Releasedll.Build.0 = Releasedll|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Debug.ActiveCfg = Debug|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Debug.Build.0 = Debug|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.DebugDll.ActiveCfg = DebugDll|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.DebugDll.Build.0 = DebugDll|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Release.ActiveCfg = Release|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Release.Build.0 = Release|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Releasedll.ActiveCfg = Releasedll|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Releasedll.Build.0 = Releasedll|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Debug.ActiveCfg = Debug|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Debug.Build.0 = Debug|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.DebugDll.ActiveCfg = DebugDll|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.DebugDll.Build.0 = DebugDll|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Release.ActiveCfg = Release|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Release.Build.0 = Release|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Releasedll.ActiveCfg = Releasedll|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Releasedll.Build.0 = Releasedll|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Debug.ActiveCfg = Debug|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Debug.Build.0 = Debug|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.DebugDll.ActiveCfg = DebugDll|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.DebugDll.Build.0 = DebugDll|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Release.ActiveCfg = Release|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Release.Build.0 = Release|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Releasedll.ActiveCfg = Releasedll|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Releasedll.Build.0 = Releasedll|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Debug.ActiveCfg = Debug|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Debug.Build.0 = Debug|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.DebugDll.ActiveCfg = DebugDll|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.DebugDll.Build.0 = DebugDll|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Release.ActiveCfg = Release|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Release.Build.0 = Release|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Releasedll.ActiveCfg = Releasedll|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Releasedll.Build.0 = Releasedll|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Debug.ActiveCfg = Debug|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Debug.Build.0 = Debug|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.DebugDll.ActiveCfg = DebugDll|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.DebugDll.Build.0 = DebugDll|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Release.ActiveCfg = Release|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Release.Build.0 = Release|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Releasedll.ActiveCfg = Releasedll|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Releasedll.Build.0 = Releasedll|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Debug.ActiveCfg = Debug|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Debug.Build.0 = Debug|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.DebugDll.ActiveCfg = DebugDll|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.DebugDll.Build.0 = DebugDll|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Release.ActiveCfg = Release|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Release.Build.0 = Release|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Releasedll.ActiveCfg = Releasedll|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Releasedll.Build.0 = Releasedll|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Debug.ActiveCfg = Debug|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Debug.Build.0 = Debug|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.DebugDll.ActiveCfg = DebugDll|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.DebugDll.Build.0 = DebugDll|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Release.ActiveCfg = Release|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Release.Build.0 = Release|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Releasedll.ActiveCfg = Releasedll|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Releasedll.Build.0 = Releasedll|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Debug.ActiveCfg = Debug|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Debug.Build.0 = Debug|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.DebugDll.ActiveCfg = DebugDll|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.DebugDll.Build.0 = DebugDll|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Release.ActiveCfg = Release|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Release.Build.0 = Release|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Releasedll.ActiveCfg = Releasedll|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Releasedll.Build.0 = Releasedll|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Debug.ActiveCfg = Debug|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Debug.Build.0 = Debug|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.DebugDll.ActiveCfg = DebugDll|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.DebugDll.Build.0 = DebugDll|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Release.ActiveCfg = Release|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Release.Build.0 = Release|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Releasedll.ActiveCfg = Releasedll|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Releasedll.Build.0 = Releasedll|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Debug.ActiveCfg = Debug|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Debug.Build.0 = Debug|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.DebugDll.ActiveCfg = DebugDll|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.DebugDll.Build.0 = DebugDll|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Release.ActiveCfg = Release|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Release.Build.0 = Release|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Releasedll.ActiveCfg = Releasedll|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Releasedll.Build.0 = Releasedll|Win32
{7DA0AC89-62E4-4D02-9BC5-C32E6846E168}.Debug.ActiveCfg = Debug|Win32
{7DA0AC89-62E4-4D02-9BC5-C32E6846E168}.Debug.Build.0 = Debug|Win32
{7DA0AC89-62E4-4D02-9BC5-C32E6846E168}.DebugDll.ActiveCfg = DebugDll|Win32
{7DA0AC89-62E4-4D02-9BC5-C32E6846E168}.DebugDll.Build.0 = DebugDll|Win32
{7DA0AC89-62E4-4D02-9BC5-C32E6846E168}.Release.ActiveCfg = Release|Win32
{7DA0AC89-62E4-4D02-9BC5-C32E6846E168}.Release.Build.0 = Release|Win32
{7DA0AC89-62E4-4D02-9BC5-C32E6846E168}.Releasedll.ActiveCfg = ReleaseDll|Win32
{7DA0AC89-62E4-4D02-9BC5-C32E6846E168}.Releasedll.Build.0 = ReleaseDll|Win32
{82B65DCB-D910-4B92-BFDF-15896A575861}.Debug.ActiveCfg = Debug|Win32
{82B65DCB-D910-4B92-BFDF-15896A575861}.Debug.Build.0 = Debug|Win32
{82B65DCB-D910-4B92-BFDF-15896A575861}.DebugDll.ActiveCfg = DebugDll|Win32
{82B65DCB-D910-4B92-BFDF-15896A575861}.DebugDll.Build.0 = DebugDll|Win32
{82B65DCB-D910-4B92-BFDF-15896A575861}.Release.ActiveCfg = Release|Win32
{82B65DCB-D910-4B92-BFDF-15896A575861}.Release.Build.0 = Release|Win32
{82B65DCB-D910-4B92-BFDF-15896A575861}.Releasedll.ActiveCfg = ReleaseDll|Win32
{82B65DCB-D910-4B92-BFDF-15896A575861}.Releasedll.Build.0 = ReleaseDll|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Debug.ActiveCfg = Debug|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Debug.Build.0 = Debug|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.DebugDll.ActiveCfg = DebugDll|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.DebugDll.Build.0 = DebugDll|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Release.ActiveCfg = Release|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Release.Build.0 = Release|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Releasedll.ActiveCfg = ReleaseDll|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Releasedll.Build.0 = ReleaseDll|Win32
{B14C93A6-DABE-48F9-A78C-C94049B69984}.Debug.ActiveCfg = Debug|Win32
{B14C93A6-DABE-48F9-A78C-C94049B69984}.Debug.Build.0 = Debug|Win32
{B14C93A6-DABE-48F9-A78C-C94049B69984}.DebugDll.ActiveCfg = DebugDll|Win32
{B14C93A6-DABE-48F9-A78C-C94049B69984}.DebugDll.Build.0 = DebugDll|Win32
{B14C93A6-DABE-48F9-A78C-C94049B69984}.Release.ActiveCfg = Release|Win32
{B14C93A6-DABE-48F9-A78C-C94049B69984}.Release.Build.0 = Release|Win32
{B14C93A6-DABE-48F9-A78C-C94049B69984}.Releasedll.ActiveCfg = ReleaseDll|Win32
{B14C93A6-DABE-48F9-A78C-C94049B69984}.Releasedll.Build.0 = ReleaseDll|Win32
{8CF882F1-3D3C-4233-BCA6-7F90E49B80BE}.Debug.ActiveCfg = Debug|Win32
{8CF882F1-3D3C-4233-BCA6-7F90E49B80BE}.Debug.Build.0 = Debug|Win32
{8CF882F1-3D3C-4233-BCA6-7F90E49B80BE}.DebugDll.ActiveCfg = DebugDll|Win32
{8CF882F1-3D3C-4233-BCA6-7F90E49B80BE}.DebugDll.Build.0 = DebugDll|Win32
{8CF882F1-3D3C-4233-BCA6-7F90E49B80BE}.Release.ActiveCfg = Release|Win32
{8CF882F1-3D3C-4233-BCA6-7F90E49B80BE}.Release.Build.0 = Release|Win32
{8CF882F1-3D3C-4233-BCA6-7F90E49B80BE}.Releasedll.ActiveCfg = ReleaseDll|Win32
{8CF882F1-3D3C-4233-BCA6-7F90E49B80BE}.Releasedll.Build.0 = ReleaseDll|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Debug.ActiveCfg = Debug|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Debug.Build.0 = Debug|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.DebugDll.ActiveCfg = DebugDll|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.DebugDll.Build.0 = DebugDll|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Release.ActiveCfg = Release|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Release.Build.0 = Release|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Releasedll.ActiveCfg = ReleaseDll|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Releasedll.Build.0 = ReleaseDll|Win32
{20013703-57CC-4821-BF24-129A12490435}.Debug.ActiveCfg = Debug|Win32
{20013703-57CC-4821-BF24-129A12490435}.Debug.Build.0 = Debug|Win32
{20013703-57CC-4821-BF24-129A12490435}.DebugDll.ActiveCfg = DebugDll|Win32
{20013703-57CC-4821-BF24-129A12490435}.DebugDll.Build.0 = DebugDll|Win32
{20013703-57CC-4821-BF24-129A12490435}.Release.ActiveCfg = Release|Win32
{20013703-57CC-4821-BF24-129A12490435}.Release.Build.0 = Release|Win32
{20013703-57CC-4821-BF24-129A12490435}.Releasedll.ActiveCfg = ReleaseDll|Win32
{20013703-57CC-4821-BF24-129A12490435}.Releasedll.Build.0 = ReleaseDll|Win32
{82C00ED0-AEF5-4E5B-9581-1EA052CBEA01}.Debug.ActiveCfg = Debug|Win32
{82C00ED0-AEF5-4E5B-9581-1EA052CBEA01}.Debug.Build.0 = Debug|Win32
{82C00ED0-AEF5-4E5B-9581-1EA052CBEA01}.DebugDll.ActiveCfg = DebugDll|Win32
{82C00ED0-AEF5-4E5B-9581-1EA052CBEA01}.DebugDll.Build.0 = DebugDll|Win32
{82C00ED0-AEF5-4E5B-9581-1EA052CBEA01}.Release.ActiveCfg = Release|Win32
{82C00ED0-AEF5-4E5B-9581-1EA052CBEA01}.Release.Build.0 = Release|Win32
{82C00ED0-AEF5-4E5B-9581-1EA052CBEA01}.Releasedll.ActiveCfg = ReleaseDll|Win32
{82C00ED0-AEF5-4E5B-9581-1EA052CBEA01}.Releasedll.Build.0 = ReleaseDll|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Debug.ActiveCfg = Debug|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Debug.Build.0 = Debug|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.DebugDll.ActiveCfg = DebugDll|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.DebugDll.Build.0 = DebugDll|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Release.ActiveCfg = Release|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Release.Build.0 = Release|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Releasedll.ActiveCfg = ReleaseDll|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Releasedll.Build.0 = ReleaseDll|Win32
{F6292B2C-2C57-40E1-805F-86D9FB1C3251}.Debug.ActiveCfg = Debug|Win32
{F6292B2C-2C57-40E1-805F-86D9FB1C3251}.Debug.Build.0 = Debug|Win32
{F6292B2C-2C57-40E1-805F-86D9FB1C3251}.DebugDll.ActiveCfg = DebugDll|Win32
{F6292B2C-2C57-40E1-805F-86D9FB1C3251}.DebugDll.Build.0 = DebugDll|Win32
{F6292B2C-2C57-40E1-805F-86D9FB1C3251}.Release.ActiveCfg = Release|Win32
{F6292B2C-2C57-40E1-805F-86D9FB1C3251}.Release.Build.0 = Release|Win32
{F6292B2C-2C57-40E1-805F-86D9FB1C3251}.Releasedll.ActiveCfg = ReleaseDll|Win32
{F6292B2C-2C57-40E1-805F-86D9FB1C3251}.Releasedll.Build.0 = ReleaseDll|Win32
{A804ECF6-59F0-4CCF-8D71-6E44CBCA2796}.Debug.ActiveCfg = Debug|Win32
{A804ECF6-59F0-4CCF-8D71-6E44CBCA2796}.Debug.Build.0 = Debug|Win32
{A804ECF6-59F0-4CCF-8D71-6E44CBCA2796}.DebugDll.ActiveCfg = DebugDll|Win32
{A804ECF6-59F0-4CCF-8D71-6E44CBCA2796}.DebugDll.Build.0 = DebugDll|Win32
{A804ECF6-59F0-4CCF-8D71-6E44CBCA2796}.Release.ActiveCfg = Release|Win32
{A804ECF6-59F0-4CCF-8D71-6E44CBCA2796}.Release.Build.0 = Release|Win32
{A804ECF6-59F0-4CCF-8D71-6E44CBCA2796}.Releasedll.ActiveCfg = ReleaseDll|Win32
{A804ECF6-59F0-4CCF-8D71-6E44CBCA2796}.Releasedll.Build.0 = ReleaseDll|Win32
{FA0EEABF-CC21-4A99-89AA-D0379175E55A}.Debug.ActiveCfg = Debug|Win32
{FA0EEABF-CC21-4A99-89AA-D0379175E55A}.Debug.Build.0 = Debug|Win32
{FA0EEABF-CC21-4A99-89AA-D0379175E55A}.DebugDll.ActiveCfg = DebugDll|Win32
{FA0EEABF-CC21-4A99-89AA-D0379175E55A}.DebugDll.Build.0 = DebugDll|Win32
{FA0EEABF-CC21-4A99-89AA-D0379175E55A}.Release.ActiveCfg = Release|Win32
{FA0EEABF-CC21-4A99-89AA-D0379175E55A}.Release.Build.0 = Release|Win32
{FA0EEABF-CC21-4A99-89AA-D0379175E55A}.Releasedll.ActiveCfg = ReleaseDll|Win32
{FA0EEABF-CC21-4A99-89AA-D0379175E55A}.Releasedll.Build.0 = ReleaseDll|Win32
{4B7C83E5-C34F-4C42-9A37-E5F33FBA2EA3}.Debug.ActiveCfg = Debug|Win32
{4B7C83E5-C34F-4C42-9A37-E5F33FBA2EA3}.Debug.Build.0 = Debug|Win32
{4B7C83E5-C34F-4C42-9A37-E5F33FBA2EA3}.DebugDll.ActiveCfg = DebugDll|Win32
{4B7C83E5-C34F-4C42-9A37-E5F33FBA2EA3}.DebugDll.Build.0 = DebugDll|Win32
{4B7C83E5-C34F-4C42-9A37-E5F33FBA2EA3}.Release.ActiveCfg = Release|Win32
{4B7C83E5-C34F-4C42-9A37-E5F33FBA2EA3}.Release.Build.0 = Release|Win32
{4B7C83E5-C34F-4C42-9A37-E5F33FBA2EA3}.Releasedll.ActiveCfg = ReleaseDll|Win32
{4B7C83E5-C34F-4C42-9A37-E5F33FBA2EA3}.Releasedll.Build.0 = ReleaseDll|Win32
{80F0213B-A053-4420-BAF9-4657AD8473DA}.Debug.ActiveCfg = Debug|Win32
{80F0213B-A053-4420-BAF9-4657AD8473DA}.Debug.Build.0 = Debug|Win32
{80F0213B-A053-4420-BAF9-4657AD8473DA}.DebugDll.ActiveCfg = DebugDll|Win32
{80F0213B-A053-4420-BAF9-4657AD8473DA}.DebugDll.Build.0 = DebugDll|Win32
{80F0213B-A053-4420-BAF9-4657AD8473DA}.Release.ActiveCfg = Release|Win32
{80F0213B-A053-4420-BAF9-4657AD8473DA}.Release.Build.0 = Release|Win32
{80F0213B-A053-4420-BAF9-4657AD8473DA}.Releasedll.ActiveCfg = ReleaseDll|Win32
{80F0213B-A053-4420-BAF9-4657AD8473DA}.Releasedll.Build.0 = ReleaseDll|Win32
{B7EE43F4-7541-48A7-A066-DA60A55E67ED}.Debug.ActiveCfg = Debug|Win32
{B7EE43F4-7541-48A7-A066-DA60A55E67ED}.Debug.Build.0 = Debug|Win32
{B7EE43F4-7541-48A7-A066-DA60A55E67ED}.DebugDll.ActiveCfg = DebugDll|Win32
{B7EE43F4-7541-48A7-A066-DA60A55E67ED}.DebugDll.Build.0 = DebugDll|Win32
{B7EE43F4-7541-48A7-A066-DA60A55E67ED}.Release.ActiveCfg = Release|Win32
{B7EE43F4-7541-48A7-A066-DA60A55E67ED}.Release.Build.0 = Release|Win32
{B7EE43F4-7541-48A7-A066-DA60A55E67ED}.Releasedll.ActiveCfg = ReleaseDll|Win32
{B7EE43F4-7541-48A7-A066-DA60A55E67ED}.Releasedll.Build.0 = ReleaseDll|Win32
{BC32C5A1-CDE1-4872-9CE8-5F3A65D39680}.Debug.ActiveCfg = Debug|Win32
{BC32C5A1-CDE1-4872-9CE8-5F3A65D39680}.Debug.Build.0 = Debug|Win32
{BC32C5A1-CDE1-4872-9CE8-5F3A65D39680}.DebugDll.ActiveCfg = DebugDll|Win32
{BC32C5A1-CDE1-4872-9CE8-5F3A65D39680}.DebugDll.Build.0 = DebugDll|Win32
{BC32C5A1-CDE1-4872-9CE8-5F3A65D39680}.Release.ActiveCfg = Release|Win32
{BC32C5A1-CDE1-4872-9CE8-5F3A65D39680}.Release.Build.0 = Release|Win32
{BC32C5A1-CDE1-4872-9CE8-5F3A65D39680}.Releasedll.ActiveCfg = ReleaseDll|Win32
{BC32C5A1-CDE1-4872-9CE8-5F3A65D39680}.Releasedll.Build.0 = ReleaseDll|Win32
{56199633-C345-4733-8292-A4F2D86AA847}.Debug.ActiveCfg = Debug|Win32
{56199633-C345-4733-8292-A4F2D86AA847}.Debug.Build.0 = Debug|Win32
{56199633-C345-4733-8292-A4F2D86AA847}.DebugDll.ActiveCfg = DebugDll|Win32
{56199633-C345-4733-8292-A4F2D86AA847}.DebugDll.Build.0 = DebugDll|Win32
{56199633-C345-4733-8292-A4F2D86AA847}.Release.ActiveCfg = Release|Win32
{56199633-C345-4733-8292-A4F2D86AA847}.Release.Build.0 = Release|Win32
{56199633-C345-4733-8292-A4F2D86AA847}.Releasedll.ActiveCfg = ReleaseDll|Win32
{56199633-C345-4733-8292-A4F2D86AA847}.Releasedll.Build.0 = ReleaseDll|Win32
{1B51538E-859A-46FE-B423-592D79DEEF63}.Debug.ActiveCfg = Debug|Win32
{1B51538E-859A-46FE-B423-592D79DEEF63}.Debug.Build.0 = Debug|Win32
{1B51538E-859A-46FE-B423-592D79DEEF63}.DebugDll.ActiveCfg = DebugDll|Win32
{1B51538E-859A-46FE-B423-592D79DEEF63}.DebugDll.Build.0 = DebugDll|Win32
{1B51538E-859A-46FE-B423-592D79DEEF63}.Release.ActiveCfg = Release|Win32
{1B51538E-859A-46FE-B423-592D79DEEF63}.Release.Build.0 = Release|Win32
{1B51538E-859A-46FE-B423-592D79DEEF63}.Releasedll.ActiveCfg = ReleaseDll|Win32
{1B51538E-859A-46FE-B423-592D79DEEF63}.Releasedll.Build.0 = ReleaseDll|Win32
{5A189A92-9AF4-49FC-ABF4-8220A26E46D0}.Debug.ActiveCfg = Debug|Win32
{5A189A92-9AF4-49FC-ABF4-8220A26E46D0}.Debug.Build.0 = Debug|Win32
{5A189A92-9AF4-49FC-ABF4-8220A26E46D0}.DebugDll.ActiveCfg = DebugDll|Win32
{5A189A92-9AF4-49FC-ABF4-8220A26E46D0}.DebugDll.Build.0 = DebugDll|Win32
{5A189A92-9AF4-49FC-ABF4-8220A26E46D0}.Release.ActiveCfg = Release|Win32
{5A189A92-9AF4-49FC-ABF4-8220A26E46D0}.Release.Build.0 = Release|Win32
{5A189A92-9AF4-49FC-ABF4-8220A26E46D0}.Releasedll.ActiveCfg = ReleaseDll|Win32
{5A189A92-9AF4-49FC-ABF4-8220A26E46D0}.Releasedll.Build.0 = ReleaseDll|Win32
{A1BA7D3E-5434-4F98-87F2-78673B3EEEF1}.Debug.ActiveCfg = Debug|Win32
{A1BA7D3E-5434-4F98-87F2-78673B3EEEF1}.Debug.Build.0 = Debug|Win32
{A1BA7D3E-5434-4F98-87F2-78673B3EEEF1}.DebugDll.ActiveCfg = DebugDll|Win32
{A1BA7D3E-5434-4F98-87F2-78673B3EEEF1}.DebugDll.Build.0 = DebugDll|Win32
{A1BA7D3E-5434-4F98-87F2-78673B3EEEF1}.Release.ActiveCfg = Release|Win32
{A1BA7D3E-5434-4F98-87F2-78673B3EEEF1}.Release.Build.0 = Release|Win32
{A1BA7D3E-5434-4F98-87F2-78673B3EEEF1}.Releasedll.ActiveCfg = ReleaseDll|Win32
{A1BA7D3E-5434-4F98-87F2-78673B3EEEF1}.Releasedll.Build.0 = ReleaseDll|Win32
{864A7341-756C-4BF9-A16F-059FDD972D79}.Debug.ActiveCfg = Debug|Win32
{864A7341-756C-4BF9-A16F-059FDD972D79}.Debug.Build.0 = Debug|Win32
{864A7341-756C-4BF9-A16F-059FDD972D79}.DebugDll.ActiveCfg = DebugDll|Win32
{864A7341-756C-4BF9-A16F-059FDD972D79}.DebugDll.Build.0 = DebugDll|Win32
{864A7341-756C-4BF9-A16F-059FDD972D79}.Release.ActiveCfg = Release|Win32
{864A7341-756C-4BF9-A16F-059FDD972D79}.Release.Build.0 = Release|Win32
{864A7341-756C-4BF9-A16F-059FDD972D79}.Releasedll.ActiveCfg = ReleaseDll|Win32
{864A7341-756C-4BF9-A16F-059FDD972D79}.Releasedll.Build.0 = ReleaseDll|Win32
{A28B19ED-291C-47C8-BDD5-10BB038C371E}.Debug.ActiveCfg = Debug|Win32
{A28B19ED-291C-47C8-BDD5-10BB038C371E}.Debug.Build.0 = Debug|Win32
{A28B19ED-291C-47C8-BDD5-10BB038C371E}.DebugDll.ActiveCfg = DebugDll|Win32
{A28B19ED-291C-47C8-BDD5-10BB038C371E}.DebugDll.Build.0 = DebugDll|Win32
{A28B19ED-291C-47C8-BDD5-10BB038C371E}.Release.ActiveCfg = Release|Win32
{A28B19ED-291C-47C8-BDD5-10BB038C371E}.Release.Build.0 = Release|Win32
{A28B19ED-291C-47C8-BDD5-10BB038C371E}.Releasedll.ActiveCfg = ReleaseDll|Win32
{A28B19ED-291C-47C8-BDD5-10BB038C371E}.Releasedll.Build.0 = ReleaseDll|Win32
{349F7822-A752-42F0-BB13-4A28497D68DF}.Debug.ActiveCfg = Debug|Win32
{349F7822-A752-42F0-BB13-4A28497D68DF}.Debug.Build.0 = Debug|Win32
{349F7822-A752-42F0-BB13-4A28497D68DF}.DebugDll.ActiveCfg = DebugDll|Win32
{349F7822-A752-42F0-BB13-4A28497D68DF}.DebugDll.Build.0 = DebugDll|Win32
{349F7822-A752-42F0-BB13-4A28497D68DF}.Release.ActiveCfg = Release|Win32
{349F7822-A752-42F0-BB13-4A28497D68DF}.Release.Build.0 = Release|Win32
{349F7822-A752-42F0-BB13-4A28497D68DF}.Releasedll.ActiveCfg = ReleaseDll|Win32
{349F7822-A752-42F0-BB13-4A28497D68DF}.Releasedll.Build.0 = ReleaseDll|Win32
{F37E8828-252D-4F3E-A5B6-E3770750042F}.Debug.ActiveCfg = Debug|Win32
{F37E8828-252D-4F3E-A5B6-E3770750042F}.Debug.Build.0 = Debug|Win32
{F37E8828-252D-4F3E-A5B6-E3770750042F}.DebugDll.ActiveCfg = Debug|Win32
{F37E8828-252D-4F3E-A5B6-E3770750042F}.DebugDll.Build.0 = Debug|Win32
{F37E8828-252D-4F3E-A5B6-E3770750042F}.Release.ActiveCfg = Release|Win32
{F37E8828-252D-4F3E-A5B6-E3770750042F}.Release.Build.0 = Release|Win32
{F37E8828-252D-4F3E-A5B6-E3770750042F}.Releasedll.ActiveCfg = Release|Win32
{F37E8828-252D-4F3E-A5B6-E3770750042F}.Releasedll.Build.0 = Release|Win32
{C8CED6EB-DCC8-4CEE-921F-3190C879B116}.Debug.ActiveCfg = Debug|Win32
{C8CED6EB-DCC8-4CEE-921F-3190C879B116}.Debug.Build.0 = Debug|Win32
{C8CED6EB-DCC8-4CEE-921F-3190C879B116}.DebugDll.ActiveCfg = DebugDll|Win32
{C8CED6EB-DCC8-4CEE-921F-3190C879B116}.DebugDll.Build.0 = DebugDll|Win32
{C8CED6EB-DCC8-4CEE-921F-3190C879B116}.Release.ActiveCfg = Release|Win32
{C8CED6EB-DCC8-4CEE-921F-3190C879B116}.Release.Build.0 = Release|Win32
{C8CED6EB-DCC8-4CEE-921F-3190C879B116}.Releasedll.ActiveCfg = ReleaseDll|Win32
{C8CED6EB-DCC8-4CEE-921F-3190C879B116}.Releasedll.Build.0 = ReleaseDll|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Debug.ActiveCfg = Debug|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Debug.Build.0 = Debug|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.DebugDll.ActiveCfg = DebugDll|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.DebugDll.Build.0 = DebugDll|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Release.ActiveCfg = Release|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Release.Build.0 = Release|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Releasedll.ActiveCfg = ReleaseDll|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Releasedll.Build.0 = ReleaseDll|Win32
{8B7A7746-C678-4205-8EA7-492A097F524B}.Debug.ActiveCfg = Debug|Win32
{8B7A7746-C678-4205-8EA7-492A097F524B}.Debug.Build.0 = Debug|Win32
{8B7A7746-C678-4205-8EA7-492A097F524B}.DebugDll.ActiveCfg = DebugDll|Win32
{8B7A7746-C678-4205-8EA7-492A097F524B}.DebugDll.Build.0 = DebugDll|Win32
{8B7A7746-C678-4205-8EA7-492A097F524B}.Release.ActiveCfg = Release|Win32
{8B7A7746-C678-4205-8EA7-492A097F524B}.Release.Build.0 = Release|Win32
{8B7A7746-C678-4205-8EA7-492A097F524B}.Releasedll.ActiveCfg = ReleaseDll|Win32
{8B7A7746-C678-4205-8EA7-492A097F524B}.Releasedll.Build.0 = ReleaseDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Debug.ActiveCfg = Debug|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Debug.Build.0 = Debug|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.DebugDll.ActiveCfg = DebugDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.DebugDll.Build.0 = DebugDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Release.ActiveCfg = Release|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Release.Build.0 = Release|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Releasedll.ActiveCfg = ReleaseDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Releasedll.Build.0 = ReleaseDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Debug.ActiveCfg = Debug|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Debug.Build.0 = Debug|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.DebugDll.ActiveCfg = DebugDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.DebugDll.Build.0 = DebugDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Release.ActiveCfg = Release|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Release.Build.0 = Release|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Releasedll.ActiveCfg = ReleaseDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Releasedll.Build.0 = ReleaseDll|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Debug.ActiveCfg = Debug|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Debug.Build.0 = Debug|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.DebugDll.ActiveCfg = DebugDll|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.DebugDll.Build.0 = DebugDll|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Release.ActiveCfg = Release|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Release.Build.0 = Release|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Releasedll.ActiveCfg = Releasedll|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Releasedll.Build.0 = Releasedll|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Debug.ActiveCfg = Debug|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Debug.Build.0 = Debug|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.DebugDll.ActiveCfg = DebugDll|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.DebugDll.Build.0 = DebugDll|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Release.ActiveCfg = Release|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Release.Build.0 = Release|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Releasedll.ActiveCfg = ReleaseDll|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Releasedll.Build.0 = ReleaseDll|Win32
{90D013A0-4813-4BAB-8155-D175631A695E}.Debug.ActiveCfg = Debug|Win32
{90D013A0-4813-4BAB-8155-D175631A695E}.Debug.Build.0 = Debug|Win32
{90D013A0-4813-4BAB-8155-D175631A695E}.DebugDll.ActiveCfg = DebugDll|Win32
{90D013A0-4813-4BAB-8155-D175631A695E}.DebugDll.Build.0 = DebugDll|Win32
{90D013A0-4813-4BAB-8155-D175631A695E}.Release.ActiveCfg = Release|Win32
{90D013A0-4813-4BAB-8155-D175631A695E}.Release.Build.0 = Release|Win32
{90D013A0-4813-4BAB-8155-D175631A695E}.Releasedll.ActiveCfg = ReleaseDll|Win32
{90D013A0-4813-4BAB-8155-D175631A695E}.Releasedll.Build.0 = ReleaseDll|Win32
{1509DA30-29B0-4B73-921A-BBBD9E5608BE}.Debug.ActiveCfg = Debug|Win32
{1509DA30-29B0-4B73-921A-BBBD9E5608BE}.Debug.Build.0 = Debug|Win32
{1509DA30-29B0-4B73-921A-BBBD9E5608BE}.DebugDll.ActiveCfg = DebugDll|Win32
{1509DA30-29B0-4B73-921A-BBBD9E5608BE}.DebugDll.Build.0 = DebugDll|Win32
{1509DA30-29B0-4B73-921A-BBBD9E5608BE}.Release.ActiveCfg = Release|Win32
{1509DA30-29B0-4B73-921A-BBBD9E5608BE}.Release.Build.0 = Release|Win32
{1509DA30-29B0-4B73-921A-BBBD9E5608BE}.Releasedll.ActiveCfg = ReleaseDll|Win32
{1509DA30-29B0-4B73-921A-BBBD9E5608BE}.Releasedll.Build.0 = ReleaseDll|Win32
{143ED97E-1EC6-4821-A5FA-A6728B69273E}.Debug.ActiveCfg = Debug|Win32
{143ED97E-1EC6-4821-A5FA-A6728B69273E}.Debug.Build.0 = Debug|Win32
{143ED97E-1EC6-4821-A5FA-A6728B69273E}.DebugDll.ActiveCfg = DebugDll|Win32
{143ED97E-1EC6-4821-A5FA-A6728B69273E}.DebugDll.Build.0 = DebugDll|Win32
{143ED97E-1EC6-4821-A5FA-A6728B69273E}.Release.ActiveCfg = Release|Win32
{143ED97E-1EC6-4821-A5FA-A6728B69273E}.Release.Build.0 = Release|Win32
{143ED97E-1EC6-4821-A5FA-A6728B69273E}.Releasedll.ActiveCfg = ReleaseDll|Win32
{143ED97E-1EC6-4821-A5FA-A6728B69273E}.Releasedll.Build.0 = ReleaseDll|Win32
{02B1C8C9-0B52-491D-89D3-8B37CE3A4FE9}.Debug.ActiveCfg = Debug|Win32
{02B1C8C9-0B52-491D-89D3-8B37CE3A4FE9}.Debug.Build.0 = Debug|Win32
{02B1C8C9-0B52-491D-89D3-8B37CE3A4FE9}.DebugDll.ActiveCfg = DebugDll|Win32
{02B1C8C9-0B52-491D-89D3-8B37CE3A4FE9}.DebugDll.Build.0 = DebugDll|Win32
{02B1C8C9-0B52-491D-89D3-8B37CE3A4FE9}.Release.ActiveCfg = Release|Win32
{02B1C8C9-0B52-491D-89D3-8B37CE3A4FE9}.Release.Build.0 = Release|Win32
{02B1C8C9-0B52-491D-89D3-8B37CE3A4FE9}.Releasedll.ActiveCfg = ReleaseDll|Win32
{02B1C8C9-0B52-491D-89D3-8B37CE3A4FE9}.Releasedll.Build.0 = ReleaseDll|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.Debug.ActiveCfg = Debug|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.Debug.Build.0 = Debug|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.DebugDll.ActiveCfg = DebugDll|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.DebugDll.Build.0 = DebugDll|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.Release.ActiveCfg = Release|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.Release.Build.0 = Release|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.Releasedll.ActiveCfg = ReleaseDll|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.Releasedll.Build.0 = ReleaseDll|Win32
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection
EndGlobal

416
acl_cpp_vc2010.sln Normal file
View File

@ -0,0 +1,416 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "socket_stream", "lib_acl_cpp\samples\socket_stream\socket_stream.vcxproj", "{41FA5224-3315-4CDA-9C44-19085049F179}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime", "lib_acl_cpp\samples\mime\mime.vcxproj", "{52AA7352-CE48-4F60-B92D-1EB16A79FE54}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "lib_acl_cpp\samples\xml\xml.vcxproj", "{2DABFAD1-114B-4F96-9185-DC0C56A3662D}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "string", "lib_acl_cpp\samples\string\string.vcxproj", "{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fstream", "lib_acl_cpp\samples\fstream\fstream.vcxproj", "{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_base64", "lib_acl_cpp\samples\mime_base64\mime_base64.vcxproj", "{19CB30E5-2672-4A8B-96FB-9C42970CCF69}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_qp", "lib_acl_cpp\samples\mime_qp\mime_qp.vcxproj", "{5DC79C83-9DE8-46B3-A172-8A4E3371878B}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flock", "lib_acl_cpp\samples\flock\flock.vcxproj", "{5F4063AD-B591-4C64-ADEA-609968A83550}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rfc2047", "lib_acl_cpp\samples\rfc2047\rfc2047.vcxproj", "{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aio_server", "lib_acl_cpp\samples\aio_server\aio_server.vcxproj", "{225D0BFA-64D7-4F8F-951E-36A494CF6178}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aio_client", "lib_acl_cpp\samples\aio_client\aio_client.vcxproj", "{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winaio", "lib_acl_cpp\samples\winaio\winaio.vcxproj", "{ADE6F714-BD52-432D-AB86-62FA59AB6746}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aio_ipc", "lib_acl_cpp\samples\aio_ipc\aio_ipc.vcxproj", "{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aio_dns", "lib_acl_cpp\samples\aio_dns\aio_dns.vcxproj", "{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HttpClient", "lib_acl_cpp\samples\HttpClient\HttpClient.vcxproj", "{C0A7DB86-EF13-4A3E-9F34-8950521C9675}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "http_client", "lib_acl_cpp\samples\http_client\http_client.vcxproj", "{467619C7-C100-47B9-9A3B-7246A542EDC9}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "final_class", "lib_acl_cpp\samples\final_class\final_class.vcxproj", "{840C2263-DF87-4FD2-8964-EF81B74695FE}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "win_dbservice", "lib_acl_cpp\samples\win_dbservice\win_dbservice.vcxproj", "{DC7E75E5-FE42-4529-9D9A-19D240B8727B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "md5", "lib_acl_cpp\samples\md5\md5.vcxproj", "{B8029C89-9870-4EE4-ADD0-E7852E0D1810}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_acl", "lib_acl\lib_acl_vc2010.vcxproj", "{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_protocol", "lib_protocol\lib_protocol_vc2010.vcxproj", "{FE724EF7-3763-4E78-BDF5-BCBC075719FD}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_acl_cpp", "lib_acl_cpp\lib_acl_cpp_vc2010.vcxproj", "{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "singleton", "lib_acl_cpp\samples\singleton\singleton.vcxproj", "{128791D9-6787-471C-9A0C-0DCAE53F4911}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_rpc", "lib_rpc\lib_rpc.vcxproj", "{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "protobuf_fstream", "lib_rpc\samples\fstream\protobuf_fstream.vcxproj", "{E8A3F4F4-0217-4775-9AC4-BD10E12298D4}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "http_rpc_client", "lib_rpc\samples\http_rpc_client\http_rpc_client.vcxproj", "{48ACE73F-73AD-43CC-99FB-35DFF71B8E9E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "http_rpc_server", "lib_rpc\samples\http_rpc_server\http_rpc_server.vcxproj", "{8D69EA4C-C980-4168-85B6-BAC9CB99E0DC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
DebugDll|Win32 = DebugDll|Win32
Release|Win32 = Release|Win32
Releasedll|Win32 = Releasedll|Win32
Template|Win32 = Template|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{41FA5224-3315-4CDA-9C44-19085049F179}.Debug|Win32.ActiveCfg = Debug|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Debug|Win32.Build.0 = Debug|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.DebugDll|Win32.Build.0 = DebugDll|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Release|Win32.ActiveCfg = Release|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Release|Win32.Build.0 = Release|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Releasedll|Win32.Build.0 = Releasedll|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Template|Win32.ActiveCfg = Release|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Template|Win32.Build.0 = Release|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Debug|Win32.ActiveCfg = Debug|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Debug|Win32.Build.0 = Debug|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.DebugDll|Win32.Build.0 = DebugDll|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Release|Win32.ActiveCfg = Release|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Release|Win32.Build.0 = Release|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Releasedll|Win32.Build.0 = Releasedll|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Template|Win32.ActiveCfg = Release|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Template|Win32.Build.0 = Release|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Debug|Win32.ActiveCfg = Debug|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Debug|Win32.Build.0 = Debug|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.DebugDll|Win32.Build.0 = DebugDll|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Release|Win32.ActiveCfg = Release|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Release|Win32.Build.0 = Release|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Releasedll|Win32.Build.0 = Releasedll|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Template|Win32.ActiveCfg = Release|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Template|Win32.Build.0 = Release|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Debug|Win32.ActiveCfg = Debug|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Debug|Win32.Build.0 = Debug|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.DebugDll|Win32.Build.0 = DebugDll|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Release|Win32.ActiveCfg = Release|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Release|Win32.Build.0 = Release|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Releasedll|Win32.Build.0 = Releasedll|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Template|Win32.ActiveCfg = Release|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Template|Win32.Build.0 = Release|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Debug|Win32.ActiveCfg = Debug|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Debug|Win32.Build.0 = Debug|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.DebugDll|Win32.Build.0 = DebugDll|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Release|Win32.ActiveCfg = Release|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Release|Win32.Build.0 = Release|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Releasedll|Win32.Build.0 = Releasedll|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Template|Win32.ActiveCfg = Release|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Template|Win32.Build.0 = Release|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Debug|Win32.ActiveCfg = Debug|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Debug|Win32.Build.0 = Debug|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.DebugDll|Win32.Build.0 = DebugDll|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Release|Win32.ActiveCfg = Release|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Release|Win32.Build.0 = Release|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Releasedll|Win32.Build.0 = Releasedll|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Template|Win32.ActiveCfg = Release|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Template|Win32.Build.0 = Release|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Debug|Win32.ActiveCfg = Debug|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Debug|Win32.Build.0 = Debug|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.DebugDll|Win32.Build.0 = DebugDll|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Release|Win32.ActiveCfg = Release|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Release|Win32.Build.0 = Release|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Releasedll|Win32.Build.0 = Releasedll|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Template|Win32.ActiveCfg = Release|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Template|Win32.Build.0 = Release|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Debug|Win32.ActiveCfg = Debug|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Debug|Win32.Build.0 = Debug|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.DebugDll|Win32.Build.0 = DebugDll|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Release|Win32.ActiveCfg = Release|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Release|Win32.Build.0 = Release|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Releasedll|Win32.Build.0 = Releasedll|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Template|Win32.ActiveCfg = Release|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Template|Win32.Build.0 = Release|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Debug|Win32.ActiveCfg = Debug|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Debug|Win32.Build.0 = Debug|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.DebugDll|Win32.Build.0 = DebugDll|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Release|Win32.ActiveCfg = Release|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Release|Win32.Build.0 = Release|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Releasedll|Win32.Build.0 = Releasedll|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Template|Win32.ActiveCfg = Release|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Template|Win32.Build.0 = Release|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Debug|Win32.ActiveCfg = Debug|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Debug|Win32.Build.0 = Debug|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.DebugDll|Win32.Build.0 = DebugDll|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Release|Win32.ActiveCfg = Release|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Release|Win32.Build.0 = Release|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Releasedll|Win32.Build.0 = Releasedll|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Template|Win32.ActiveCfg = Release|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Template|Win32.Build.0 = Release|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Debug|Win32.ActiveCfg = Debug|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Debug|Win32.Build.0 = Debug|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.DebugDll|Win32.Build.0 = DebugDll|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Release|Win32.ActiveCfg = Release|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Release|Win32.Build.0 = Release|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Releasedll|Win32.Build.0 = Releasedll|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Template|Win32.ActiveCfg = Release|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Template|Win32.Build.0 = Release|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Debug|Win32.ActiveCfg = Debug|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Debug|Win32.Build.0 = Debug|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.DebugDll|Win32.Build.0 = DebugDll|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Release|Win32.ActiveCfg = Release|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Release|Win32.Build.0 = Release|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Releasedll|Win32.Build.0 = Releasedll|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Template|Win32.ActiveCfg = Template|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Template|Win32.Build.0 = Template|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Debug|Win32.ActiveCfg = Debug|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Debug|Win32.Build.0 = Debug|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.DebugDll|Win32.Build.0 = DebugDll|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Release|Win32.ActiveCfg = Release|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Release|Win32.Build.0 = Release|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Releasedll|Win32.Build.0 = Releasedll|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Template|Win32.ActiveCfg = Release|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Template|Win32.Build.0 = Release|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Debug|Win32.ActiveCfg = Debug|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Debug|Win32.Build.0 = Debug|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.DebugDll|Win32.Build.0 = DebugDll|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Release|Win32.ActiveCfg = Release|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Release|Win32.Build.0 = Release|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Releasedll|Win32.Build.0 = Releasedll|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Template|Win32.ActiveCfg = Release|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Template|Win32.Build.0 = Release|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Debug|Win32.ActiveCfg = Debug|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Debug|Win32.Build.0 = Debug|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.DebugDll|Win32.Build.0 = DebugDll|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Release|Win32.ActiveCfg = Release|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Release|Win32.Build.0 = Release|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Releasedll|Win32.Build.0 = Releasedll|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Template|Win32.ActiveCfg = Template|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Template|Win32.Build.0 = Template|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.Debug|Win32.ActiveCfg = Debug|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.Debug|Win32.Build.0 = Debug|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.DebugDll|Win32.ActiveCfg = Debugdll|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.DebugDll|Win32.Build.0 = Debugdll|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.Release|Win32.ActiveCfg = Release|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.Release|Win32.Build.0 = Release|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.Releasedll|Win32.Build.0 = Releasedll|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.Template|Win32.ActiveCfg = Release|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.Template|Win32.Build.0 = Release|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Debug|Win32.ActiveCfg = Debug|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Debug|Win32.Build.0 = Debug|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.DebugDll|Win32.Build.0 = DebugDll|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Release|Win32.ActiveCfg = Release|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Release|Win32.Build.0 = Release|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Releasedll|Win32.ActiveCfg = ReleaseDll|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Releasedll|Win32.Build.0 = ReleaseDll|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Template|Win32.ActiveCfg = Release|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Template|Win32.Build.0 = Release|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Debug|Win32.ActiveCfg = Debug|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Debug|Win32.Build.0 = Debug|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.DebugDll|Win32.Build.0 = DebugDll|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Release|Win32.ActiveCfg = Release|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Release|Win32.Build.0 = Release|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Releasedll|Win32.ActiveCfg = ReleaseDll|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Releasedll|Win32.Build.0 = ReleaseDll|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Template|Win32.ActiveCfg = Template|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Template|Win32.Build.0 = Template|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Debug|Win32.ActiveCfg = Debug|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Debug|Win32.Build.0 = Debug|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.DebugDll|Win32.Build.0 = DebugDll|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Release|Win32.ActiveCfg = Release|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Release|Win32.Build.0 = Release|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Releasedll|Win32.ActiveCfg = ReleaseDll|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Releasedll|Win32.Build.0 = ReleaseDll|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Template|Win32.ActiveCfg = Release|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Template|Win32.Build.0 = Release|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Debug|Win32.ActiveCfg = Debug|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Debug|Win32.Build.0 = Debug|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.DebugDll|Win32.Build.0 = DebugDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Release|Win32.ActiveCfg = Release|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Release|Win32.Build.0 = Release|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Releasedll|Win32.ActiveCfg = ReleaseDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Releasedll|Win32.Build.0 = ReleaseDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Template|Win32.ActiveCfg = Release|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Template|Win32.Build.0 = Release|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Debug|Win32.ActiveCfg = Debug|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Debug|Win32.Build.0 = Debug|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.DebugDll|Win32.Build.0 = DebugDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Release|Win32.ActiveCfg = Release|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Release|Win32.Build.0 = Release|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Releasedll|Win32.ActiveCfg = ReleaseDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Releasedll|Win32.Build.0 = ReleaseDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Template|Win32.ActiveCfg = Release|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Template|Win32.Build.0 = Release|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Debug|Win32.ActiveCfg = Debug|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Debug|Win32.Build.0 = Debug|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.DebugDll|Win32.Build.0 = DebugDll|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Release|Win32.ActiveCfg = Release|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Release|Win32.Build.0 = Release|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Releasedll|Win32.Build.0 = Releasedll|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Template|Win32.ActiveCfg = Release|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Template|Win32.Build.0 = Release|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Debug|Win32.ActiveCfg = Debug|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Debug|Win32.Build.0 = Debug|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.DebugDll|Win32.Build.0 = DebugDll|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Release|Win32.ActiveCfg = Release|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Release|Win32.Build.0 = Release|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Releasedll|Win32.ActiveCfg = ReleaseDll|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Releasedll|Win32.Build.0 = ReleaseDll|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Template|Win32.ActiveCfg = Release|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Template|Win32.Build.0 = Release|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.Debug|Win32.ActiveCfg = Debug|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.Debug|Win32.Build.0 = Debug|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.DebugDll|Win32.ActiveCfg = Debug|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.DebugDll|Win32.Build.0 = Debug|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.Release|Win32.ActiveCfg = Release|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.Release|Win32.Build.0 = Release|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.Releasedll|Win32.ActiveCfg = Release|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.Releasedll|Win32.Build.0 = Release|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.Template|Win32.ActiveCfg = Release|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.Template|Win32.Build.0 = Release|Win32
{E8A3F4F4-0217-4775-9AC4-BD10E12298D4}.Debug|Win32.ActiveCfg = Debug|Win32
{E8A3F4F4-0217-4775-9AC4-BD10E12298D4}.Debug|Win32.Build.0 = Debug|Win32
{E8A3F4F4-0217-4775-9AC4-BD10E12298D4}.DebugDll|Win32.ActiveCfg = Debug|Win32
{E8A3F4F4-0217-4775-9AC4-BD10E12298D4}.DebugDll|Win32.Build.0 = Debug|Win32
{E8A3F4F4-0217-4775-9AC4-BD10E12298D4}.Release|Win32.ActiveCfg = Release|Win32
{E8A3F4F4-0217-4775-9AC4-BD10E12298D4}.Release|Win32.Build.0 = Release|Win32
{E8A3F4F4-0217-4775-9AC4-BD10E12298D4}.Releasedll|Win32.ActiveCfg = Release|Win32
{E8A3F4F4-0217-4775-9AC4-BD10E12298D4}.Releasedll|Win32.Build.0 = Release|Win32
{E8A3F4F4-0217-4775-9AC4-BD10E12298D4}.Template|Win32.ActiveCfg = Release|Win32
{E8A3F4F4-0217-4775-9AC4-BD10E12298D4}.Template|Win32.Build.0 = Release|Win32
{48ACE73F-73AD-43CC-99FB-35DFF71B8E9E}.Debug|Win32.ActiveCfg = Debug|Win32
{48ACE73F-73AD-43CC-99FB-35DFF71B8E9E}.Debug|Win32.Build.0 = Debug|Win32
{48ACE73F-73AD-43CC-99FB-35DFF71B8E9E}.DebugDll|Win32.ActiveCfg = Debug|Win32
{48ACE73F-73AD-43CC-99FB-35DFF71B8E9E}.DebugDll|Win32.Build.0 = Debug|Win32
{48ACE73F-73AD-43CC-99FB-35DFF71B8E9E}.Release|Win32.ActiveCfg = Release|Win32
{48ACE73F-73AD-43CC-99FB-35DFF71B8E9E}.Release|Win32.Build.0 = Release|Win32
{48ACE73F-73AD-43CC-99FB-35DFF71B8E9E}.Releasedll|Win32.ActiveCfg = Release|Win32
{48ACE73F-73AD-43CC-99FB-35DFF71B8E9E}.Releasedll|Win32.Build.0 = Release|Win32
{48ACE73F-73AD-43CC-99FB-35DFF71B8E9E}.Template|Win32.ActiveCfg = Release|Win32
{48ACE73F-73AD-43CC-99FB-35DFF71B8E9E}.Template|Win32.Build.0 = Release|Win32
{8D69EA4C-C980-4168-85B6-BAC9CB99E0DC}.Debug|Win32.ActiveCfg = Debug|Win32
{8D69EA4C-C980-4168-85B6-BAC9CB99E0DC}.Debug|Win32.Build.0 = Debug|Win32
{8D69EA4C-C980-4168-85B6-BAC9CB99E0DC}.DebugDll|Win32.ActiveCfg = Debug|Win32
{8D69EA4C-C980-4168-85B6-BAC9CB99E0DC}.DebugDll|Win32.Build.0 = Debug|Win32
{8D69EA4C-C980-4168-85B6-BAC9CB99E0DC}.Release|Win32.ActiveCfg = Release|Win32
{8D69EA4C-C980-4168-85B6-BAC9CB99E0DC}.Release|Win32.Build.0 = Release|Win32
{8D69EA4C-C980-4168-85B6-BAC9CB99E0DC}.Releasedll|Win32.ActiveCfg = Release|Win32
{8D69EA4C-C980-4168-85B6-BAC9CB99E0DC}.Releasedll|Win32.Build.0 = Release|Win32
{8D69EA4C-C980-4168-85B6-BAC9CB99E0DC}.Template|Win32.ActiveCfg = Release|Win32
{8D69EA4C-C980-4168-85B6-BAC9CB99E0DC}.Template|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

410
acl_cpp_vc2012.sln Normal file
View File

@ -0,0 +1,410 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_acl", "lib_acl\lib_acl_vc2012.vcxproj", "{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_protocol", "lib_protocol\lib_protocol_vc2012.vcxproj", "{FE724EF7-3763-4E78-BDF5-BCBC075719FD}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_acl_cpp", "lib_acl_cpp\lib_acl_cpp_vc2012.vcxproj", "{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_rpc", "lib_rpc\lib_rpc.vcxproj", "{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aio_client", "lib_acl_cpp\samples\aio_client\aio_client_vc2012.vcxproj", "{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aio_dns", "lib_acl_cpp\samples\aio_dns\aio_dns_vc2012.vcxproj", "{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aio_ipc", "lib_acl_cpp\samples\aio_ipc\aio_ipc_vc2012.vcxproj", "{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aio_server", "lib_acl_cpp\samples\aio_server\aio_server_vc2012.vcxproj", "{225D0BFA-64D7-4F8F-951E-36A494CF6178}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "final_class", "lib_acl_cpp\samples\final_class\final_class_vc2012.vcxproj", "{840C2263-DF87-4FD2-8964-EF81B74695FE}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flock", "lib_acl_cpp\samples\flock\flock_vc2012.vcxproj", "{5F4063AD-B591-4C64-ADEA-609968A83550}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fstream", "lib_acl_cpp\samples\fstream\fstream_vc2012.vcxproj", "{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "http_client", "lib_acl_cpp\samples\http_client\http_client_vc2012.vcxproj", "{467619C7-C100-47B9-9A3B-7246A542EDC9}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HttpClient", "lib_acl_cpp\samples\HttpClient\HttpClient_vc2012.vcxproj", "{C0A7DB86-EF13-4A3E-9F34-8950521C9675}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "md5", "lib_acl_cpp\samples\md5\md5_vc2012.vcxproj", "{B8029C89-9870-4EE4-ADD0-E7852E0D1810}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime", "lib_acl_cpp\samples\mime\mime_vc2012.vcxproj", "{52AA7352-CE48-4F60-B92D-1EB16A79FE54}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_base64", "lib_acl_cpp\samples\mime_base64\mime_base64_vc2012.vcxproj", "{19CB30E5-2672-4A8B-96FB-9C42970CCF69}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_qp", "lib_acl_cpp\samples\mime_qp\mime_qp_vc2012.vcxproj", "{5DC79C83-9DE8-46B3-A172-8A4E3371878B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rfc2047", "lib_acl_cpp\samples\rfc2047\rfc2047_vc2012.vcxproj", "{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "singleton", "lib_acl_cpp\samples\singleton\singleton_vc2012.vcxproj", "{128791D9-6787-471C-9A0C-0DCAE53F4911}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "socket_stream", "lib_acl_cpp\samples\socket_stream\socket_stream_vc2012.vcxproj", "{41FA5224-3315-4CDA-9C44-19085049F179}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "string", "lib_acl_cpp\samples\string\string_vc2012.vcxproj", "{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "win_dbservice", "lib_acl_cpp\samples\win_dbservice\win_dbservice_vc2012.vcxproj", "{DC7E75E5-FE42-4529-9D9A-19D240B8727B}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winaio", "lib_acl_cpp\samples\winaio\winaio_vc2012.vcxproj", "{ADE6F714-BD52-432D-AB86-62FA59AB6746}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "lib_acl_cpp\samples\xml\xml_vc2012.vcxproj", "{2DABFAD1-114B-4F96-9185-DC0C56A3662D}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "http_request_pool", "lib_acl_cpp\samples\http_request_pool\http_request_pool_vc2012.vcxproj", "{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "memcache_pool", "lib_acl_cpp\samples\memcache_pool\memcache_pool_vc2012.vcxproj", "{1F3F3884-7F9B-4BA1-8CA3-61E6758A7193}"
ProjectSection(ProjectDependencies) = postProject
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
DebugDll|Win32 = DebugDll|Win32
Release|Win32 = Release|Win32
Releasedll|Win32 = Releasedll|Win32
Template|Win32 = Template|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Debug|Win32.ActiveCfg = Debug|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Debug|Win32.Build.0 = Debug|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.DebugDll|Win32.Build.0 = DebugDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Release|Win32.ActiveCfg = Release|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Release|Win32.Build.0 = Release|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Releasedll|Win32.ActiveCfg = ReleaseDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Releasedll|Win32.Build.0 = ReleaseDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Template|Win32.ActiveCfg = Release|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Template|Win32.Build.0 = Release|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Debug|Win32.ActiveCfg = Debug|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Debug|Win32.Build.0 = Debug|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.DebugDll|Win32.Build.0 = DebugDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Release|Win32.ActiveCfg = Release|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Release|Win32.Build.0 = Release|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Releasedll|Win32.ActiveCfg = ReleaseDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Releasedll|Win32.Build.0 = ReleaseDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Template|Win32.ActiveCfg = Release|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Template|Win32.Build.0 = Release|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Debug|Win32.ActiveCfg = Debug|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Debug|Win32.Build.0 = Debug|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.DebugDll|Win32.Build.0 = DebugDll|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Release|Win32.ActiveCfg = Release|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Release|Win32.Build.0 = Release|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Releasedll|Win32.Build.0 = Releasedll|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Template|Win32.ActiveCfg = Release|Win32
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}.Template|Win32.Build.0 = Release|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.Debug|Win32.ActiveCfg = Debug|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.Debug|Win32.Build.0 = Debug|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.DebugDll|Win32.ActiveCfg = Debug|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.DebugDll|Win32.Build.0 = Debug|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.Release|Win32.ActiveCfg = Release|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.Release|Win32.Build.0 = Release|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.Releasedll|Win32.ActiveCfg = Release|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.Releasedll|Win32.Build.0 = Release|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.Template|Win32.ActiveCfg = Release|Win32
{2B0C9A86-6C14-4CEF-BD7A-4A6752386A44}.Template|Win32.Build.0 = Release|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Debug|Win32.ActiveCfg = Debug|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Debug|Win32.Build.0 = Debug|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.DebugDll|Win32.Build.0 = DebugDll|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Release|Win32.ActiveCfg = Release|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Release|Win32.Build.0 = Release|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Releasedll|Win32.Build.0 = Releasedll|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Template|Win32.ActiveCfg = DebugDll|Win32
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F}.Template|Win32.Build.0 = DebugDll|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Debug|Win32.ActiveCfg = Debug|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Debug|Win32.Build.0 = Debug|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.DebugDll|Win32.Build.0 = DebugDll|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Release|Win32.ActiveCfg = Release|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Release|Win32.Build.0 = Release|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Releasedll|Win32.Build.0 = Releasedll|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Template|Win32.ActiveCfg = DebugDll|Win32
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9}.Template|Win32.Build.0 = DebugDll|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Debug|Win32.ActiveCfg = Debug|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Debug|Win32.Build.0 = Debug|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.DebugDll|Win32.Build.0 = DebugDll|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Release|Win32.ActiveCfg = Release|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Release|Win32.Build.0 = Release|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Releasedll|Win32.Build.0 = Releasedll|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Template|Win32.ActiveCfg = DebugDll|Win32
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83}.Template|Win32.Build.0 = DebugDll|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Debug|Win32.ActiveCfg = Debug|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Debug|Win32.Build.0 = Debug|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.DebugDll|Win32.Build.0 = DebugDll|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Release|Win32.ActiveCfg = Release|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Release|Win32.Build.0 = Release|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Releasedll|Win32.Build.0 = Releasedll|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Template|Win32.ActiveCfg = DebugDll|Win32
{225D0BFA-64D7-4F8F-951E-36A494CF6178}.Template|Win32.Build.0 = DebugDll|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Debug|Win32.ActiveCfg = Debug|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Debug|Win32.Build.0 = Debug|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.DebugDll|Win32.Build.0 = DebugDll|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Release|Win32.ActiveCfg = Release|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Release|Win32.Build.0 = Release|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Releasedll|Win32.ActiveCfg = ReleaseDll|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Releasedll|Win32.Build.0 = ReleaseDll|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Template|Win32.ActiveCfg = DebugDll|Win32
{840C2263-DF87-4FD2-8964-EF81B74695FE}.Template|Win32.Build.0 = DebugDll|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Debug|Win32.ActiveCfg = Debug|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Debug|Win32.Build.0 = Debug|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.DebugDll|Win32.Build.0 = DebugDll|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Release|Win32.ActiveCfg = Release|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Release|Win32.Build.0 = Release|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Releasedll|Win32.Build.0 = Releasedll|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Template|Win32.ActiveCfg = DebugDll|Win32
{5F4063AD-B591-4C64-ADEA-609968A83550}.Template|Win32.Build.0 = DebugDll|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Debug|Win32.ActiveCfg = Debug|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Debug|Win32.Build.0 = Debug|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.DebugDll|Win32.Build.0 = DebugDll|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Release|Win32.ActiveCfg = Release|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Release|Win32.Build.0 = Release|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Releasedll|Win32.Build.0 = Releasedll|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Template|Win32.ActiveCfg = DebugDll|Win32
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0}.Template|Win32.Build.0 = DebugDll|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.Debug|Win32.ActiveCfg = Debug|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.Debug|Win32.Build.0 = Debug|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.DebugDll|Win32.ActiveCfg = Debugdll|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.DebugDll|Win32.Build.0 = Debugdll|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.Release|Win32.ActiveCfg = Release|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.Release|Win32.Build.0 = Release|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.Releasedll|Win32.Build.0 = Releasedll|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.Template|Win32.ActiveCfg = Debugdll|Win32
{467619C7-C100-47B9-9A3B-7246A542EDC9}.Template|Win32.Build.0 = Debugdll|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Debug|Win32.ActiveCfg = Debug|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Debug|Win32.Build.0 = Debug|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.DebugDll|Win32.Build.0 = DebugDll|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Release|Win32.ActiveCfg = Release|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Release|Win32.Build.0 = Release|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Releasedll|Win32.Build.0 = Releasedll|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Template|Win32.ActiveCfg = Template|Win32
{C0A7DB86-EF13-4A3E-9F34-8950521C9675}.Template|Win32.Build.0 = Template|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Debug|Win32.ActiveCfg = Debug|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Debug|Win32.Build.0 = Debug|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.DebugDll|Win32.Build.0 = DebugDll|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Release|Win32.ActiveCfg = Release|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Release|Win32.Build.0 = Release|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Releasedll|Win32.ActiveCfg = ReleaseDll|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Releasedll|Win32.Build.0 = ReleaseDll|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Template|Win32.ActiveCfg = DebugDll|Win32
{B8029C89-9870-4EE4-ADD0-E7852E0D1810}.Template|Win32.Build.0 = DebugDll|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Debug|Win32.ActiveCfg = Debug|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Debug|Win32.Build.0 = Debug|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.DebugDll|Win32.Build.0 = DebugDll|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Release|Win32.ActiveCfg = Release|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Release|Win32.Build.0 = Release|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Releasedll|Win32.Build.0 = Releasedll|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Template|Win32.ActiveCfg = DebugDll|Win32
{52AA7352-CE48-4F60-B92D-1EB16A79FE54}.Template|Win32.Build.0 = DebugDll|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Debug|Win32.ActiveCfg = Debug|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Debug|Win32.Build.0 = Debug|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.DebugDll|Win32.Build.0 = DebugDll|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Release|Win32.ActiveCfg = Release|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Release|Win32.Build.0 = Release|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Releasedll|Win32.Build.0 = Releasedll|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Template|Win32.ActiveCfg = DebugDll|Win32
{19CB30E5-2672-4A8B-96FB-9C42970CCF69}.Template|Win32.Build.0 = DebugDll|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Debug|Win32.ActiveCfg = Debug|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Debug|Win32.Build.0 = Debug|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.DebugDll|Win32.Build.0 = DebugDll|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Release|Win32.ActiveCfg = Release|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Release|Win32.Build.0 = Release|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Releasedll|Win32.Build.0 = Releasedll|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Template|Win32.ActiveCfg = DebugDll|Win32
{5DC79C83-9DE8-46B3-A172-8A4E3371878B}.Template|Win32.Build.0 = DebugDll|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Debug|Win32.ActiveCfg = Debug|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Debug|Win32.Build.0 = Debug|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.DebugDll|Win32.Build.0 = DebugDll|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Release|Win32.ActiveCfg = Release|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Release|Win32.Build.0 = Release|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Releasedll|Win32.Build.0 = Releasedll|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Template|Win32.ActiveCfg = DebugDll|Win32
{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}.Template|Win32.Build.0 = DebugDll|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Debug|Win32.ActiveCfg = Debug|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Debug|Win32.Build.0 = Debug|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.DebugDll|Win32.Build.0 = DebugDll|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Release|Win32.ActiveCfg = Release|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Release|Win32.Build.0 = Release|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Releasedll|Win32.ActiveCfg = ReleaseDll|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Releasedll|Win32.Build.0 = ReleaseDll|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Template|Win32.ActiveCfg = DebugDll|Win32
{128791D9-6787-471C-9A0C-0DCAE53F4911}.Template|Win32.Build.0 = DebugDll|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Debug|Win32.ActiveCfg = Debug|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Debug|Win32.Build.0 = Debug|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.DebugDll|Win32.Build.0 = DebugDll|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Release|Win32.ActiveCfg = Release|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Release|Win32.Build.0 = Release|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Releasedll|Win32.Build.0 = Releasedll|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Template|Win32.ActiveCfg = DebugDll|Win32
{41FA5224-3315-4CDA-9C44-19085049F179}.Template|Win32.Build.0 = DebugDll|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Debug|Win32.ActiveCfg = Debug|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Debug|Win32.Build.0 = Debug|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.DebugDll|Win32.Build.0 = DebugDll|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Release|Win32.ActiveCfg = Release|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Release|Win32.Build.0 = Release|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Releasedll|Win32.Build.0 = Releasedll|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Template|Win32.ActiveCfg = DebugDll|Win32
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7}.Template|Win32.Build.0 = DebugDll|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Debug|Win32.ActiveCfg = Debug|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Debug|Win32.Build.0 = Debug|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.DebugDll|Win32.Build.0 = DebugDll|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Release|Win32.ActiveCfg = Release|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Release|Win32.Build.0 = Release|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Releasedll|Win32.ActiveCfg = ReleaseDll|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Releasedll|Win32.Build.0 = ReleaseDll|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Template|Win32.ActiveCfg = Template|Win32
{DC7E75E5-FE42-4529-9D9A-19D240B8727B}.Template|Win32.Build.0 = Template|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Debug|Win32.ActiveCfg = Debug|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Debug|Win32.Build.0 = Debug|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.DebugDll|Win32.Build.0 = DebugDll|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Release|Win32.ActiveCfg = Release|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Release|Win32.Build.0 = Release|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Releasedll|Win32.Build.0 = Releasedll|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Template|Win32.ActiveCfg = Template|Win32
{ADE6F714-BD52-432D-AB86-62FA59AB6746}.Template|Win32.Build.0 = Template|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Debug|Win32.ActiveCfg = Debug|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Debug|Win32.Build.0 = Debug|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.DebugDll|Win32.Build.0 = DebugDll|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Release|Win32.ActiveCfg = Release|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Release|Win32.Build.0 = Release|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Releasedll|Win32.Build.0 = Releasedll|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Template|Win32.ActiveCfg = DebugDll|Win32
{2DABFAD1-114B-4F96-9185-DC0C56A3662D}.Template|Win32.Build.0 = DebugDll|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.Debug|Win32.ActiveCfg = Debug|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.Debug|Win32.Build.0 = Debug|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.DebugDll|Win32.Build.0 = DebugDll|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.Release|Win32.ActiveCfg = Release|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.Release|Win32.Build.0 = Release|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.Releasedll|Win32.ActiveCfg = ReleaseDll|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.Releasedll|Win32.Build.0 = ReleaseDll|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.Template|Win32.ActiveCfg = DebugDll|Win32
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}.Template|Win32.Build.0 = DebugDll|Win32
{1F3F3884-7F9B-4BA1-8CA3-61E6758A7193}.Debug|Win32.ActiveCfg = Debug|Win32
{1F3F3884-7F9B-4BA1-8CA3-61E6758A7193}.Debug|Win32.Build.0 = Debug|Win32
{1F3F3884-7F9B-4BA1-8CA3-61E6758A7193}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{1F3F3884-7F9B-4BA1-8CA3-61E6758A7193}.DebugDll|Win32.Build.0 = DebugDll|Win32
{1F3F3884-7F9B-4BA1-8CA3-61E6758A7193}.Release|Win32.ActiveCfg = Release|Win32
{1F3F3884-7F9B-4BA1-8CA3-61E6758A7193}.Release|Win32.Build.0 = Release|Win32
{1F3F3884-7F9B-4BA1-8CA3-61E6758A7193}.Releasedll|Win32.ActiveCfg = ReleaseDll|Win32
{1F3F3884-7F9B-4BA1-8CA3-61E6758A7193}.Releasedll|Win32.Build.0 = ReleaseDll|Win32
{1F3F3884-7F9B-4BA1-8CA3-61E6758A7193}.Template|Win32.ActiveCfg = DebugDll|Win32
{1F3F3884-7F9B-4BA1-8CA3-61E6758A7193}.Template|Win32.Build.0 = DebugDll|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

66
acl_vc2003.sln Normal file
View File

@ -0,0 +1,66 @@
Microsoft Visual Studio Solution File, Format Version 8.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_acl", "lib_acl\lib_acl_vc2003.vcproj", "{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_protocol", "lib_protocol\lib_protocol_vc2003.vcproj", "{FE724EF7-3763-4E78-BDF5-BCBC075719FD}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_dict", "lib_dict\lib_dict.vcproj", "{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_tls", "lib_tls\lib_tls.vcproj", "{389FDE47-7F16-4DD4-B37A-27918BE745B6}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug
DebugDll = DebugDll
Release = Release
ReleaseDll = ReleaseDll
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Debug.ActiveCfg = Debug|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Debug.Build.0 = Debug|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.DebugDll.ActiveCfg = DebugDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.DebugDll.Build.0 = DebugDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Release.ActiveCfg = Release|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Release.Build.0 = Release|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.ReleaseDll.ActiveCfg = ReleaseDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.ReleaseDll.Build.0 = ReleaseDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Debug.ActiveCfg = Debug|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Debug.Build.0 = Debug|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.DebugDll.ActiveCfg = DebugDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.DebugDll.Build.0 = DebugDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Release.ActiveCfg = Release|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Release.Build.0 = Release|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.ReleaseDll.ActiveCfg = ReleaseDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.ReleaseDll.Build.0 = ReleaseDll|Win32
{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}.Debug.ActiveCfg = Debug|Win32
{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}.Debug.Build.0 = Debug|Win32
{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}.DebugDll.ActiveCfg = DebugDll|Win32
{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}.DebugDll.Build.0 = DebugDll|Win32
{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}.Release.ActiveCfg = Release|Win32
{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}.Release.Build.0 = Release|Win32
{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}.ReleaseDll.ActiveCfg = ReleaseDll|Win32
{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}.ReleaseDll.Build.0 = ReleaseDll|Win32
{389FDE47-7F16-4DD4-B37A-27918BE745B6}.Debug.ActiveCfg = Debug|Win32
{389FDE47-7F16-4DD4-B37A-27918BE745B6}.Debug.Build.0 = Debug|Win32
{389FDE47-7F16-4DD4-B37A-27918BE745B6}.DebugDll.ActiveCfg = DebugDll|Win32
{389FDE47-7F16-4DD4-B37A-27918BE745B6}.DebugDll.Build.0 = DebugDll|Win32
{389FDE47-7F16-4DD4-B37A-27918BE745B6}.Release.ActiveCfg = Release|Win32
{389FDE47-7F16-4DD4-B37A-27918BE745B6}.Release.Build.0 = Release|Win32
{389FDE47-7F16-4DD4-B37A-27918BE745B6}.ReleaseDll.ActiveCfg = ReleaseDll|Win32
{389FDE47-7F16-4DD4-B37A-27918BE745B6}.ReleaseDll.Build.0 = ReleaseDll|Win32
EndGlobalSection
GlobalSection(SolutionItems) = postSolution
changes.txt = changes.txt
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection
EndGlobal

60
acl_vc2010.sln Normal file
View File

@ -0,0 +1,60 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_acl", "lib_acl\lib_acl_vc2010.vcxproj", "{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_protocol", "lib_protocol\lib_protocol_vc2010.vcxproj", "{FE724EF7-3763-4E78-BDF5-BCBC075719FD}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_dict", "lib_dict\lib_dict.vcxproj", "{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_tls", "lib_tls\lib_tls.vcxproj", "{389FDE47-7F16-4DD4-B37A-27918BE745B6}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2597AF7B-516E-478A-B72E-0BC8A59E8965}"
ProjectSection(SolutionItems) = preProject
..\changes.txt = ..\changes.txt
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
DebugDll|Win32 = DebugDll|Win32
Release|Win32 = Release|Win32
ReleaseDll|Win32 = ReleaseDll|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Debug|Win32.ActiveCfg = Debug|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Debug|Win32.Build.0 = Debug|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.DebugDll|Win32.Build.0 = DebugDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Release|Win32.ActiveCfg = Release|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Release|Win32.Build.0 = Release|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.ReleaseDll|Win32.ActiveCfg = ReleaseDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.ReleaseDll|Win32.Build.0 = ReleaseDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Debug|Win32.ActiveCfg = Debug|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Debug|Win32.Build.0 = Debug|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.DebugDll|Win32.Build.0 = DebugDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Release|Win32.ActiveCfg = Release|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Release|Win32.Build.0 = Release|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.ReleaseDll|Win32.ActiveCfg = ReleaseDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.ReleaseDll|Win32.Build.0 = ReleaseDll|Win32
{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}.Debug|Win32.ActiveCfg = Debug|Win32
{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}.Debug|Win32.Build.0 = Debug|Win32
{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}.DebugDll|Win32.Build.0 = DebugDll|Win32
{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}.Release|Win32.ActiveCfg = Release|Win32
{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}.Release|Win32.Build.0 = Release|Win32
{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}.ReleaseDll|Win32.ActiveCfg = ReleaseDll|Win32
{9E6E9FE9-EAAC-44BA-B463-70DE0233822E}.ReleaseDll|Win32.Build.0 = ReleaseDll|Win32
{389FDE47-7F16-4DD4-B37A-27918BE745B6}.Debug|Win32.ActiveCfg = Debug|Win32
{389FDE47-7F16-4DD4-B37A-27918BE745B6}.Debug|Win32.Build.0 = Debug|Win32
{389FDE47-7F16-4DD4-B37A-27918BE745B6}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{389FDE47-7F16-4DD4-B37A-27918BE745B6}.DebugDll|Win32.Build.0 = DebugDll|Win32
{389FDE47-7F16-4DD4-B37A-27918BE745B6}.Release|Win32.ActiveCfg = Release|Win32
{389FDE47-7F16-4DD4-B37A-27918BE745B6}.Release|Win32.Build.0 = Release|Win32
{389FDE47-7F16-4DD4-B37A-27918BE745B6}.ReleaseDll|Win32.ActiveCfg = ReleaseDll|Win32
{389FDE47-7F16-4DD4-B37A-27918BE745B6}.ReleaseDll|Win32.Build.0 = ReleaseDll|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

37
acl_vc2012.sln Normal file
View File

@ -0,0 +1,37 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_acl", "lib_acl\lib_acl_vc2012.vcxproj", "{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_protocol", "lib_protocol\lib_protocol_vc2012.vcxproj", "{FE724EF7-3763-4E78-BDF5-BCBC075719FD}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2597AF7B-516E-478A-B72E-0BC8A59E8965}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
DebugDll|Win32 = DebugDll|Win32
Release|Win32 = Release|Win32
ReleaseDll|Win32 = ReleaseDll|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Debug|Win32.ActiveCfg = Debug|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Debug|Win32.Build.0 = Debug|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.DebugDll|Win32.Build.0 = DebugDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Release|Win32.ActiveCfg = Release|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.Release|Win32.Build.0 = Release|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.ReleaseDll|Win32.ActiveCfg = ReleaseDll|Win32
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B}.ReleaseDll|Win32.Build.0 = ReleaseDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Debug|Win32.ActiveCfg = Debug|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Debug|Win32.Build.0 = Debug|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.DebugDll|Win32.Build.0 = DebugDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Release|Win32.ActiveCfg = Release|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.Release|Win32.Build.0 = Release|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.ReleaseDll|Win32.ActiveCfg = ReleaseDll|Win32
{FE724EF7-3763-4E78-BDF5-BCBC075719FD}.ReleaseDll|Win32.Build.0 = ReleaseDll|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

93
app/Makefile.in Normal file
View File

@ -0,0 +1,93 @@
CC = g++
CFLAGS = -c -g -W -Wall -Wcast-qual -Wcast-align \
-Waggregate-return -Wno-long-long \
-Wpointer-arith -Werror -Wshadow -O3 \
-D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -D_USE_FAST_MACRO
###########################################################
#Check system:
# Linux, SunOS, Solaris, BSD variants, AIX, HP-UX
SYSLIB = -lpthread -lcrypt -lz
CHECKSYSRES = @echo "Unknow system type!";exit 1
UNIXNAME = $(shell uname -sm)
ifeq ($(CC),)
CC = gcc
endif
# For FreeBSD
ifeq ($(findstring FreeBSD, $(UNIXNAME)), FreeBSD)
ifeq ($(findstring gcc, $(CC)), gcc)
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DFREEBSD -D_REENTRANT
SYSLIB = -lcrypt -lpthread
endif
#Path for Linux
ifeq ($(findstring Linux, $(UNIXNAME)), Linux)
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DLINUX2 -D_REENTRANT
endif
#Path for SunOS
ifeq ($(findstring SunOS, $(UNIXNAME)), SunOS)
ifeq ($(findstring 86, $(UNIXNAME)), 86)
SYSLIB += -lsocket -lnsl -lrt
endif
ifeq ($(findstring sun4u, $(UNIXNAME)), sun4u)
SYSLIB += -lsocket -lnsl -lrt
endif
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DSUNOS5 -D_REENTRANT
endif
#Path for HP-UX
ifeq ($(findstring HP-UX, $(UNIXNAME)), HP-UX)
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DHP_UX -DHPUX11
PLAT_NAME=hp-ux
endif
#Find system type.
ifneq ($(SYSPATH),)
CHECKSYSRES = @echo "System is $(shell uname -sm)"
endif
###########################################################
CFLAGS += -I../../lib_acl/include -I../../lib_protocol/include -I../../lib_acl_cpp/include
EXTLIBS =
LDFLAGS = -L../../lib_acl_cpp/lib -l_acl_cpp -L../../lib_protocol/lib -l_protocol -L../../lib_acl/lib -l_acl \
$(EXTLIBS) $(SYSLIB)
COMPILE = $(CC) $(CFLAGS)
LINK = $(CC) $(OBJ) $(LDFLAGS)
###########################################################
OBJ_PATH = .
#Project's objs
SRC = $(wildcard *.cpp)
OBJ = $(patsubst %.cpp, $(OBJ_PATH)/%.o, $(notdir $(SRC)))
$(OBJ_PATH)/%.o: %.cpp
$(COMPILE) $< -o $@
.PHONY = all clean
all: RM $(OBJ)
$(LINK) -o $(PROG)
@echo ""
@echo "All ok! Output:$(PROG)"
@echo ""
RM:
rm -f $(PROG)
clean:
rm -f $(PROG)
rm -f $(OBJ)
###########################################################

View File

@ -0,0 +1,97 @@
SHELL = /bin/sh
CC = gcc
AR = ar
ARFL = rv
#ARFL = cru
RANLIB = ranlib
CFLAGS = -c -g -W -Wall -Wcast-qual -Wcast-align \
-Wpointer-arith -Werror -Wshadow -O3 \
-D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS \
-Wno-long-long \
-Wno-unused-parameter \
-fPIC -Wno-unknown-pragmas \
-DUSE_SERVICE_CLIENT
###########################################################
#Check system:
# Linux, SunOS, Solaris, BSD variants, AIX, HP-UX
SYSLIB =
CHECKSYSRES = @echo "Unknow system type!";exit 1
UNIXNAME = $(shell uname -sm)
ifeq ($(CC),)
CC = g++
endif
# For FreeBSD
ifeq ($(findstring FreeBSD, $(UNIXNAME)), FreeBSD)
ifeq ($(findstring gcc, $(CC)), gcc)
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DFREEBSD -D_REENTRANT
endif
# For Linux
ifeq ($(findstring Linux, $(UNIXNAME)), Linux)
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DLINUX2 -D_REENTRANT
endif
# For SunOS
ifeq ($(findstring SunOS, $(UNIXNAME)), SunOS)
ifeq ($(findstring 86, $(UNIXNAME)), 86)
SYSLIB = -lsocket -lnsl -lrt
endif
ifeq ($(findstring sun4u, $(UNIXNAME)), sun4u)
SYSLIB = -lsocket -lnsl -lrt
endif
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DSUNOS5 -D_REENTRANT
endif
# For HP-UX
ifeq ($(findstring HP-UX, $(UNIXNAME)), HP-UX)
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DHP_UX -DHPUX11
PLAT_NAME=hp-ux
endif
#Find system type.
ifneq ($(SYSPATH),)
CHECKSYSRES = @echo "System is $(shell uname -sm)"
endif
###########################################################
OBJ_PATH_DST = ./debug
LIB_PATH_DST = ./lib
INC_COMPILE = -I./include \
-I../../../../lib_protocol/include \
-I../../../../lib_acl/include
CFLAGS += $(INC_COMPILE)
#Project's objs
OBJS_DST = $(patsubst %.c, $(OBJ_PATH_DST)/%.o, $(notdir $(wildcard src/*.c)))
###########################################################
LIB_NAME = lib_gid.a
.PHONY = clean
COMPILE = $(CC) $(CFLAGS)
$(LIB_NAME): $(OBJS_DST)
$(AR) $(ARFL) $(LIB_PATH_DST)/$(LIB_NAME) $(OBJS_DST)
$(RANLIB) $(LIB_PATH_DST)/$(LIB_NAME)
# src
$(OBJ_PATH_DST)/%.o: src/%.c
$(COMPILE) $< -o $@
clean:
rm -f $(LIB_PATH_DST)/$(LIB_NAME)
rm -f $(OBJS_DST)

View File

@ -0,0 +1,122 @@
#ifndef __LIB_GID_INCLUDE_H__
#define __LIB_GID_INCLUDE_H__
#ifdef __cplusplus
extern "C" {
#endif
/* 通讯协议方式 */
#define GID_PROTO_CMDLINE 0 /* 命令行方式 */
#define GID_PROTO_JSON 1 /* http 方式,数据格式为 json 格式 */
#define GID_PROTO_XML 2 /* http 方式,数据格式为 xml 格式 */
/* 操作命令 */
#define GID_CMD_NEXT "new_gid" /* 获取下一个唯一 gid */
/* 出错码 */
/* 客户端相关的错误码 */
#define GID_OK 200 /* 正常 */
#define GID_ERR_INIT 400 /* 库未初始化,应用应在程序初始化时调用初始化函数 gid_client_init */
#define GID_ERR_CONN 401 /* 连接服务器失败 */
#define GID_ERR_IO 402 /* 与服务器通信失败 */
#define GID_ERR_PROTO 403 /* 协议格式错误 */
#define GID_ERR_SERVER 404 /* 服务器内部出错 */
/* 服务端相关的错误码 */
#define GID_ERR_SID 500 /* 会话 ID 号不对 */
#define GID_ERR_OVERRIDE 501 /* 达到最大分配值 */
#define GID_ERR_SAVE 502 /* 存储至磁盘时出错 */
/**
* 使
* @param proto {int} GID_PROTO_XXX
* @param server_addr {const char*} gid ip:port
* domain:port unix /xxx/xxx/xxx
*/
void gid_client_init(int proto, const char *server_addr);
/**
*
* @param errnum {int} GID_ERR_XXX
* @return {const char*}
*/
const char *gid_client_serror(int errnum);
/**
* HTTP URL
* @param url {const char*} URL
*/
void gid_client_set_url(const char *url);
/**
* HTTP
* @param keepalive {int}
*/
void gid_client_set_keepalive(int keepalive);
/**
* 1
* @param nretry {int}
*/
void gid_client_set_retry_limit(int nretry);
/**
* gid 20
* @param timeout {int}
*/
void gid_client_set_conn_timeout(int timeout);
/**
* 20
* @param timeout {int}
*/
void gid_client_set_rw_timeout(int timeout);
/**
* gid
* @param tag {const char*} 使 default
* tag_name[:sid] tag_name sid 访
* ID号 sid 访
* 访 gid sid sid
* ID号访 gid
* ID
* @param errnum {int*}
* @return {long long int} gid < 0
*/
long long int gid_next(const char *tag, int *errnum);
/* 如果获取 gid 的函数使用用户提供的连接描述符 */
/**
* gid
* @param fd {int}
* @param tag {const char*} 使default
* @param errnum {int*}
* @return {long long int} gid * < 0
*/
long long int gid_cmdline_get(int fd, const char *tag, int *errnum);
/**
* http json gid
* @param fd {int}
* @param tag {const char*} 使default
* @param errnum {int*}
* @return {long long int} gid < 0
*/
long long int gid_json_get(int fd, const char *tag, int *errnum);
/**
* http xml gid
* @param fd {int}
* @param tag {const char*} 使default
* @param errnum {int*}
* @return {long long int} gid < 0
*/
long long int gid_xml_get(int fd, const char *tag, int *errnum);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,10 @@
#ifndef __GID_INCLUDE_H__
#define __GID_INCLUDE_H__
#include "lib_acl.h"
acl_int64 gid_cmdline_next(ACL_VSTREAM *client, const char *tag, int *errnum);
acl_int64 gid_json_next(ACL_VSTREAM *client, const char *tag, int *errnum);
acl_int64 gid_xml_next(ACL_VSTREAM *client, const char *tag, int *errnum);
#endif

View File

@ -0,0 +1,82 @@
#include "lib_acl.h"
#include "global.h"
#include "lib_gid.h"
#include "gid.h"
acl_int64 gid_cmdline_get(int fd, const char *tag, int *errnum)
{
acl_int64 gid;
ACL_VSTREAM *client = acl_vstream_fdopen(fd, 0, 1024,
var_gid_rw_timeout, ACL_VSTREAM_TYPE_SOCK);
gid = gid_cmdline_next(client, tag, errnum);
acl_vstream_free(client);
return (gid);
}
acl_int64 gid_cmdline_next(ACL_VSTREAM *client, const char *tag, int *errnum)
{
char buf[1204];
ACL_ARGV *tokens;
ACL_ITER iter;
const char *status = NULL, *gid = NULL, *tag_ptr = NULL, *msg = NULL, *err = NULL;
if (tag && *tag)
snprintf(buf, sizeof(buf), "CMD^%s|TAG^%s\r\n", GID_CMD_NEXT, tag);
else
snprintf(buf, sizeof(buf), "CMD^%s\r\n", GID_CMD_NEXT);
if (acl_vstream_writen(client, buf, strlen(buf)) == ACL_VSTREAM_EOF) {
if (errnum)
*errnum = GID_ERR_IO;
return (-1);
} else if (acl_vstream_gets_nonl(client, buf, sizeof(buf)) == ACL_VSTREAM_EOF)
{
if (errnum)
*errnum = GID_ERR_IO;
return (-1);
}
tokens = acl_argv_split(buf, "|");
acl_foreach(iter, tokens) {
const char *ptr = (const char*) iter.data;
if (strncasecmp(ptr, "STATUS^", sizeof("STATUS^") - 1) == 0) {
status = ptr + sizeof("STATUS^") - 1;
} else if (strncasecmp(ptr, "GID^", sizeof("GID^") - 1) == 0) {
gid = ptr + sizeof("GID^") - 1;
} else if (strncasecmp(ptr, "TAG^", sizeof("TAG^") - 1) == 0) {
tag_ptr = ptr + sizeof("TAG^") - 1;
} else if (strncasecmp(ptr, "MSG^", sizeof("MSG^") - 1) == 0) {
msg = ptr + sizeof("MSG^") - 1;
} else if (strncasecmp(ptr, "ERR^", sizeof("ERR^") - 1) == 0) {
err = ptr + sizeof("ERR^");
}
}
if (status == NULL) {
if (errnum)
*errnum = GID_ERR_PROTO;
acl_argv_free(tokens);
return (-1);
} else if (strcasecmp(status, "OK") != 0) {
if (errnum) {
if (err)
*errnum = atoi(err);
else
*errnum = GID_ERR_SERVER;
}
acl_argv_free(tokens);
return (-1);
} else if (gid == NULL) {
if (errnum)
*errnum = GID_ERR_PROTO;
acl_argv_free(tokens);
return (-1);
} else {
acl_int64 ngid = atoll(gid);
acl_argv_free(tokens);
return (ngid);
}
}

View File

@ -0,0 +1,98 @@
#include "lib_acl.h"
#include "global.h"
#include "http_client.h"
#include "lib_gid.h"
#include "gid.h"
acl_int64 gid_json_get(int fd, const char *tag, int *errnum)
{
ACL_VSTREAM *client = acl_vstream_fdopen(fd, 0, 1024,
var_gid_rw_timeout, ACL_VSTREAM_TYPE_SOCK);
acl_int64 gid;
gid = gid_json_next(client, tag, errnum);
acl_vstream_free(client);
return (gid);
}
acl_int64 gid_json_next(ACL_VSTREAM *client, const char *tag, int *errnum)
{
char buf[1204];
ACL_ITER iter;
ACL_JSON *json;
const char *status = NULL, *gid = NULL, *tag_ptr = NULL, *msg = NULL, *err = NULL;
if (tag && *tag)
snprintf(buf, sizeof(buf), "{ cmd: '%s', tag: '%s' }\r\n",
GID_CMD_NEXT, tag);
else
snprintf(buf, sizeof(buf), "{ cmd: '%s' }\r\n", GID_CMD_NEXT);
/* 发送 HTTP JSON 请求 */
if (http_client_post_request(client, var_gid_url, 1,
"json", buf, (int) strlen(buf), errnum) < 0)
{
if (errnum)
*errnum = GID_ERR_IO;
return (-1);
}
json = acl_json_alloc(); /* 分配 JSON 对象 */
/* 接收 HTTP JSON 响应 */
if (http_client_get_respond(client, json, NULL, errnum, NULL) < 0)
{
if (errnum)
*errnum = GID_ERR_IO;
acl_json_free(json);
return (-1);
}
#define STR acl_vstring_str
/* 数据格式: { status: 'ok|error', gid: xxx, tag: 'xxx', msg: 'xxx', err: 'xxx' } */
acl_foreach(iter, json) {
ACL_JSON_NODE *node = (ACL_JSON_NODE*) iter.data;
if (STR(node->ltag) == 0 || STR(node->text) == 0)
continue;
if (strcasecmp(STR(node->ltag), "STATUS") == 0) {
status = STR(node->text);
} else if (strcasecmp(STR(node->ltag), "GID") == 0) {
gid = STR(node->text);
} else if (strcasecmp(STR(node->ltag), "TAG") == 0) {
tag_ptr = STR(node->text);
} else if (strcasecmp(STR(node->ltag), "MSG") == 0) {
msg = STR(node->text);
} else if (strcasecmp(STR(node->ltag), "ERR") == 0) {
err = STR(node->text);
}
}
if (status == NULL) {
if (errnum)
*errnum = GID_ERR_PROTO;
acl_json_free(json);
return (-1);
} else if (strcasecmp(status, "OK") != 0) {
if (errnum) {
if (err)
*errnum = atoi(err);
else
*errnum = GID_ERR_SERVER;
}
acl_json_free(json);
return (-1);
} else if (gid == NULL) {
if (errnum)
*errnum = GID_ERR_PROTO;
acl_json_free(json);
return (-1);
} else {
acl_int64 ngid = atoll(gid);
acl_json_free(json);
return (ngid);
}
}

View File

@ -0,0 +1,123 @@
#include "lib_acl.h"
#include "global.h"
#include "http_client.h"
#include "lib_gid.h"
#include "gid.h"
acl_int64 gid_xml_get(int fd, const char *tag, int *errnum)
{
ACL_VSTREAM *client = acl_vstream_fdopen(fd, 0, 1024,
var_gid_rw_timeout, ACL_VSTREAM_TYPE_SOCK);
acl_int64 gid;
gid = gid_xml_next(client, tag, errnum);
acl_vstream_free(client);
return (gid);
}
acl_int64 gid_xml_next(ACL_VSTREAM *client, const char *tag, int *errnum)
{
char buf[1204];
ACL_ITER iter;
ACL_XML *xml;
const char *status = NULL, *gid = NULL, *tag_ptr = NULL, *msg = NULL, *err = NULL;
static __thread ACL_VSTRING *tt = NULL;
if (tag && *tag)
snprintf(buf, sizeof(buf), "<request cmd='%s' tag='%s' />\r\n",
GID_CMD_NEXT, tag);
else
snprintf(buf, sizeof(buf), "<request cmd='%s' />\r\n", GID_CMD_NEXT);
/* 发送 HTTP JSON 请求 */
if (http_client_post_request(client, var_gid_url, 1,
"xml", buf, (int) strlen(buf), errnum) < 0)
{
if (errnum)
*errnum = GID_ERR_IO;
return (-1);
}
xml = acl_xml_alloc(); /* 分配 JSON 对象 */
if (tt == NULL)
tt = acl_vstring_alloc(100);
else
ACL_VSTRING_RESET(tt);
/* 接收 HTTP JSON 响应 */
if (http_client_get_respond(client, NULL, xml, errnum, tt) < 0)
{
if (errnum)
*errnum = GID_ERR_IO;
acl_xml_free(xml);
return (-1);
}
#define STR acl_vstring_str
/*
{
ACL_VSTRING *tmp = acl_vstring_alloc(128);
acl_xml_dump2(xml, tmp);
printf("xml: %s\r\n", STR(tmp));
acl_vstring_free(tmp);
}
*/
/* 数据格式: <respond status='ok|error' gid=xxx tag='xxx' msg='xxx' err='xxx' /> */
acl_foreach(iter, xml) {
ACL_XML_NODE *node = (ACL_XML_NODE*) iter.data;
/* 找到 respond 结点 */
if (strcasecmp(STR(node->ltag), "respond") == 0
&& node->attr_list != NULL)
{
ACL_ITER attr_iter;
/* 遍历结点属性 */
acl_foreach(attr_iter, node->attr_list) {
ACL_XML_ATTR *attr = (ACL_XML_ATTR*) attr_iter.data;
if (strcasecmp(STR(attr->name), "STATUS") == 0) {
status = STR(attr->value);
} else if (strcasecmp(STR(attr->name), "GID") == 0) {
gid = STR(attr->value);
} else if (strcasecmp(STR(attr->name), "TAG") == 0) {
tag_ptr = STR(attr->value);
} else if (strcasecmp(STR(attr->name), "MSG") == 0) {
msg = STR(attr->value);
} else if (strcasecmp(STR(attr->name), "ERR") == 0) {
err = STR(attr->value);
}
}
}
}
if (status == NULL) {
if (errnum)
*errnum = GID_ERR_PROTO;
acl_xml_free(xml);
return (-1);
} else if (strcasecmp(status, "OK") != 0) {
if (errnum) {
if (err)
*errnum = atoi(err);
else
*errnum = GID_ERR_SERVER;
}
acl_xml_free(xml);
return (-1);
} else if (gid == NULL) {
if (errnum)
*errnum = GID_ERR_PROTO;
acl_xml_free(xml);
return (-1);
} else {
acl_int64 ngid = atoll(gid);
acl_xml_free(xml);
return (ngid);
}
}

View File

@ -0,0 +1,61 @@
#include "lib_acl.h"
#include "global.h"
#include "lib_gid.h"
char var_gid_server_addr[64] = "";
int var_gid_conn_timeout;
int var_gid_rw_timeout;
int var_gid_retry_limit;
int var_gid_keepalive;
int var_gid_proto;
char var_gid_url[1024];
void gid_client_init(int proto, const char *server_addr)
{
acl_assert(server_addr && *server_addr);
ACL_SAFE_STRNCPY(var_gid_server_addr, server_addr,
sizeof(var_gid_server_addr));
if (proto == GID_PROTO_JSON)
ACL_SAFE_STRNCPY(var_gid_url, GID_JSON_URL,
sizeof(var_gid_url));
else if (proto == GID_PROTO_XML)
ACL_SAFE_STRNCPY(var_gid_url, GID_XML_URL,
sizeof(var_gid_url));
else if (proto != GID_PROTO_CMDLINE)
acl_assert(0);
var_gid_proto = proto;
var_gid_conn_timeout = 20;
var_gid_rw_timeout = 20;
var_gid_retry_limit = 1;
var_gid_keepalive = 1;
}
void gid_client_set_url(const char *url)
{
if (url == NULL || *url == 0)
return;
ACL_SAFE_STRNCPY(var_gid_url, url, sizeof(var_gid_url));
}
void gid_client_set_keepalive(int keepalive)
{
var_gid_keepalive = keepalive;
}
void gid_client_set_retry_limit(int nretry)
{
var_gid_retry_limit = nretry;
}
void gid_client_set_conn_timeout(int timeout)
{
var_gid_conn_timeout = timeout;
}
void gid_client_set_rw_timeout(int timeout)
{
var_gid_rw_timeout = timeout;
}

View File

@ -0,0 +1,15 @@
#ifndef __GLOBAL_INCLUDE_H__
#define __GLOBAL_INCLUDE_H__
extern char var_gid_server_addr[];
extern int var_gid_conn_timeout;
extern int var_gid_rw_timeout;
extern int var_gid_retry_limit;
extern int var_gid_proto;
extern int var_gid_keepalive;
extern char var_gid_url[];
#define GID_JSON_URL "/gid_json"
#define GID_XML_URL "/gid_xml"
#endif

View File

@ -0,0 +1,99 @@
#include "lib_acl.h"
#include "lib_protocol.h"
#include "lib_gid.h"
#include "global.h"
#include "http_client.h"
int http_client_post_request(ACL_VSTREAM *client, const char *url, int keepalive,
const char *gid_fmt, char* body, int len, int *errnum)
{
HTTP_HDR_REQ* hdr_req = http_hdr_req_create(url, "POST", "HTTP/1.1");
ACL_VSTRING* buf = acl_vstring_alloc(256);
struct iovec vector[2]; /* 数据数组 */
int ret;
/* 在请求头中设置请求体的数据长度 */
http_hdr_put_int(&hdr_req->hdr, "Content-Length", len);
if (keepalive)
http_hdr_put_str(&hdr_req->hdr, "Connection", "keep-alive");
if (gid_fmt && *gid_fmt)
http_hdr_put_str(&hdr_req->hdr, "x-gid-format", gid_fmt);
http_hdr_build_request(hdr_req, buf); /* 构建 HTTP 请求头数据 */
/* 设置 HTTP 头 */
vector[0].iov_base = acl_vstring_str(buf);
vector[0].iov_len = ACL_VSTRING_LEN(buf);
/* 设置 HTTP 体 */
vector[1].iov_base = (char*) body;
vector[1].iov_len = len;
ret = acl_vstream_writevn(client, vector, 2); /* 发送请求头及请求体 */
http_hdr_req_free(hdr_req); /* 释放 HTTP 请求头对象 */
acl_vstring_free(buf); /* 释放缓冲区 */
if (ret == ACL_VSTREAM_EOF) {
if (errnum)
*errnum = GID_ERR_IO;
return -1;
}
/* 发送HTTP请求成功 */
return (0);
}
int http_client_get_respond(ACL_VSTREAM* client, ACL_JSON *json,
ACL_XML *xml, int *errnum, ACL_VSTRING *dump)
{
HTTP_HDR_RES* hdr_res;
HTTP_RES* res;
char buf[1024];
int ret;
acl_assert(json != NULL || xml != NULL);
hdr_res = http_hdr_res_new(); /* 创建HTTP 响应头对象 */
/* 读取 HTTP 服务器响应头 */
ret = http_hdr_res_get_sync(hdr_res, client, var_gid_rw_timeout);
if (ret < 0) {
http_hdr_res_free(hdr_res); /* 释放 HTTP 响应头对象 */
return -1;
}
/* 解析 HTTP 响应头 */
if (http_hdr_res_parse(hdr_res) < 0) { /* 解析出错 */
http_hdr_res_free(hdr_res);
return -1;
}
/*
http_hdr_print(&hdr_res->hdr, "---respond---");
*/
/* 需要先根据 HTTP 响应头判断是否有数据体 */
if (hdr_res->hdr.content_length == 0 ||
(hdr_res->hdr.content_length == -1 && !hdr_res->hdr.chunked
&& hdr_res->reply_status > 300 && hdr_res->reply_status < 400))
{
http_hdr_res_free(hdr_res);
return 0;
}
res = http_res_new(hdr_res); /* 创建 HTTP 响应体对象 */
while (1) {
/* 读数据体数据 */
ret = http_res_body_get_sync(res, client, buf, sizeof(buf) - 1);
if (ret <= 0)
break;
buf[ret] = 0;
if (json)
acl_json_update(json, buf);
else
acl_xml_update(xml, buf);
if (dump)
acl_vstring_strcat(dump, buf);
}
/* 因为 res 中含有 hdr_res 所以会一同连 hdr_res 释放 */
http_res_free(res);
return (0);
}

View File

@ -0,0 +1,31 @@
#ifndef __HTTP_CLIENT_INCLUDE_H__
#define __HTTP_CLIENT_INCLUDE_H__
/**
* POST
* @param client {ACL_VSTREAM*}
* @param url {const char*} URL
* @param keepalive {int}
* @param gid_fmt {const char*} xml json
* @param body {char*}
* @param len {int}
* @param errnum {int*}
* @return {int} 0
*/
int http_client_post_request(ACL_VSTREAM *client, const char *url, int keepalive,
const char *gid_fmt, char* body, int len, int *errnum);
/**
*
* @param client {ACL_VSTREAM*}
* @param json {ACL_JSON*} json
* @param xml {ACL_XML*} xml
* @param errnum {int*}
* @param dump {ACL_VSTRING*}
* @return {int} 0
* ACL_JSON* ACL_XML*
*/
int http_client_get_respond(ACL_VSTREAM* client, ACL_JSON *json,
ACL_XML *xml, int *errnum, ACL_VSTRING *dump);
#endif

View File

@ -0,0 +1,107 @@
#include "lib_acl.h"
#include "lib_protocol.h"
#include "global.h"
#include "gid.h"
#include "lib_gid.h"
/* 使用线程局部变量但注意此库不得编译成动态库XXX */
static __thread ACL_VSTREAM *__client = NULL;
acl_int64 gid_next(const char *tag, int *errnum)
{
acl_int64 gid = 0;
int err, nretry = 0;
if (var_gid_server_addr[0] == 0) {
if (errnum)
*errnum = GID_ERR_INIT;
return (-1);
}
while (1) {
if (__client == NULL)
__client = acl_vstream_connect(var_gid_server_addr,
ACL_BLOCKING, var_gid_conn_timeout,
var_gid_rw_timeout, 1024);
if (__client == NULL) {
if (errnum)
*errnum = GID_ERR_CONN;
return (-1);
}
if (var_gid_proto == GID_PROTO_JSON) {
gid = gid_json_next(__client, tag, &err);
} else if (var_gid_proto == GID_PROTO_XML) {
gid = gid_xml_next(__client, tag, &err);
} else {
gid = gid_cmdline_next(__client, tag, &err);
}
if (gid >= 0) {
if (errnum)
*errnum = GID_OK;
break;
} else if (err != GID_ERR_IO) {
if (errnum)
*errnum = err;
break;
} else if (nretry++ >= var_gid_retry_limit) {
if (errnum)
*errnum = err;
break;
}
}
if (var_gid_keepalive == 0) {
acl_vstream_close(__client);
__client = NULL;
}
return (gid);
}
/*
#define GID_OK 200
#define GID_ERR_INIT 400
#define GID_ERR_CONN 401
#define GID_ERR_IO 402
#define GID_ERR_PROTO 403
#define GID_ERR_SERVER 404
#define GID_ERR_SID 500
#define GID_ERR_OVERRIDE 501
#define GID_ERR_SAVE 502
*/
const char *gid_client_serror(int errnum)
{
static const struct {
int err;
const char *str;
} errors[] = {
{ GID_OK, "ok" },
/* 客户端相关错误 */
{ GID_ERR_INIT, "gid_client_init should called first" },
{ GID_ERR_CONN, "connect server error" },
{ GID_ERR_IO, "readwrite from server error" },
{ GID_ERR_PROTO, "gid protocol error" },
{ GID_ERR_SERVER, "gid server internal error" },
/* 服务端返回的错误 */
{ GID_ERR_SID, "sid invalid" },
{ GID_ERR_OVERRIDE, "gid override" },
{ GID_ERR_SAVE, "gid save error" },
{ 0, 0 }
};
static const char *unknown = "unknown error number";
int i;
for (i = 0; errors[i].str != NULL; i++) {
if (errnum == errors[i].err)
return (errors[i].str);
}
return (unknown);
}

View File

@ -0,0 +1,114 @@
SHELL = /bin/sh
CC = g++
CC = gcc
#CC = ${MY_ENV_CC}
AR = ar
ARFL = rv
#ARFL = cru
RANLIB = ranlib
CFLAGS = -c -g -W -Wall -Wcast-qual -Wcast-align \
-Waggregate-return \
-Wno-long-long \
-Wpointer-arith -Werror -Wshadow -O2 \
-D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -D_USE_FAST_MACRO
#CFLAGS = -c -g -W -Wall -Wcast-qual -Wcast-align \
#-Waggregate-return -Wmissing-prototypes \
#-Wpointer-arith -Werror -Wshadow -O2 \
#-D_POSIX_PTHREAD_SEMANTICS -D_USE_FAST_MACRO
###########################################################
#Check system:
# Linux, SunOS, Solaris, BSD variants, AIX, HP-UX
SYSLIB = -lpthread -lcrypt -lz
CHECKSYSRES = @echo "Unknow system type!";exit 1
UNIXNAME = $(shell uname -sm)
OSTYPE = $(shell uname -p)
RPATH =
ifeq ($(CC),)
CC = gcc
endif
#Path for Linux
ifeq ($(findstring Linux, $(UNIXNAME)), Linux)
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DLINUX2 -D_REENTRANT -pedantic
ifeq ($(findstring i686, $(OSTYPE)), i686)
RPATH = linux32
FLAG_OS = LINUX32
endif
ifeq ($(findstring x86_64, $(OSTYPE)), x86_64)
RPATH = linux64
FLAG_OS = LINUX64
endif
endif
#Path for SunOS
ifeq ($(findstring SunOS, $(UNIXNAME)), SunOS)
ifeq ($(findstring 86, $(UNIXNAME)), 86)
SYSLIB += -lsocket -lnsl -lrt
endif
ifeq ($(findstring sun4u, $(UNIXNAME)), sun4u)
SYSLIB += -lsocket -lnsl -lrt
endif
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DSUNOS5 -D_REENTRANT -pedantic
endif
#Path for HP-UX
ifeq ($(findstring HP-UX, $(UNIXNAME)), HP-UX)
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DHP_UX -DHPUX11
PLAT_NAME=hp-ux
endif
#Find system type.
ifneq ($(SYSPATH),)
CHECKSYSRES = @echo "System is $(shell uname -sm)"
endif
###########################################################
BASE_PATH = ../../../build
INC_COMPILE = -I../include -I../../../../../lib_acl/include
LIB_COMPILE = -L../lib -l_gid -L../../../../../lib_acl/lib -L../../../../../lib_protocol/lib -l_protocol -l_acl
CFLAGS += $(INC_COMPILE)
###########################################################
OUT_PATH = .
OBJ_PATH = $(OUT_PATH)
#Project's objs
SRC = $(wildcard *.c)
OBJ = $(patsubst %.c, $(OBJ_PATH)/%.o, $(notdir $(SRC)))
###########################################################
PROG = gid_client
all: rm gid_client
.PHONY = gid_client clean
COMPILE = $(CC) $(CFLAGS)
$(PROG): $(OBJ)
$(CC) $(OBJ) $(LIB_COMPILE) $(SYSLIB) -o $(PROG)
# cp $(OBJ_PATH)/$(PROG) $(BASE_PATH)/dist/master/libexec
@echo ""
@echo "All ok! Output:$(PROG)"
@echo ""
$(OBJ_PATH)/%.o: %.c
$(COMPILE) $< -o $@
rm:
rm -f $(PROG)
clean:
rm -f $(PROG)
rm -f $(OBJ)

View File

@ -0,0 +1,153 @@
#include "lib_acl.h"
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#include "lib_gid.h"
static double stamp_sub(const struct timeval *from, const struct timeval *sub_by)
{
struct timeval res;
memcpy(&res, from, sizeof(struct timeval));
res.tv_usec -= sub_by->tv_usec;
if (res.tv_usec < 0) {
--res.tv_sec;
res.tv_usec += 1000000;
}
res.tv_sec -= sub_by->tv_sec;
return (res.tv_sec * 1000.0 + res.tv_usec/1000.0);
}
static void test_get_gid(const char *tag, int n)
{
int i, errnum;
acl_int64 gid = 0;
struct timeval begin, end;
double spent;
gettimeofday(&begin, NULL);
for (i = 0; i < n; i++) {
/* »ñµÃΨһ gid ºÅ */
gid = gid_next(tag, &errnum);
if (gid < 0) {
printf("error: %d, %s, gid: %lld\r\n",
errnum, gid_client_serror(errnum), gid);
break;
}
if (n <= 100)
printf("get gid: %lld\r\n", gid);
else if (i > 0 && i % 10000 == 0) {
printf(">> i: %d, gid: %llu\r\n", i, gid);
ACL_METER_TIME("---------");
}
}
gettimeofday(&end, NULL);
spent = stamp_sub(&end, &begin);
printf("total count: %d, curr gid: %lld, spent: %.2f, speed: %.2f\r\n",
n, gid, spent, (n * 1000) / (spent < 1 ? 1 : spent));
}
static const char *__tag = NULL;
static int __n = 0;
static void thread_main(void *ctx acl_unused)
{
test_get_gid(__tag, __n);
}
static void test_gets_gid(const char *tag, int n)
{
acl_pthread_pool_t *thrpool = acl_thread_pool_create(10, 30);
int i;
__tag = tag;
__n = n;
for (i = 0; i < 5; i++)
acl_pthread_pool_add(thrpool, thread_main, NULL);
acl_pthread_pool_destroy(thrpool);
}
static void usage(const char *progname)
{
printf("usage: %s -h[help] -s server_addr[127.0.0.1:7072]"
" -p protocol[cmdline|json|xml|]"
" -n count[100] -c cmd[get] -m[use mempool]"
" -t tag[default:sid] -P[use thread pool]\r\n", progname);
}
int main(int argc, char *argv[])
{
int ch, n = 100, proto = GID_PROTO_JSON;
int use_mempool = 0, use_concurrent = 0;
char addr[64], cmd[32], tag[32];
snprintf(addr, sizeof(addr), "127.0.0.1:7072");
snprintf(cmd, sizeof(cmd), "get");
snprintf(tag, sizeof(tag), "default");
while ((ch = getopt(argc, argv, "hs:p:n:c:t:mP")) > 0) {
switch (ch) {
case 'h':
usage(argv[0]);
return (0);
case 's':
snprintf(addr, sizeof(addr), "%s", optarg);
break;
case 'p':
if (strcasecmp(optarg, "cmdline") == 0)
proto = GID_PROTO_CMDLINE;
else if (strcasecmp(optarg, "json") == 0)
proto = GID_PROTO_JSON;
else if (strcasecmp(optarg, "xml") == 0)
proto = GID_PROTO_XML;
else {
printf("invalid proto: %s\r\n", optarg);
usage(argv[0]);
return (0);
}
break;
case 'n':
n = atoi(optarg);
break;
case 'c':
snprintf(cmd, sizeof(cmd), "%s", optarg);
break;
case 't':
snprintf(tag, sizeof(tag), "%s", optarg);
break;
case 'm':
use_mempool = 1;
break;
case 'P':
use_concurrent = 1;
break;
default:
break;
}
}
if (use_mempool)
acl_mem_slice_init(8, 1024, 100000,
ACL_SLICE_FLAG_GC2 |
ACL_SLICE_FLAG_RTGC_OFF |
ACL_SLICE_FLAG_LP64_ALIGN);
/* ³õʼ»¯ */
printf("proto: %d, addr: %s\n", proto, addr);
gid_client_init(proto, addr);
if (strcasecmp(cmd, "get") == 0) {
if (use_concurrent)
test_gets_gid(tag, n);
else
test_get_gid(tag, n);
} else
usage(argv[0]);
return (0);
}

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="jar/json-lib-2.4-jdk15.jar"/>
<classpathentry kind="lib" path="jar/commons-beanutils-1.8.3.jar"/>
<classpathentry kind="lib" path="jar/commons-collections-3.2.1.jar"/>
<classpathentry kind="lib" path="jar/commons-lang-2.6.jar"/>
<classpathentry kind="lib" path="jar/commons-logging-1.1.1.jar"/>
<classpathentry kind="lib" path="jar/ezmorph-1.0.6.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>GidClient</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,3 @@
#Fri Dec 02 10:23:44 CST 2011
eclipse.preferences.version=1
encoding/<project>=UTF-8

View File

@ -0,0 +1,23 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>所有类</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
</head>
<body>
<h1 class="bar">所有类</h1>
<div class="indexContainer">
<ul>
<li><a href="com/iker/gid/GidClient.html" title="com.iker.gid中的类" target="classFrame">GidClient</a></li>
<li><a href="com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类" target="classFrame">GidClientCmdLine</a></li>
<li><a href="com/iker/gid/GidClientJson.html" title="com.iker.gid中的类" target="classFrame">GidClientJson</a></li>
<li><a href="com/iker/gid/GidClientXml.html" title="com.iker.gid中的类" target="classFrame">GidClientXml</a></li>
<li><a href="com/iker/gid/GidStatus.html" title="com.iker.gid中的类" target="classFrame">GidStatus</a></li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,23 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>所有类</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
</head>
<body>
<h1 class="bar">所有类</h1>
<div class="indexContainer">
<ul>
<li><a href="com/iker/gid/GidClient.html" title="com.iker.gid中的类">GidClient</a></li>
<li><a href="com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类">GidClientCmdLine</a></li>
<li><a href="com/iker/gid/GidClientJson.html" title="com.iker.gid中的类">GidClientJson</a></li>
<li><a href="com/iker/gid/GidClientXml.html" title="com.iker.gid中的类">GidClientXml</a></li>
<li><a href="com/iker/gid/GidStatus.html" title="com.iker.gid中的类">GidStatus</a></li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,306 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>GidClient</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GidClient";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="class-use/GidClient.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个类</li>
<li><a href="../../../com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类"><span class="strong">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/GidClient.html" target="_top">框架</a></li>
<li><a href="GidClient.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">方法</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.iker.gid</div>
<h2 title="类 GidClient" class="title">类 GidClient</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>com.iker.gid.GidClient</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>直接已知子类:</dt>
<dd><a href="../../../com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类">GidClientCmdLine</a>, <a href="../../../com/iker/gid/GidClientJson.html" title="com.iker.gid中的类">GidClientJson</a>, <a href="../../../com/iker/gid/GidClientXml.html" title="com.iker.gid中的类">GidClientXml</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="strong">GidClient</span>
extends java.lang.Object</pre>
<div class="block">抽象接口</div>
<dl><dt><span class="strong">作者:</span></dt>
<dd>zsx</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>构造器概要</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="构造器概要表, 列表构造器和解释">
<caption><span>构造器</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">构造器和说明</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../com/iker/gid/GidClient.html#GidClient(java.lang.String, int, java.lang.String)">GidClient</a></strong>(java.lang.String&nbsp;ip,
int&nbsp;port,
java.lang.String&nbsp;tag)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>方法概要</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="方法概要表, 列表方法和解释">
<caption><span>方法</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">方法和说明</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>abstract long</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidClient.html#gidNext()">gidNext</a></strong>()</code>
<div class="block">获得下一个唯一ID号</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidClient.html#setConnectTimeout(int)">setConnectTimeout</a></strong>(int&nbsp;timeout)</code>
<div class="block">设置络连接时间</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidClient.html#setRdTimeout(int)">setRdTimeout</a></strong>(int&nbsp;timeout)</code>
<div class="block">设置IO读超时时间</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;java.lang.Object</h3>
<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>构造器详细资料</h3>
<a name="GidClient(java.lang.String, int, java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>GidClient</h4>
<pre>public&nbsp;GidClient(java.lang.String&nbsp;ip,
int&nbsp;port,
java.lang.String&nbsp;tag)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>方法详细资料</h3>
<a name="gidNext()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gidNext</h4>
<pre>public abstract&nbsp;long&nbsp;gidNext()</pre>
<div class="block">获得下一个唯一ID号</div>
<dl><dt><span class="strong">返回:</span></dt><dd>返回唯一的64位整数如果返回值 < 0 则表示出错</dd></dl>
</li>
</ul>
<a name="setRdTimeout(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRdTimeout</h4>
<pre>public&nbsp;void&nbsp;setRdTimeout(int&nbsp;timeout)</pre>
<div class="block">设置IO读超时时间</div>
<dl><dt><span class="strong">参数:</span></dt><dd><code>timeout</code> - 超时时间(单位为秒),如果不设置此时间,
则内部缺省值为30秒</dd></dl>
</li>
</ul>
<a name="setConnectTimeout(int)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setConnectTimeout</h4>
<pre>public&nbsp;void&nbsp;setConnectTimeout(int&nbsp;timeout)</pre>
<div class="block">设置络连接时间</div>
<dl><dt><span class="strong">参数:</span></dt><dd><code>timeout</code> - 超时时间(单位为秒),如果不设置此时间,
则内部缺省值为10秒</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="class-use/GidClient.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个类</li>
<li><a href="../../../com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类"><span class="strong">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/GidClient.html" target="_top">框架</a></li>
<li><a href="GidClient.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">方法</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,234 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>GidClientCmdLine.NameValue</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GidClientCmdLine.NameValue";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="class-use/GidClientCmdLine.NameValue.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类"><span class="strong">上一个类</span></a></li>
<li><a href="../../../com/iker/gid/GidClientCmdLine.Tokens.html" title="com.iker.gid中的类"><span class="strong">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/GidClientCmdLine.NameValue.html" target="_top">框架</a></li>
<li><a href="GidClientCmdLine.NameValue.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#methods_inherited_from_class_java.lang.Object">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">构造器</a>&nbsp;|&nbsp;</li>
<li>方法</li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.iker.gid</div>
<h2 title="类 GidClientCmdLine.NameValue" class="title">类 GidClientCmdLine.NameValue</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>com.iker.gid.GidClientCmdLine.NameValue</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>封闭类:</dt>
<dd><a href="../../../com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类">GidClientCmdLine</a></dd>
</dl>
<hr>
<br>
<pre>public final class <span class="strong">GidClientCmdLine.NameValue</span>
extends java.lang.Object</pre>
<div class="block">name-value 对类型类</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>构造器概要</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="构造器概要表, 列表构造器和解释">
<caption><span>构造器</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">构造器和说明</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../com/iker/gid/GidClientCmdLine.NameValue.html#GidClientCmdLine.NameValue(java.lang.String, java.lang.String)">GidClientCmdLine.NameValue</a></strong>(java.lang.String&nbsp;name,
java.lang.String&nbsp;value)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>方法概要</h3>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;java.lang.Object</h3>
<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>构造器详细资料</h3>
<a name="GidClientCmdLine.NameValue(java.lang.String, java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>GidClientCmdLine.NameValue</h4>
<pre>public&nbsp;GidClientCmdLine.NameValue(java.lang.String&nbsp;name,
java.lang.String&nbsp;value)</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="class-use/GidClientCmdLine.NameValue.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类"><span class="strong">上一个类</span></a></li>
<li><a href="../../../com/iker/gid/GidClientCmdLine.Tokens.html" title="com.iker.gid中的类"><span class="strong">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/GidClientCmdLine.NameValue.html" target="_top">框架</a></li>
<li><a href="GidClientCmdLine.NameValue.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#methods_inherited_from_class_java.lang.Object">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">构造器</a>&nbsp;|&nbsp;</li>
<li>方法</li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,287 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>GidClientCmdLine.Tokens</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GidClientCmdLine.Tokens";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="class-use/GidClientCmdLine.Tokens.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../com/iker/gid/GidClientCmdLine.NameValue.html" title="com.iker.gid中的类"><span class="strong">上一个类</span></a></li>
<li><a href="../../../com/iker/gid/GidClientJson.html" title="com.iker.gid中的类"><span class="strong">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/GidClientCmdLine.Tokens.html" target="_top">框架</a></li>
<li><a href="GidClientCmdLine.Tokens.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">方法</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.iker.gid</div>
<h2 title="类 GidClientCmdLine.Tokens" class="title">类 GidClientCmdLine.Tokens</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>com.iker.gid.GidClientCmdLine.Tokens</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>封闭类:</dt>
<dd><a href="../../../com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类">GidClientCmdLine</a></dd>
</dl>
<hr>
<br>
<pre>public final class <span class="strong">GidClientCmdLine.Tokens</span>
extends java.lang.Object</pre>
<div class="block">拆分字符串的类,该类将“名值”对进行拆分,数据格式为:
name1^value1|name2^value2|...</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>构造器概要</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="构造器概要表, 列表构造器和解释">
<caption><span>构造器</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">构造器和说明</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../com/iker/gid/GidClientCmdLine.Tokens.html#GidClientCmdLine.Tokens(java.lang.String)">GidClientCmdLine.Tokens</a></strong>(java.lang.String&nbsp;content)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>方法概要</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="方法概要表, 列表方法和解释">
<caption><span>方法</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">方法和说明</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidClientCmdLine.Tokens.html#getInt(java.lang.String)">getInt</a></strong>(java.lang.String&nbsp;name)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidClientCmdLine.Tokens.html#getLong(java.lang.String)">getLong</a></strong>(java.lang.String&nbsp;name)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidClientCmdLine.Tokens.html#getString(java.lang.String)">getString</a></strong>(java.lang.String&nbsp;name)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;java.lang.Object</h3>
<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>构造器详细资料</h3>
<a name="GidClientCmdLine.Tokens(java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>GidClientCmdLine.Tokens</h4>
<pre>public&nbsp;GidClientCmdLine.Tokens(java.lang.String&nbsp;content)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>方法详细资料</h3>
<a name="getString(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getString</h4>
<pre>public&nbsp;java.lang.String&nbsp;getString(java.lang.String&nbsp;name)</pre>
</li>
</ul>
<a name="getLong(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLong</h4>
<pre>public&nbsp;long&nbsp;getLong(java.lang.String&nbsp;name)</pre>
</li>
</ul>
<a name="getInt(java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getInt</h4>
<pre>public&nbsp;int&nbsp;getInt(java.lang.String&nbsp;name)</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="class-use/GidClientCmdLine.Tokens.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../com/iker/gid/GidClientCmdLine.NameValue.html" title="com.iker.gid中的类"><span class="strong">上一个类</span></a></li>
<li><a href="../../../com/iker/gid/GidClientJson.html" title="com.iker.gid中的类"><span class="strong">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/GidClientCmdLine.Tokens.html" target="_top">框架</a></li>
<li><a href="GidClientCmdLine.Tokens.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">方法</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,324 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>GidClientCmdLine</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GidClientCmdLine";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="class-use/GidClientCmdLine.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类"><span class="strong">上一个类</span></a></li>
<li><a href="../../../com/iker/gid/GidClientCmdLine.NameValue.html" title="com.iker.gid中的类"><span class="strong">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/GidClientCmdLine.html" target="_top">框架</a></li>
<li><a href="GidClientCmdLine.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li><a href="#nested_class_summary">嵌套</a>&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">方法</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.iker.gid</div>
<h2 title="类 GidClientCmdLine" class="title">类 GidClientCmdLine</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类">com.iker.gid.GidClient</a></li>
<li>
<ul class="inheritance">
<li>com.iker.gid.GidClientCmdLine</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <span class="strong">GidClientCmdLine</span>
extends <a href="../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类">GidClient</a></pre>
<div class="block">命令行方式从GID服务器取得唯一ID号是否应该使用该方式取得唯一ID号
应该取决于服务器的配置选项</div>
<dl><dt><span class="strong">作者:</span></dt>
<dd>zsx</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested_class_summary">
<!-- -->
</a>
<h3>嵌套类概要</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="嵌套类概要表, 列表嵌套类和解释">
<caption><span>嵌套类</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">类和说明</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidClientCmdLine.NameValue.html" title="com.iker.gid中的类">GidClientCmdLine.NameValue</a></strong></code>
<div class="block">name-value 对类型类</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidClientCmdLine.Tokens.html" title="com.iker.gid中的类">GidClientCmdLine.Tokens</a></strong></code>
<div class="block">拆分字符串的类,该类将“名值”对进行拆分,数据格式为:
name1^value1|name2^value2|...</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>构造器概要</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="构造器概要表, 列表构造器和解释">
<caption><span>构造器</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">构造器和说明</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../com/iker/gid/GidClientCmdLine.html#GidClientCmdLine(java.lang.String, int, java.lang.String)">GidClientCmdLine</a></strong>(java.lang.String&nbsp;ip,
int&nbsp;port,
java.lang.String&nbsp;tag)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>方法概要</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="方法概要表, 列表方法和解释">
<caption><span>方法</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">方法和说明</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidClientCmdLine.html#gidNext()">gidNext</a></strong>()</code>
<div class="block">获得下一个唯一ID号</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidClientCmdLine.html#main(java.lang.String[])">main</a></strong>(java.lang.String[]&nbsp;args)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_com.iker.gid.GidClient">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;com.iker.gid.<a href="../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类">GidClient</a></h3>
<code><a href="../../../com/iker/gid/GidClient.html#setConnectTimeout(int)">setConnectTimeout</a>, <a href="../../../com/iker/gid/GidClient.html#setRdTimeout(int)">setRdTimeout</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;java.lang.Object</h3>
<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>构造器详细资料</h3>
<a name="GidClientCmdLine(java.lang.String, int, java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>GidClientCmdLine</h4>
<pre>public&nbsp;GidClientCmdLine(java.lang.String&nbsp;ip,
int&nbsp;port,
java.lang.String&nbsp;tag)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>方法详细资料</h3>
<a name="gidNext()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gidNext</h4>
<pre>public&nbsp;long&nbsp;gidNext()</pre>
<div class="block"><strong>从类复制的说明:&nbsp;<code><a href="../../../com/iker/gid/GidClient.html#gidNext()">GidClient</a></code></strong></div>
<div class="block">获得下一个唯一ID号</div>
<dl>
<dt><strong>指定者:</strong></dt>
<dd><code><a href="../../../com/iker/gid/GidClient.html#gidNext()">gidNext</a></code>&nbsp;在类中&nbsp;<code><a href="../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类">GidClient</a></code></dd>
<dt><span class="strong">返回:</span></dt><dd>返回唯一的64位整数如果返回值 < 0 则表示出错</dd></dl>
</li>
</ul>
<a name="main(java.lang.String[])">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>main</h4>
<pre>public static&nbsp;void&nbsp;main(java.lang.String[]&nbsp;args)</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="class-use/GidClientCmdLine.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类"><span class="strong">上一个类</span></a></li>
<li><a href="../../../com/iker/gid/GidClientCmdLine.NameValue.html" title="com.iker.gid中的类"><span class="strong">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/GidClientCmdLine.html" target="_top">框架</a></li>
<li><a href="GidClientCmdLine.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li><a href="#nested_class_summary">嵌套</a>&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">方法</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,296 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>GidClientJson</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GidClientJson";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="class-use/GidClientJson.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../com/iker/gid/GidClientCmdLine.Tokens.html" title="com.iker.gid中的类"><span class="strong">上一个类</span></a></li>
<li><a href="../../../com/iker/gid/GidClientXml.html" title="com.iker.gid中的类"><span class="strong">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/GidClientJson.html" target="_top">框架</a></li>
<li><a href="GidClientJson.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">方法</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.iker.gid</div>
<h2 title="类 GidClientJson" class="title">类 GidClientJson</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类">com.iker.gid.GidClient</a></li>
<li>
<ul class="inheritance">
<li>com.iker.gid.GidClientJson</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <span class="strong">GidClientJson</span>
extends <a href="../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类">GidClient</a></pre>
<div class="block">按 JSON 数据格式获得GID若要使用此方式取得唯一ID则服务器
必须是启用了HTTP协议访问方式</div>
<dl><dt><span class="strong">作者:</span></dt>
<dd>zsx</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>构造器概要</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="构造器概要表, 列表构造器和解释">
<caption><span>构造器</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">构造器和说明</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../com/iker/gid/GidClientJson.html#GidClientJson(java.lang.String, int, java.lang.String)">GidClientJson</a></strong>(java.lang.String&nbsp;ip,
int&nbsp;port,
java.lang.String&nbsp;tag)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>方法概要</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="方法概要表, 列表方法和解释">
<caption><span>方法</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">方法和说明</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidClientJson.html#gidNext()">gidNext</a></strong>()</code>
<div class="block">获得下一个唯一ID号</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidClientJson.html#main(java.lang.String[])">main</a></strong>(java.lang.String[]&nbsp;args)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_com.iker.gid.GidClient">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;com.iker.gid.<a href="../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类">GidClient</a></h3>
<code><a href="../../../com/iker/gid/GidClient.html#setConnectTimeout(int)">setConnectTimeout</a>, <a href="../../../com/iker/gid/GidClient.html#setRdTimeout(int)">setRdTimeout</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;java.lang.Object</h3>
<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>构造器详细资料</h3>
<a name="GidClientJson(java.lang.String, int, java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>GidClientJson</h4>
<pre>public&nbsp;GidClientJson(java.lang.String&nbsp;ip,
int&nbsp;port,
java.lang.String&nbsp;tag)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>方法详细资料</h3>
<a name="gidNext()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gidNext</h4>
<pre>public&nbsp;long&nbsp;gidNext()</pre>
<div class="block"><strong>从类复制的说明:&nbsp;<code><a href="../../../com/iker/gid/GidClient.html#gidNext()">GidClient</a></code></strong></div>
<div class="block">获得下一个唯一ID号</div>
<dl>
<dt><strong>指定者:</strong></dt>
<dd><code><a href="../../../com/iker/gid/GidClient.html#gidNext()">gidNext</a></code>&nbsp;在类中&nbsp;<code><a href="../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类">GidClient</a></code></dd>
<dt><span class="strong">返回:</span></dt><dd>返回唯一的64位整数如果返回值 < 0 则表示出错</dd></dl>
</li>
</ul>
<a name="main(java.lang.String[])">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>main</h4>
<pre>public static&nbsp;void&nbsp;main(java.lang.String[]&nbsp;args)</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="class-use/GidClientJson.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../com/iker/gid/GidClientCmdLine.Tokens.html" title="com.iker.gid中的类"><span class="strong">上一个类</span></a></li>
<li><a href="../../../com/iker/gid/GidClientXml.html" title="com.iker.gid中的类"><span class="strong">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/GidClientJson.html" target="_top">框架</a></li>
<li><a href="GidClientJson.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">方法</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,296 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>GidClientXml</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GidClientXml";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="class-use/GidClientXml.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../com/iker/gid/GidClientJson.html" title="com.iker.gid中的类"><span class="strong">上一个类</span></a></li>
<li><a href="../../../com/iker/gid/GidStatus.html" title="com.iker.gid中的类"><span class="strong">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/GidClientXml.html" target="_top">框架</a></li>
<li><a href="GidClientXml.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">方法</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.iker.gid</div>
<h2 title="类 GidClientXml" class="title">类 GidClientXml</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类">com.iker.gid.GidClient</a></li>
<li>
<ul class="inheritance">
<li>com.iker.gid.GidClientXml</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <span class="strong">GidClientXml</span>
extends <a href="../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类">GidClient</a></pre>
<div class="block">按XML格式获得GID数据若要使用此方式取得唯一ID则服务器
必须是启用了HTTP协议访问方式</div>
<dl><dt><span class="strong">作者:</span></dt>
<dd>zsx</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>构造器概要</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="构造器概要表, 列表构造器和解释">
<caption><span>构造器</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">构造器和说明</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../com/iker/gid/GidClientXml.html#GidClientXml(java.lang.String, int, java.lang.String)">GidClientXml</a></strong>(java.lang.String&nbsp;ip,
int&nbsp;port,
java.lang.String&nbsp;tag)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>方法概要</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="方法概要表, 列表方法和解释">
<caption><span>方法</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">方法和说明</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidClientXml.html#gidNext()">gidNext</a></strong>()</code>
<div class="block">获得下一个唯一ID号</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidClientXml.html#main(java.lang.String[])">main</a></strong>(java.lang.String[]&nbsp;args)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_com.iker.gid.GidClient">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;com.iker.gid.<a href="../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类">GidClient</a></h3>
<code><a href="../../../com/iker/gid/GidClient.html#setConnectTimeout(int)">setConnectTimeout</a>, <a href="../../../com/iker/gid/GidClient.html#setRdTimeout(int)">setRdTimeout</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;java.lang.Object</h3>
<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>构造器详细资料</h3>
<a name="GidClientXml(java.lang.String, int, java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>GidClientXml</h4>
<pre>public&nbsp;GidClientXml(java.lang.String&nbsp;ip,
int&nbsp;port,
java.lang.String&nbsp;tag)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>方法详细资料</h3>
<a name="gidNext()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gidNext</h4>
<pre>public&nbsp;long&nbsp;gidNext()</pre>
<div class="block"><strong>从类复制的说明:&nbsp;<code><a href="../../../com/iker/gid/GidClient.html#gidNext()">GidClient</a></code></strong></div>
<div class="block">获得下一个唯一ID号</div>
<dl>
<dt><strong>指定者:</strong></dt>
<dd><code><a href="../../../com/iker/gid/GidClient.html#gidNext()">gidNext</a></code>&nbsp;在类中&nbsp;<code><a href="../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类">GidClient</a></code></dd>
<dt><span class="strong">返回:</span></dt><dd>返回唯一的64位整数如果返回值 < 0 则表示出错</dd></dl>
</li>
</ul>
<a name="main(java.lang.String[])">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>main</h4>
<pre>public static&nbsp;void&nbsp;main(java.lang.String[]&nbsp;args)</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="class-use/GidClientXml.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../com/iker/gid/GidClientJson.html" title="com.iker.gid中的类"><span class="strong">上一个类</span></a></li>
<li><a href="../../../com/iker/gid/GidStatus.html" title="com.iker.gid中的类"><span class="strong">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/GidClientXml.html" target="_top">框架</a></li>
<li><a href="GidClientXml.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">方法</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,412 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>GidStatus</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GidStatus";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="class-use/GidStatus.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../com/iker/gid/GidClientXml.html" title="com.iker.gid中的类"><span class="strong">上一个类</span></a></li>
<li>下一个类</li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/GidStatus.html" target="_top">框架</a></li>
<li><a href="GidStatus.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li><a href="#field_summary">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li><a href="#field_detail">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">方法</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.iker.gid</div>
<h2 title="类 GidStatus" class="title">类 GidStatus</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>com.iker.gid.GidStatus</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <span class="strong">GidStatus</span>
extends java.lang.Object</pre>
<dl><dt><span class="strong">作者:</span></dt>
<dd>zsx
该类主要定义了GID的错误号以及将错误号转为字符串描述信息的内容</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>字段概要</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="字段概要表, 列表字段和解释">
<caption><span>字段</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">字段和说明</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidStatus.html#gidErrConn">gidErrConn</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidStatus.html#gidErrInit">gidErrInit</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidStatus.html#gidErrIo">gidErrIo</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidStatus.html#gidErrOverride">gidErrOverride</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidStatus.html#gidErrProto">gidErrProto</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidStatus.html#gidErrSave">gidErrSave</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidStatus.html#gidErrServer">gidErrServer</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidStatus.html#gidErrSid">gidErrSid</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidStatus.html#gidOk">gidOk</a></strong></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>构造器概要</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="构造器概要表, 列表构造器和解释">
<caption><span>构造器</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">构造器和说明</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../com/iker/gid/GidStatus.html#GidStatus()">GidStatus</a></strong>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>方法概要</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="方法概要表, 列表方法和解释">
<caption><span>方法</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">方法和说明</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../com/iker/gid/GidStatus.html#toString(int)">toString</a></strong>(int&nbsp;gidStatus)</code>
<div class="block">将错误号转为字符串描述信息</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;java.lang.Object</h3>
<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!-- -->
</a>
<h3>字段详细资料</h3>
<a name="gidOk">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gidOk</h4>
<pre>public static final&nbsp;int gidOk</pre>
<dl><dt><span class="strong">另请参阅:</span></dt><dd><a href="../../../constant-values.html#com.iker.gid.GidStatus.gidOk">常量字段值</a></dd></dl>
</li>
</ul>
<a name="gidErrInit">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gidErrInit</h4>
<pre>public static final&nbsp;int gidErrInit</pre>
<dl><dt><span class="strong">另请参阅:</span></dt><dd><a href="../../../constant-values.html#com.iker.gid.GidStatus.gidErrInit">常量字段值</a></dd></dl>
</li>
</ul>
<a name="gidErrConn">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gidErrConn</h4>
<pre>public static final&nbsp;int gidErrConn</pre>
<dl><dt><span class="strong">另请参阅:</span></dt><dd><a href="../../../constant-values.html#com.iker.gid.GidStatus.gidErrConn">常量字段值</a></dd></dl>
</li>
</ul>
<a name="gidErrIo">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gidErrIo</h4>
<pre>public static final&nbsp;int gidErrIo</pre>
<dl><dt><span class="strong">另请参阅:</span></dt><dd><a href="../../../constant-values.html#com.iker.gid.GidStatus.gidErrIo">常量字段值</a></dd></dl>
</li>
</ul>
<a name="gidErrProto">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gidErrProto</h4>
<pre>public static final&nbsp;int gidErrProto</pre>
<dl><dt><span class="strong">另请参阅:</span></dt><dd><a href="../../../constant-values.html#com.iker.gid.GidStatus.gidErrProto">常量字段值</a></dd></dl>
</li>
</ul>
<a name="gidErrServer">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gidErrServer</h4>
<pre>public static final&nbsp;int gidErrServer</pre>
<dl><dt><span class="strong">另请参阅:</span></dt><dd><a href="../../../constant-values.html#com.iker.gid.GidStatus.gidErrServer">常量字段值</a></dd></dl>
</li>
</ul>
<a name="gidErrSid">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gidErrSid</h4>
<pre>public static final&nbsp;int gidErrSid</pre>
<dl><dt><span class="strong">另请参阅:</span></dt><dd><a href="../../../constant-values.html#com.iker.gid.GidStatus.gidErrSid">常量字段值</a></dd></dl>
</li>
</ul>
<a name="gidErrOverride">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gidErrOverride</h4>
<pre>public static final&nbsp;int gidErrOverride</pre>
<dl><dt><span class="strong">另请参阅:</span></dt><dd><a href="../../../constant-values.html#com.iker.gid.GidStatus.gidErrOverride">常量字段值</a></dd></dl>
</li>
</ul>
<a name="gidErrSave">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>gidErrSave</h4>
<pre>public static final&nbsp;int gidErrSave</pre>
<dl><dt><span class="strong">另请参阅:</span></dt><dd><a href="../../../constant-values.html#com.iker.gid.GidStatus.gidErrSave">常量字段值</a></dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>构造器详细资料</h3>
<a name="GidStatus()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>GidStatus</h4>
<pre>public&nbsp;GidStatus()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>方法详细资料</h3>
<a name="toString(int)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre>public static&nbsp;java.lang.String&nbsp;toString(int&nbsp;gidStatus)</pre>
<div class="block">将错误号转为字符串描述信息</div>
<dl><dt><span class="strong">参数:</span></dt><dd><code>gidStatus</code> - </dd>
<dt><span class="strong">返回:</span></dt><dd>String</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="class-use/GidStatus.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../com/iker/gid/GidClientXml.html" title="com.iker.gid中的类"><span class="strong">上一个类</span></a></li>
<li>下一个类</li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/GidStatus.html" target="_top">框架</a></li>
<li><a href="GidStatus.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li><a href="#field_summary">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li><a href="#field_detail">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">方法</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,156 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>类 com.iker.gid.GidClient的使用</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="类 com.iker.gid.GidClient的使用";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../com/iker/gid/package-summary.html">程序包</a></li>
<li><a href="../../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类"></a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/iker/gid/\class-useGidClient.html" target="_top">框架</a></li>
<li><a href="GidClient.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="类 com.iker.gid.GidClient 的使用" class="title">类 com.iker.gid.GidClient<br>的使用</h2>
</div>
<div class="classUseContainer">
<ul class="blockList">
<li class="blockList">
<ul class="blockList">
<li class="blockList"><a name="com.iker.gid">
<!-- -->
</a>
<h3><a href="../../../../com/iker/gid/package-summary.html">com.iker.gid</a><a href="../../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类">GidClient</a>的使用</h3>
<table border="0" cellpadding="3" cellspacing="0" summary="使用表, 列表子类和解释">
<caption><span><a href="../../../../com/iker/gid/package-summary.html">com.iker.gid</a><a href="../../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类">GidClient</a>的子类</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">类和说明</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类">GidClientCmdLine</a></strong></code>
<div class="block">命令行方式从GID服务器取得唯一ID号是否应该使用该方式取得唯一ID号
应该取决于服务器的配置选项</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../com/iker/gid/GidClientJson.html" title="com.iker.gid中的类">GidClientJson</a></strong></code>
<div class="block">按 JSON 数据格式获得GID若要使用此方式取得唯一ID则服务器
必须是启用了HTTP协议访问方式</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../com/iker/gid/GidClientXml.html" title="com.iker.gid中的类">GidClientXml</a></strong></code>
<div class="block">按XML格式获得GID数据若要使用此方式取得唯一ID则服务器
必须是启用了HTTP协议访问方式</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../com/iker/gid/package-summary.html">程序包</a></li>
<li><a href="../../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类"></a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/iker/gid/\class-useGidClient.html" target="_top">框架</a></li>
<li><a href="GidClient.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,114 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>类 com.iker.gid.GidClientCmdLine.NameValue的使用</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="类 com.iker.gid.GidClientCmdLine.NameValue的使用";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../com/iker/gid/package-summary.html">程序包</a></li>
<li><a href="../../../../com/iker/gid/GidClientCmdLine.NameValue.html" title="com.iker.gid中的类"></a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/iker/gid/\class-useGidClientCmdLine.NameValue.html" target="_top">框架</a></li>
<li><a href="GidClientCmdLine.NameValue.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="类 com.iker.gid.GidClientCmdLine.NameValue 的使用" class="title">类 com.iker.gid.GidClientCmdLine.NameValue<br>的使用</h2>
</div>
<div class="classUseContainer">没有com.iker.gid.GidClientCmdLine.NameValue的用法</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../com/iker/gid/package-summary.html">程序包</a></li>
<li><a href="../../../../com/iker/gid/GidClientCmdLine.NameValue.html" title="com.iker.gid中的类"></a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/iker/gid/\class-useGidClientCmdLine.NameValue.html" target="_top">框架</a></li>
<li><a href="GidClientCmdLine.NameValue.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,114 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>类 com.iker.gid.GidClientCmdLine.Tokens的使用</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="类 com.iker.gid.GidClientCmdLine.Tokens的使用";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../com/iker/gid/package-summary.html">程序包</a></li>
<li><a href="../../../../com/iker/gid/GidClientCmdLine.Tokens.html" title="com.iker.gid中的类"></a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/iker/gid/\class-useGidClientCmdLine.Tokens.html" target="_top">框架</a></li>
<li><a href="GidClientCmdLine.Tokens.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="类 com.iker.gid.GidClientCmdLine.Tokens 的使用" class="title">类 com.iker.gid.GidClientCmdLine.Tokens<br>的使用</h2>
</div>
<div class="classUseContainer">没有com.iker.gid.GidClientCmdLine.Tokens的用法</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../com/iker/gid/package-summary.html">程序包</a></li>
<li><a href="../../../../com/iker/gid/GidClientCmdLine.Tokens.html" title="com.iker.gid中的类"></a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/iker/gid/\class-useGidClientCmdLine.Tokens.html" target="_top">框架</a></li>
<li><a href="GidClientCmdLine.Tokens.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,114 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>类 com.iker.gid.GidClientCmdLine的使用</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="类 com.iker.gid.GidClientCmdLine的使用";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../com/iker/gid/package-summary.html">程序包</a></li>
<li><a href="../../../../com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类"></a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/iker/gid/\class-useGidClientCmdLine.html" target="_top">框架</a></li>
<li><a href="GidClientCmdLine.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="类 com.iker.gid.GidClientCmdLine 的使用" class="title">类 com.iker.gid.GidClientCmdLine<br>的使用</h2>
</div>
<div class="classUseContainer">没有com.iker.gid.GidClientCmdLine的用法</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../com/iker/gid/package-summary.html">程序包</a></li>
<li><a href="../../../../com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类"></a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/iker/gid/\class-useGidClientCmdLine.html" target="_top">框架</a></li>
<li><a href="GidClientCmdLine.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,114 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>类 com.iker.gid.GidClientJson的使用</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="类 com.iker.gid.GidClientJson的使用";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../com/iker/gid/package-summary.html">程序包</a></li>
<li><a href="../../../../com/iker/gid/GidClientJson.html" title="com.iker.gid中的类"></a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/iker/gid/\class-useGidClientJson.html" target="_top">框架</a></li>
<li><a href="GidClientJson.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="类 com.iker.gid.GidClientJson 的使用" class="title">类 com.iker.gid.GidClientJson<br>的使用</h2>
</div>
<div class="classUseContainer">没有com.iker.gid.GidClientJson的用法</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../com/iker/gid/package-summary.html">程序包</a></li>
<li><a href="../../../../com/iker/gid/GidClientJson.html" title="com.iker.gid中的类"></a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/iker/gid/\class-useGidClientJson.html" target="_top">框架</a></li>
<li><a href="GidClientJson.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,114 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>类 com.iker.gid.GidClientXml的使用</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="类 com.iker.gid.GidClientXml的使用";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../com/iker/gid/package-summary.html">程序包</a></li>
<li><a href="../../../../com/iker/gid/GidClientXml.html" title="com.iker.gid中的类"></a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/iker/gid/\class-useGidClientXml.html" target="_top">框架</a></li>
<li><a href="GidClientXml.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="类 com.iker.gid.GidClientXml 的使用" class="title">类 com.iker.gid.GidClientXml<br>的使用</h2>
</div>
<div class="classUseContainer">没有com.iker.gid.GidClientXml的用法</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../com/iker/gid/package-summary.html">程序包</a></li>
<li><a href="../../../../com/iker/gid/GidClientXml.html" title="com.iker.gid中的类"></a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/iker/gid/\class-useGidClientXml.html" target="_top">框架</a></li>
<li><a href="GidClientXml.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,114 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>类 com.iker.gid.GidStatus的使用</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="类 com.iker.gid.GidStatus的使用";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../com/iker/gid/package-summary.html">程序包</a></li>
<li><a href="../../../../com/iker/gid/GidStatus.html" title="com.iker.gid中的类"></a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/iker/gid/\class-useGidStatus.html" target="_top">框架</a></li>
<li><a href="GidStatus.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="类 com.iker.gid.GidStatus 的使用" class="title">类 com.iker.gid.GidStatus<br>的使用</h2>
</div>
<div class="classUseContainer">没有com.iker.gid.GidStatus的用法</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../com/iker/gid/package-summary.html">程序包</a></li>
<li><a href="../../../../com/iker/gid/GidStatus.html" title="com.iker.gid中的类"></a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/iker/gid/\class-useGidStatus.html" target="_top">框架</a></li>
<li><a href="GidStatus.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,24 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>com.iker.gid</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
</head>
<body>
<h1 class="bar"><a href="../../../com/iker/gid/package-summary.html" target="classFrame">com.iker.gid</a></h1>
<div class="indexContainer">
<h2 title="类"></h2>
<ul title="类">
<li><a href="GidClient.html" title="com.iker.gid中的类" target="classFrame">GidClient</a></li>
<li><a href="GidClientCmdLine.html" title="com.iker.gid中的类" target="classFrame">GidClientCmdLine</a></li>
<li><a href="GidClientJson.html" title="com.iker.gid中的类" target="classFrame">GidClientJson</a></li>
<li><a href="GidClientXml.html" title="com.iker.gid中的类" target="classFrame">GidClientXml</a></li>
<li><a href="GidStatus.html" title="com.iker.gid中的类" target="classFrame">GidStatus</a></li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,159 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>com.iker.gid</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="com.iker.gid";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li><a href="package-use.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个程序包</li>
<li>下一个程序包</li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/package-summary.html" target="_top">框架</a></li>
<li><a href="package-summary.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="程序包" class="title">程序包&nbsp;com.iker.gid</h1>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="类概要表, 列表类和解释">
<caption><span>类概要</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col"></th>
<th class="colLast" scope="col">说明</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类">GidClient</a></td>
<td class="colLast">
<div class="block">抽象接口</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类">GidClientCmdLine</a></td>
<td class="colLast">
<div class="block">命令行方式从GID服务器取得唯一ID号是否应该使用该方式取得唯一ID号
应该取决于服务器的配置选项</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../com/iker/gid/GidClientJson.html" title="com.iker.gid中的类">GidClientJson</a></td>
<td class="colLast">
<div class="block">按 JSON 数据格式获得GID若要使用此方式取得唯一ID则服务器
必须是启用了HTTP协议访问方式</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../com/iker/gid/GidClientXml.html" title="com.iker.gid中的类">GidClientXml</a></td>
<td class="colLast">
<div class="block">按XML格式获得GID数据若要使用此方式取得唯一ID则服务器
必须是启用了HTTP协议访问方式</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../com/iker/gid/GidStatus.html" title="com.iker.gid中的类">GidStatus</a></td>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li><a href="package-use.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个程序包</li>
<li>下一个程序包</li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/package-summary.html" target="_top">框架</a></li>
<li><a href="package-summary.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,132 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>com.iker.gid 类分层结构</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="com.iker.gid 类分层结构";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li class="navBarCell1Rev"></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/package-tree.html" target="_top">框架</a></li>
<li><a href="package-tree.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">程序包com.iker.gid的分层结构</h1>
</div>
<div class="contentContainer">
<h2 title="类分层结构">类分层结构</h2>
<ul>
<li type="circle">java.lang.Object
<ul>
<li type="circle">com.iker.gid.<a href="../../../com/iker/gid/GidClient.html" title="com.iker.gid中的类"><span class="strong">GidClient</span></a>
<ul>
<li type="circle">com.iker.gid.<a href="../../../com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类"><span class="strong">GidClientCmdLine</span></a></li>
<li type="circle">com.iker.gid.<a href="../../../com/iker/gid/GidClientJson.html" title="com.iker.gid中的类"><span class="strong">GidClientJson</span></a></li>
<li type="circle">com.iker.gid.<a href="../../../com/iker/gid/GidClientXml.html" title="com.iker.gid中的类"><span class="strong">GidClientXml</span></a></li>
</ul>
</li>
<li type="circle">com.iker.gid.<a href="../../../com/iker/gid/GidClientCmdLine.NameValue.html" title="com.iker.gid中的类"><span class="strong">GidClientCmdLine.NameValue</span></a></li>
<li type="circle">com.iker.gid.<a href="../../../com/iker/gid/GidClientCmdLine.Tokens.html" title="com.iker.gid中的类"><span class="strong">GidClientCmdLine.Tokens</span></a></li>
<li type="circle">com.iker.gid.<a href="../../../com/iker/gid/GidStatus.html" title="com.iker.gid中的类"><span class="strong">GidStatus</span></a></li>
</ul>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li class="navBarCell1Rev"></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/package-tree.html" target="_top">框架</a></li>
<li><a href="package-tree.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,134 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>程序包 com.iker.gid的使用</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="程序包 com.iker.gid的使用";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/package-use.html" target="_top">框架</a></li>
<li><a href="package-use.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="程序包 com.iker.gid 的使用" class="title">程序包 com.iker.gid<br>的使用</h1>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList"><a name="com.iker.gid">
<!-- -->
</a>
<table border="0" cellpadding="3" cellspacing="0" summary="使用表, 列表类和解释">
<caption><span><a href="../../../com/iker/gid/package-summary.html">com.iker.gid</a>使用的<a href="../../../com/iker/gid/package-summary.html">com.iker.gid</a>中的类</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">类和说明</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="../../../com/iker/gid/class-use/GidClient.html#com.iker.gid">GidClient</a>
<div class="block">抽象接口</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/iker/gid/package-use.html" target="_top">框架</a></li>
<li><a href="package-use.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,199 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>常量字段值</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="常量字段值";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="com/iker/gid/package-tree.html"></a></li>
<li><a href="deprecated-list.html">已过时</a></li>
<li><a href="index-files/index-1.html">索引</a></li>
<li><a href="help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="index.html?constant-values.html" target="_top">框架</a></li>
<li><a href="constant-values.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="常量字段值" class="title">常量字段值</h1>
<h2 title="目录">目录</h2>
<ul>
<li><a href="#com.iker">com.iker.*</a></li>
</ul>
</div>
<div class="constantValuesContainer"><a name="com.iker">
<!-- -->
</a>
<h2 title="com.iker">com.iker.*</h2>
<ul class="blockList">
<li class="blockList">
<table border="0" cellpadding="3" cellspacing="0" summary="常量字段值表, 列表常量字段和值">
<caption><span>com.iker.gid.<a href="com/iker/gid/GidStatus.html" title="com.iker.gid中的类">GidStatus</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th scope="col">常量字段</th>
<th class="colLast" scope="col"></th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a name="com.iker.gid.GidStatus.gidErrConn">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<td><code><a href="com/iker/gid/GidStatus.html#gidErrConn">gidErrConn</a></code></td>
<td class="colLast"><code>401</code></td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a name="com.iker.gid.GidStatus.gidErrInit">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<td><code><a href="com/iker/gid/GidStatus.html#gidErrInit">gidErrInit</a></code></td>
<td class="colLast"><code>400</code></td>
</tr>
<tr class="altColor">
<td class="colFirst"><a name="com.iker.gid.GidStatus.gidErrIo">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<td><code><a href="com/iker/gid/GidStatus.html#gidErrIo">gidErrIo</a></code></td>
<td class="colLast"><code>402</code></td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a name="com.iker.gid.GidStatus.gidErrOverride">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<td><code><a href="com/iker/gid/GidStatus.html#gidErrOverride">gidErrOverride</a></code></td>
<td class="colLast"><code>501</code></td>
</tr>
<tr class="altColor">
<td class="colFirst"><a name="com.iker.gid.GidStatus.gidErrProto">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<td><code><a href="com/iker/gid/GidStatus.html#gidErrProto">gidErrProto</a></code></td>
<td class="colLast"><code>403</code></td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a name="com.iker.gid.GidStatus.gidErrSave">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<td><code><a href="com/iker/gid/GidStatus.html#gidErrSave">gidErrSave</a></code></td>
<td class="colLast"><code>502</code></td>
</tr>
<tr class="altColor">
<td class="colFirst"><a name="com.iker.gid.GidStatus.gidErrServer">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<td><code><a href="com/iker/gid/GidStatus.html#gidErrServer">gidErrServer</a></code></td>
<td class="colLast"><code>404</code></td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a name="com.iker.gid.GidStatus.gidErrSid">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<td><code><a href="com/iker/gid/GidStatus.html#gidErrSid">gidErrSid</a></code></td>
<td class="colLast"><code>500</code></td>
</tr>
<tr class="altColor">
<td class="colFirst"><a name="com.iker.gid.GidStatus.gidOk">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<td><code><a href="com/iker/gid/GidStatus.html#gidOk">gidOk</a></code></td>
<td class="colLast"><code>200</code></td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="com/iker/gid/package-tree.html"></a></li>
<li><a href="deprecated-list.html">已过时</a></li>
<li><a href="index-files/index-1.html">索引</a></li>
<li><a href="help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="index.html?constant-values.html" target="_top">框架</a></li>
<li><a href="constant-values.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,114 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>已过时的列表</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="已过时的列表";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="com/iker/gid/package-tree.html"></a></li>
<li class="navBarCell1Rev">已过时</li>
<li><a href="index-files/index-1.html">索引</a></li>
<li><a href="help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">框架</a></li>
<li><a href="deprecated-list.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="已过时的 API" class="title">已过时的 API</h1>
<h2 title="目录">目录</h2>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="com/iker/gid/package-tree.html"></a></li>
<li class="navBarCell1Rev">已过时</li>
<li><a href="index-files/index-1.html">索引</a></li>
<li><a href="help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">框架</a></li>
<li><a href="deprecated-list.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,215 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>API 帮助</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="API 帮助";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="com/iker/gid/package-tree.html"></a></li>
<li><a href="deprecated-list.html">已过时</a></li>
<li><a href="index-files/index-1.html">索引</a></li>
<li class="navBarCell1Rev">帮助</li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="index.html?help-doc.html" target="_top">框架</a></li>
<li><a href="help-doc.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">此 API 文档的组织方式</h1>
<div class="subTitle">此 API (应用程序编程接口) 文档包含对应于导航栏中的项目的页面, 如下所述。</div>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<h2>程序包</h2>
<p>每个程序包都有一个页面, 其中包含它的类和接口的列表及其概要。此页面可以包含六个类别:</p>
<ul>
<li>接口 (斜体)</li>
<li></li>
<li>枚举</li>
<li>异常错误</li>
<li>错误</li>
<li>注释类型</li>
</ul>
</li>
<li class="blockList">
<h2>类/接口</h2>
<p>每个类, 接口, 嵌套类和嵌套接口都有各自的页面。其中每个页面都由三部分 (类/接口说明, 概要表, 以及详细的成员说明) 组成:</p>
<ul>
<li>类继承图</li>
<li>直接子类</li>
<li>所有已知子接口</li>
<li>所有已知实现类</li>
<li>类/接口声明</li>
<li>类/接口说明</li>
</ul>
<ul>
<li>嵌套类概要</li>
<li>字段概要</li>
<li>构造器概要</li>
<li>方法概要</li>
</ul>
<ul>
<li>字段详细资料</li>
<li>构造器详细资料</li>
<li>方法详细资料</li>
</ul>
<p>每个概要条目都包含该项目的详细说明的第一句。概要条目按字母顺序排列, 而详细说明则按其在源代码中出现的顺序排列。这样保持了程序员所建立的逻辑分组。</p>
</li>
<li class="blockList">
<h2>注释类型</h2>
<p>每个注释类型都有各自的页面, 其中包含以下部分:</p>
<ul>
<li>注释类型声明</li>
<li>注释类型说明</li>
<li>必需元素概要</li>
<li>可选元素概要</li>
<li>元素详细资料</li>
</ul>
</li>
<li class="blockList">
<h2>枚举</h2>
<p>每个枚举都有各自的页面, 其中包含以下部分:</p>
<ul>
<li>枚举声明</li>
<li>枚举说明</li>
<li>枚举常量概要</li>
<li>枚举常量详细资料</li>
</ul>
</li>
<li class="blockList">
<h2>使用</h2>
<p>每个已文档化的程序包, 类和接口都有各自的“使用”页面。此页面介绍了使用给定类或程序包的任何部分的程序包, 类, 方法, 构造器和字段。对于给定的类或接口 A, 其“使用”页面包含 A 的子类, 声明为 A 的字段, 返回 A 的方法, 以及带有类型为 A 的参数的方法和构造器。访问此页面的方法是: 首先转至程序包, 类或接口, 然后单击导航栏中的 "使用" 链接。</p>
</li>
<li class="blockList">
<h2>树 (类分层结构)</h2>
<p>对于所有程序包, 有一个 <a href="overview-tree.html">类分层结构</a> 页面, 以及每个程序包的分层结构。每个分层结构页面都包含类的列表和接口的列表。从 <code>java.lang.Object</code> 开始, 按继承结构对类进行排列。接口不从 <code>java.lang.Object</code> 继承。</p>
<ul>
<li>查看“概览”页面时, 单击 "树" 将显示所有程序包的分层结构。</li>
<li>查看特定程序包, 类或接口页面时, 单击 "树" 将仅显示该程序包的分层结构。</li>
</ul>
</li>
<li class="blockList">
<h2>已过时的 API</h2>
<p><a href="deprecated-list.html">已过时的 API</a> 页面列出了所有已过时的 API。一般由于进行了改进并且通常提供了替代的 API, 所以建议不要使用已过时的 API。在将来的实现过程中, 可能会删除已过时的 API。</p>
</li>
<li class="blockList">
<h2>索引</h2>
<p><a href="index-files/index-1.html">索引</a> 包含按字母顺序排列的所有类, 接口, 构造器, 方法和字段的列表。</p>
</li>
<li class="blockList">
<h2>上一个/下一个</h2>
<p>这些链接使您可以转至下一个或上一个类, 接口, 程序包或相关页面。</p>
</li>
<li class="blockList">
<h2>框架/无框架</h2>
<p>这些链接用于显示和隐藏 HTML 框架。所有页面均具有有框架和无框架两种显示方式。</p>
</li>
<li class="blockList">
<h2>所有类</h2>
<p><a href="allclasses-noframe.html">所有类</a>链接显示所有类和接口 (除了非静态嵌套类型)。</p>
</li>
<li class="blockList">
<h2>序列化表格</h2>
<p>每个可序列化或可外部化的类都有其序列化字段和方法的说明。此信息对重新实现者有用, 而对使用 API 的开发者则没有什么用处。尽管导航栏中没有链接, 但您可以通过下列方式获取此信息: 转至任何序列化类, 然后单击类说明的 "另请参阅" 部分中的 "序列化表格"。</p>
</li>
<li class="blockList">
<h2>常量字段值</h2>
<p>&lt;a href="constant-values.html"&gt;常量字段值&lt;/a&gt;页面列出了静态最终字段及其值。</p>
</li>
</ul>
<em>此帮助文件适用于使用标准 doclet 生成的 API 文档。</em></div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="com/iker/gid/package-tree.html"></a></li>
<li><a href="deprecated-list.html">已过时</a></li>
<li><a href="index-files/index-1.html">索引</a></li>
<li class="navBarCell1Rev">帮助</li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="index.html?help-doc.html" target="_top">框架</a></li>
<li><a href="help-doc.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,119 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>C - 索引</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="C - 索引";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../com/iker/gid/package-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个字母</li>
<li><a href="index-2.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-1.html" target="_top">框架</a></li>
<li><a href="index-1.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">C</a>&nbsp;<a href="index-2.html">G</a>&nbsp;<a href="index-3.html">M</a>&nbsp;<a href="index-4.html">S</a>&nbsp;<a href="index-5.html">T</a>&nbsp;<a name="_C_">
<!-- -->
</a>
<h2 class="title">C</h2>
<dl>
<dt><a href="../com/iker/gid/package-summary.html">com.iker.gid</a> - 程序包 com.iker.gid</dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">C</a>&nbsp;<a href="index-2.html">G</a>&nbsp;<a href="index-3.html">M</a>&nbsp;<a href="index-4.html">S</a>&nbsp;<a href="index-5.html">T</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../com/iker/gid/package-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个字母</li>
<li><a href="index-2.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-1.html" target="_top">框架</a></li>
<li><a href="index-1.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,195 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>G - 索引</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="G - 索引";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../com/iker/gid/package-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-1.html">上一个字母</a></li>
<li><a href="index-3.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-2.html" target="_top">框架</a></li>
<li><a href="index-2.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">C</a>&nbsp;<a href="index-2.html">G</a>&nbsp;<a href="index-3.html">M</a>&nbsp;<a href="index-4.html">S</a>&nbsp;<a href="index-5.html">T</a>&nbsp;<a name="_G_">
<!-- -->
</a>
<h2 class="title">G</h2>
<dl>
<dt><span class="strong"><a href="../com/iker/gid/GidClientCmdLine.Tokens.html#getInt(java.lang.String)">getInt(String)</a></span> - 类 中的方法com.iker.gid.<a href="../com/iker/gid/GidClientCmdLine.Tokens.html" title="com.iker.gid中的类">GidClientCmdLine.Tokens</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidClientCmdLine.Tokens.html#getLong(java.lang.String)">getLong(String)</a></span> - 类 中的方法com.iker.gid.<a href="../com/iker/gid/GidClientCmdLine.Tokens.html" title="com.iker.gid中的类">GidClientCmdLine.Tokens</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidClientCmdLine.Tokens.html#getString(java.lang.String)">getString(String)</a></span> - 类 中的方法com.iker.gid.<a href="../com/iker/gid/GidClientCmdLine.Tokens.html" title="com.iker.gid中的类">GidClientCmdLine.Tokens</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../com/iker/gid/GidClient.html" title="com.iker.gid中的类"><span class="strong">GidClient</span></a> - <a href="../com/iker/gid/package-summary.html">com.iker.gid</a>中的类</dt>
<dd>
<div class="block">抽象接口</div>
</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidClient.html#GidClient(java.lang.String, int, java.lang.String)">GidClient(String, int, String)</a></span> - 类 的构造器com.iker.gid.<a href="../com/iker/gid/GidClient.html" title="com.iker.gid中的类">GidClient</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类"><span class="strong">GidClientCmdLine</span></a> - <a href="../com/iker/gid/package-summary.html">com.iker.gid</a>中的类</dt>
<dd>
<div class="block">命令行方式从GID服务器取得唯一ID号是否应该使用该方式取得唯一ID号
应该取决于服务器的配置选项</div>
</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidClientCmdLine.html#GidClientCmdLine(java.lang.String, int, java.lang.String)">GidClientCmdLine(String, int, String)</a></span> - 类 的构造器com.iker.gid.<a href="../com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类">GidClientCmdLine</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../com/iker/gid/GidClientCmdLine.NameValue.html" title="com.iker.gid中的类"><span class="strong">GidClientCmdLine.NameValue</span></a> - <a href="../com/iker/gid/package-summary.html">com.iker.gid</a>中的类</dt>
<dd>
<div class="block">name-value 对类型类</div>
</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidClientCmdLine.NameValue.html#GidClientCmdLine.NameValue(java.lang.String, java.lang.String)">GidClientCmdLine.NameValue(String, String)</a></span> - 类 的构造器com.iker.gid.<a href="../com/iker/gid/GidClientCmdLine.NameValue.html" title="com.iker.gid中的类">GidClientCmdLine.NameValue</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../com/iker/gid/GidClientCmdLine.Tokens.html" title="com.iker.gid中的类"><span class="strong">GidClientCmdLine.Tokens</span></a> - <a href="../com/iker/gid/package-summary.html">com.iker.gid</a>中的类</dt>
<dd>
<div class="block">拆分字符串的类,该类将“名值”对进行拆分,数据格式为:
name1^value1|name2^value2|...</div>
</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidClientCmdLine.Tokens.html#GidClientCmdLine.Tokens(java.lang.String)">GidClientCmdLine.Tokens(String)</a></span> - 类 的构造器com.iker.gid.<a href="../com/iker/gid/GidClientCmdLine.Tokens.html" title="com.iker.gid中的类">GidClientCmdLine.Tokens</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../com/iker/gid/GidClientJson.html" title="com.iker.gid中的类"><span class="strong">GidClientJson</span></a> - <a href="../com/iker/gid/package-summary.html">com.iker.gid</a>中的类</dt>
<dd>
<div class="block">按 JSON 数据格式获得GID若要使用此方式取得唯一ID则服务器
必须是启用了HTTP协议访问方式</div>
</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidClientJson.html#GidClientJson(java.lang.String, int, java.lang.String)">GidClientJson(String, int, String)</a></span> - 类 的构造器com.iker.gid.<a href="../com/iker/gid/GidClientJson.html" title="com.iker.gid中的类">GidClientJson</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../com/iker/gid/GidClientXml.html" title="com.iker.gid中的类"><span class="strong">GidClientXml</span></a> - <a href="../com/iker/gid/package-summary.html">com.iker.gid</a>中的类</dt>
<dd>
<div class="block">按XML格式获得GID数据若要使用此方式取得唯一ID则服务器
必须是启用了HTTP协议访问方式</div>
</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidClientXml.html#GidClientXml(java.lang.String, int, java.lang.String)">GidClientXml(String, int, String)</a></span> - 类 的构造器com.iker.gid.<a href="../com/iker/gid/GidClientXml.html" title="com.iker.gid中的类">GidClientXml</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidStatus.html#gidErrConn">gidErrConn</a></span> - 类 中的静态变量com.iker.gid.<a href="../com/iker/gid/GidStatus.html" title="com.iker.gid中的类">GidStatus</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidStatus.html#gidErrInit">gidErrInit</a></span> - 类 中的静态变量com.iker.gid.<a href="../com/iker/gid/GidStatus.html" title="com.iker.gid中的类">GidStatus</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidStatus.html#gidErrIo">gidErrIo</a></span> - 类 中的静态变量com.iker.gid.<a href="../com/iker/gid/GidStatus.html" title="com.iker.gid中的类">GidStatus</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidStatus.html#gidErrOverride">gidErrOverride</a></span> - 类 中的静态变量com.iker.gid.<a href="../com/iker/gid/GidStatus.html" title="com.iker.gid中的类">GidStatus</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidStatus.html#gidErrProto">gidErrProto</a></span> - 类 中的静态变量com.iker.gid.<a href="../com/iker/gid/GidStatus.html" title="com.iker.gid中的类">GidStatus</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidStatus.html#gidErrSave">gidErrSave</a></span> - 类 中的静态变量com.iker.gid.<a href="../com/iker/gid/GidStatus.html" title="com.iker.gid中的类">GidStatus</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidStatus.html#gidErrServer">gidErrServer</a></span> - 类 中的静态变量com.iker.gid.<a href="../com/iker/gid/GidStatus.html" title="com.iker.gid中的类">GidStatus</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidStatus.html#gidErrSid">gidErrSid</a></span> - 类 中的静态变量com.iker.gid.<a href="../com/iker/gid/GidStatus.html" title="com.iker.gid中的类">GidStatus</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidClient.html#gidNext()">gidNext()</a></span> - 类 中的方法com.iker.gid.<a href="../com/iker/gid/GidClient.html" title="com.iker.gid中的类">GidClient</a></dt>
<dd>
<div class="block">获得下一个唯一ID号</div>
</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidClientCmdLine.html#gidNext()">gidNext()</a></span> - 类 中的方法com.iker.gid.<a href="../com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类">GidClientCmdLine</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidClientJson.html#gidNext()">gidNext()</a></span> - 类 中的方法com.iker.gid.<a href="../com/iker/gid/GidClientJson.html" title="com.iker.gid中的类">GidClientJson</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidClientXml.html#gidNext()">gidNext()</a></span> - 类 中的方法com.iker.gid.<a href="../com/iker/gid/GidClientXml.html" title="com.iker.gid中的类">GidClientXml</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidStatus.html#gidOk">gidOk</a></span> - 类 中的静态变量com.iker.gid.<a href="../com/iker/gid/GidStatus.html" title="com.iker.gid中的类">GidStatus</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../com/iker/gid/GidStatus.html" title="com.iker.gid中的类"><span class="strong">GidStatus</span></a> - <a href="../com/iker/gid/package-summary.html">com.iker.gid</a>中的类</dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidStatus.html#GidStatus()">GidStatus()</a></span> - 类 的构造器com.iker.gid.<a href="../com/iker/gid/GidStatus.html" title="com.iker.gid中的类">GidStatus</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">C</a>&nbsp;<a href="index-2.html">G</a>&nbsp;<a href="index-3.html">M</a>&nbsp;<a href="index-4.html">S</a>&nbsp;<a href="index-5.html">T</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../com/iker/gid/package-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-1.html">上一个字母</a></li>
<li><a href="index-3.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-2.html" target="_top">框架</a></li>
<li><a href="index-2.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,123 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>M - 索引</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="M - 索引";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../com/iker/gid/package-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-2.html">上一个字母</a></li>
<li><a href="index-4.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-3.html" target="_top">框架</a></li>
<li><a href="index-3.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">C</a>&nbsp;<a href="index-2.html">G</a>&nbsp;<a href="index-3.html">M</a>&nbsp;<a href="index-4.html">S</a>&nbsp;<a href="index-5.html">T</a>&nbsp;<a name="_M_">
<!-- -->
</a>
<h2 class="title">M</h2>
<dl>
<dt><span class="strong"><a href="../com/iker/gid/GidClientCmdLine.html#main(java.lang.String[])">main(String[])</a></span> - 类 中的静态方法com.iker.gid.<a href="../com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类">GidClientCmdLine</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidClientJson.html#main(java.lang.String[])">main(String[])</a></span> - 类 中的静态方法com.iker.gid.<a href="../com/iker/gid/GidClientJson.html" title="com.iker.gid中的类">GidClientJson</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidClientXml.html#main(java.lang.String[])">main(String[])</a></span> - 类 中的静态方法com.iker.gid.<a href="../com/iker/gid/GidClientXml.html" title="com.iker.gid中的类">GidClientXml</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">C</a>&nbsp;<a href="index-2.html">G</a>&nbsp;<a href="index-3.html">M</a>&nbsp;<a href="index-4.html">S</a>&nbsp;<a href="index-5.html">T</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../com/iker/gid/package-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-2.html">上一个字母</a></li>
<li><a href="index-4.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-3.html" target="_top">框架</a></li>
<li><a href="index-3.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,125 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>S - 索引</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="S - 索引";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../com/iker/gid/package-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-3.html">上一个字母</a></li>
<li><a href="index-5.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-4.html" target="_top">框架</a></li>
<li><a href="index-4.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">C</a>&nbsp;<a href="index-2.html">G</a>&nbsp;<a href="index-3.html">M</a>&nbsp;<a href="index-4.html">S</a>&nbsp;<a href="index-5.html">T</a>&nbsp;<a name="_S_">
<!-- -->
</a>
<h2 class="title">S</h2>
<dl>
<dt><span class="strong"><a href="../com/iker/gid/GidClient.html#setConnectTimeout(int)">setConnectTimeout(int)</a></span> - 类 中的方法com.iker.gid.<a href="../com/iker/gid/GidClient.html" title="com.iker.gid中的类">GidClient</a></dt>
<dd>
<div class="block">设置络连接时间</div>
</dd>
<dt><span class="strong"><a href="../com/iker/gid/GidClient.html#setRdTimeout(int)">setRdTimeout(int)</a></span> - 类 中的方法com.iker.gid.<a href="../com/iker/gid/GidClient.html" title="com.iker.gid中的类">GidClient</a></dt>
<dd>
<div class="block">设置IO读超时时间</div>
</dd>
</dl>
<a href="index-1.html">C</a>&nbsp;<a href="index-2.html">G</a>&nbsp;<a href="index-3.html">M</a>&nbsp;<a href="index-4.html">S</a>&nbsp;<a href="index-5.html">T</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../com/iker/gid/package-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-3.html">上一个字母</a></li>
<li><a href="index-5.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-4.html" target="_top">框架</a></li>
<li><a href="index-4.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,121 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>T - 索引</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="T - 索引";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../com/iker/gid/package-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-4.html">上一个字母</a></li>
<li>下一个字母</li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-5.html" target="_top">框架</a></li>
<li><a href="index-5.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">C</a>&nbsp;<a href="index-2.html">G</a>&nbsp;<a href="index-3.html">M</a>&nbsp;<a href="index-4.html">S</a>&nbsp;<a href="index-5.html">T</a>&nbsp;<a name="_T_">
<!-- -->
</a>
<h2 class="title">T</h2>
<dl>
<dt><span class="strong"><a href="../com/iker/gid/GidStatus.html#toString(int)">toString(int)</a></span> - 类 中的静态方法com.iker.gid.<a href="../com/iker/gid/GidStatus.html" title="com.iker.gid中的类">GidStatus</a></dt>
<dd>
<div class="block">将错误号转为字符串描述信息</div>
</dd>
</dl>
<a href="index-1.html">C</a>&nbsp;<a href="index-2.html">G</a>&nbsp;<a href="index-3.html">M</a>&nbsp;<a href="index-4.html">S</a>&nbsp;<a href="index-5.html">T</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../com/iker/gid/package-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-4.html">上一个字母</a></li>
<li>下一个字母</li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-5.html" target="_top">框架</a></li>
<li><a href="index-5.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1,31 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>生成的文档 (无标题)</title>
<script type="text/javascript">
targetPage = "" + window.location.search;
if (targetPage != "" && targetPage != "undefined")
targetPage = targetPage.substring(1);
if (targetPage.indexOf(":") != -1)
targetPage = "undefined";
function loadFrames() {
if (targetPage != "" && targetPage != "undefined")
top.classFrame.location = top.targetPage;
}
</script>
</head>
<frameset cols="20%,80%" title="Documentation frame" onload="top.loadFrames()">
<frame src="allclasses-frame.html" name="packageFrame" title="所有类和接口 (除了非静态嵌套类型)">
<frame src="com/iker/gid/package-summary.html" name="classFrame" title="程序包, 类和接口说明" scrolling="yes">
<noframes>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<h2>框架预警</h2>
<p>请使用框架功能查看此文档。如果看到此消息, 则表明您使用的是不支持框架的 Web 客户机。链接到<a href="com/iker/gid/package-summary.html">非框架版本</a></p>
</noframes>
</frameset>
</html>

View File

@ -0,0 +1,136 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (version 1.7.0) on Fri Dec 02 10:32:23 CST 2011 -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>类分层结构</title>
<meta name="date" content="2011-12-02">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="类分层结构";
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="跳过导航链接"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li class="navBarCell1Rev"></li>
<li><a href="deprecated-list.html">已过时</a></li>
<li><a href="index-files/index-1.html">索引</a></li>
<li><a href="help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="index.html?overview-tree.html" target="_top">框架</a></li>
<li><a href="overview-tree.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">所有程序包的分层结构</h1>
<span class="strong">程序包分层结构:</span>
<ul class="horizontal">
<li><a href="com/iker/gid/package-tree.html">com.iker.gid</a></li>
</ul>
</div>
<div class="contentContainer">
<h2 title="类分层结构">类分层结构</h2>
<ul>
<li type="circle">java.lang.Object
<ul>
<li type="circle">com.iker.gid.<a href="com/iker/gid/GidClient.html" title="com.iker.gid中的类"><span class="strong">GidClient</span></a>
<ul>
<li type="circle">com.iker.gid.<a href="com/iker/gid/GidClientCmdLine.html" title="com.iker.gid中的类"><span class="strong">GidClientCmdLine</span></a></li>
<li type="circle">com.iker.gid.<a href="com/iker/gid/GidClientJson.html" title="com.iker.gid中的类"><span class="strong">GidClientJson</span></a></li>
<li type="circle">com.iker.gid.<a href="com/iker/gid/GidClientXml.html" title="com.iker.gid中的类"><span class="strong">GidClientXml</span></a></li>
</ul>
</li>
<li type="circle">com.iker.gid.<a href="com/iker/gid/GidClientCmdLine.NameValue.html" title="com.iker.gid中的类"><span class="strong">GidClientCmdLine.NameValue</span></a></li>
<li type="circle">com.iker.gid.<a href="com/iker/gid/GidClientCmdLine.Tokens.html" title="com.iker.gid中的类"><span class="strong">GidClientCmdLine.Tokens</span></a></li>
<li type="circle">com.iker.gid.<a href="com/iker/gid/GidStatus.html" title="com.iker.gid中的类"><span class="strong">GidStatus</span></a></li>
</ul>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="跳过导航链接"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="com/iker/gid/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li class="navBarCell1Rev"></li>
<li><a href="deprecated-list.html">已过时</a></li>
<li><a href="index-files/index-1.html">索引</a></li>
<li><a href="help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="index.html?overview-tree.html" target="_top">框架</a></li>
<li><a href="overview-tree.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -0,0 +1 @@
com.iker.gid

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 849 B

View File

@ -0,0 +1,474 @@
/* Javadoc style sheet */
/*
Overall document style
*/
body {
background-color:#ffffff;
color:#353833;
font-family:Arial, Helvetica, sans-serif;
font-size:76%;
margin:0;
}
a:link, a:visited {
text-decoration:none;
color:#4c6b87;
}
a:hover, a:focus {
text-decoration:none;
color:#bb7a2a;
}
a:active {
text-decoration:none;
color:#4c6b87;
}
a[name] {
color:#353833;
}
a[name]:hover {
text-decoration:none;
color:#353833;
}
pre {
font-size:1.3em;
}
h1 {
font-size:1.8em;
}
h2 {
font-size:1.5em;
}
h3 {
font-size:1.4em;
}
h4 {
font-size:1.3em;
}
h5 {
font-size:1.2em;
}
h6 {
font-size:1.1em;
}
ul {
list-style-type:disc;
}
code, tt {
font-size:1.2em;
}
dt code {
font-size:1.2em;
}
table tr td dt code {
font-size:1.2em;
vertical-align:top;
}
sup {
font-size:.6em;
}
/*
Document title and Copyright styles
*/
.clear {
clear:both;
height:0px;
overflow:hidden;
}
.aboutLanguage {
float:right;
padding:0px 21px;
font-size:.8em;
z-index:200;
margin-top:-7px;
}
.legalCopy {
margin-left:.5em;
}
.bar a, .bar a:link, .bar a:visited, .bar a:active {
color:#FFFFFF;
text-decoration:none;
}
.bar a:hover, .bar a:focus {
color:#bb7a2a;
}
.tab {
background-color:#0066FF;
background-image:url(resources/titlebar.gif);
background-position:left top;
background-repeat:no-repeat;
color:#ffffff;
padding:8px;
width:5em;
font-weight:bold;
}
/*
Navigation bar styles
*/
.bar {
background-image:url(resources/background.gif);
background-repeat:repeat-x;
color:#FFFFFF;
padding:.8em .5em .4em .8em;
height:auto;/*height:1.8em;*/
font-size:1em;
margin:0;
}
.topNav {
background-image:url(resources/background.gif);
background-repeat:repeat-x;
color:#FFFFFF;
float:left;
padding:0;
width:100%;
clear:right;
height:2.8em;
padding-top:10px;
overflow:hidden;
}
.bottomNav {
margin-top:10px;
background-image:url(resources/background.gif);
background-repeat:repeat-x;
color:#FFFFFF;
float:left;
padding:0;
width:100%;
clear:right;
height:2.8em;
padding-top:10px;
overflow:hidden;
}
.subNav {
background-color:#dee3e9;
border-bottom:1px solid #9eadc0;
float:left;
width:100%;
overflow:hidden;
}
.subNav div {
clear:left;
float:left;
padding:0 0 5px 6px;
}
ul.navList, ul.subNavList {
float:left;
margin:0 25px 0 0;
padding:0;
}
ul.navList li{
list-style:none;
float:left;
padding:3px 6px;
}
ul.subNavList li{
list-style:none;
float:left;
font-size:90%;
}
.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
color:#FFFFFF;
text-decoration:none;
}
.topNav a:hover, .bottomNav a:hover {
text-decoration:none;
color:#bb7a2a;
}
.navBarCell1Rev {
background-image:url(resources/tab.gif);
background-color:#a88834;
color:#FFFFFF;
margin: auto 5px;
border:1px solid #c9aa44;
}
/*
Page header and footer styles
*/
.header, .footer {
clear:both;
margin:0 20px;
padding:5px 0 0 0;
}
.indexHeader {
margin:10px;
position:relative;
}
.indexHeader h1 {
font-size:1.3em;
}
.title {
color:#2c4557;
margin:10px 0;
}
.subTitle {
margin:5px 0 0 0;
}
.header ul {
margin:0 0 25px 0;
padding:0;
}
.footer ul {
margin:20px 0 5px 0;
}
.header ul li, .footer ul li {
list-style:none;
font-size:1.2em;
}
/*
Heading styles
*/
div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
background-color:#dee3e9;
border-top:1px solid #9eadc0;
border-bottom:1px solid #9eadc0;
margin:0 0 6px -8px;
padding:2px 5px;
}
ul.blockList ul.blockList ul.blockList li.blockList h3 {
background-color:#dee3e9;
border-top:1px solid #9eadc0;
border-bottom:1px solid #9eadc0;
margin:0 0 6px -8px;
padding:2px 5px;
}
ul.blockList ul.blockList li.blockList h3 {
padding:0;
margin:15px 0;
}
ul.blockList li.blockList h2 {
padding:0px 0 20px 0;
}
/*
Page layout container styles
*/
.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
clear:both;
padding:10px 20px;
position:relative;
}
.indexContainer {
margin:10px;
position:relative;
font-size:1.0em;
}
.indexContainer h2 {
font-size:1.1em;
padding:0 0 3px 0;
}
.indexContainer ul {
margin:0;
padding:0;
}
.indexContainer ul li {
list-style:none;
}
.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
font-size:1.1em;
font-weight:bold;
margin:10px 0 0 0;
color:#4E4E4E;
}
.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
margin:10px 0 10px 20px;
}
.serializedFormContainer dl.nameValue dt {
margin-left:1px;
font-size:1.1em;
display:inline;
font-weight:bold;
}
.serializedFormContainer dl.nameValue dd {
margin:0 0 0 1px;
font-size:1.1em;
display:inline;
}
/*
List styles
*/
ul.horizontal li {
display:inline;
font-size:0.9em;
}
ul.inheritance {
margin:0;
padding:0;
}
ul.inheritance li {
display:inline;
list-style:none;
}
ul.inheritance li ul.inheritance {
margin-left:15px;
padding-left:15px;
padding-top:1px;
}
ul.blockList, ul.blockListLast {
margin:10px 0 10px 0;
padding:0;
}
ul.blockList li.blockList, ul.blockListLast li.blockList {
list-style:none;
margin-bottom:25px;
}
ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
padding:0px 20px 5px 10px;
border:1px solid #9eadc0;
background-color:#f9f9f9;
}
ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
padding:0 0 5px 8px;
background-color:#ffffff;
border:1px solid #9eadc0;
border-top:none;
}
ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
margin-left:0;
padding-left:0;
padding-bottom:15px;
border:none;
border-bottom:1px solid #9eadc0;
}
ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
list-style:none;
border-bottom:none;
padding-bottom:0;
}
table tr td dl, table tr td dl dt, table tr td dl dd {
margin-top:0;
margin-bottom:1px;
}
/*
Table styles
*/
.contentContainer table, .classUseContainer table, .constantValuesContainer table {
border-bottom:1px solid #9eadc0;
width:100%;
}
.contentContainer ul li table, .classUseContainer ul li table, .constantValuesContainer ul li table {
width:100%;
}
.contentContainer .description table, .contentContainer .details table {
border-bottom:none;
}
.contentContainer ul li table th.colOne, .contentContainer ul li table th.colFirst, .contentContainer ul li table th.colLast, .classUseContainer ul li table th, .constantValuesContainer ul li table th, .contentContainer ul li table td.colOne, .contentContainer ul li table td.colFirst, .contentContainer ul li table td.colLast, .classUseContainer ul li table td, .constantValuesContainer ul li table td{
vertical-align:top;
padding-right:20px;
}
.contentContainer ul li table th.colLast, .classUseContainer ul li table th.colLast,.constantValuesContainer ul li table th.colLast,
.contentContainer ul li table td.colLast, .classUseContainer ul li table td.colLast,.constantValuesContainer ul li table td.colLast,
.contentContainer ul li table th.colOne, .classUseContainer ul li table th.colOne,
.contentContainer ul li table td.colOne, .classUseContainer ul li table td.colOne {
padding-right:3px;
}
.overviewSummary caption, .packageSummary caption, .contentContainer ul.blockList li.blockList caption, .summary caption, .classUseContainer caption, .constantValuesContainer caption {
position:relative;
text-align:left;
background-repeat:no-repeat;
color:#FFFFFF;
font-weight:bold;
clear:none;
overflow:hidden;
padding:0px;
margin:0px;
}
caption a:link, caption a:hover, caption a:active, caption a:visited {
color:#FFFFFF;
}
.overviewSummary caption span, .packageSummary caption span, .contentContainer ul.blockList li.blockList caption span, .summary caption span, .classUseContainer caption span, .constantValuesContainer caption span {
white-space:nowrap;
padding-top:8px;
padding-left:8px;
display:block;
float:left;
background-image:url(resources/titlebar.gif);
height:18px;
}
.overviewSummary .tabEnd, .packageSummary .tabEnd, .contentContainer ul.blockList li.blockList .tabEnd, .summary .tabEnd, .classUseContainer .tabEnd, .constantValuesContainer .tabEnd {
width:10px;
background-image:url(resources/titlebar_end.gif);
background-repeat:no-repeat;
background-position:top right;
position:relative;
float:left;
}
ul.blockList ul.blockList li.blockList table {
margin:0 0 12px 0px;
width:100%;
}
.tableSubHeadingColor {
background-color: #EEEEFF;
}
.altColor {
background-color:#eeeeef;
}
.rowColor {
background-color:#ffffff;
}
.overviewSummary td, .packageSummary td, .contentContainer ul.blockList li.blockList td, .summary td, .classUseContainer td, .constantValuesContainer td {
text-align:left;
padding:3px 3px 3px 7px;
}
th.colFirst, th.colLast, th.colOne, .constantValuesContainer th {
background:#dee3e9;
border-top:1px solid #9eadc0;
border-bottom:1px solid #9eadc0;
text-align:left;
padding:3px 3px 3px 7px;
}
td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
font-weight:bold;
}
td.colFirst, th.colFirst {
border-left:1px solid #9eadc0;
white-space:nowrap;
}
td.colLast, th.colLast {
border-right:1px solid #9eadc0;
}
td.colOne, th.colOne {
border-right:1px solid #9eadc0;
border-left:1px solid #9eadc0;
}
table.overviewSummary {
padding:0px;
margin-left:0px;
}
table.overviewSummary td.colFirst, table.overviewSummary th.colFirst,
table.overviewSummary td.colOne, table.overviewSummary th.colOne {
width:25%;
vertical-align:middle;
}
table.packageSummary td.colFirst, table.overviewSummary th.colFirst {
width:25%;
vertical-align:middle;
}
/*
Content styles
*/
.description pre {
margin-top:0;
}
.deprecatedContent {
margin:0;
padding:10px 0;
}
.docSummary {
padding:0;
}
/*
Formatting effect styles
*/
.sourceLineNo {
color:green;
padding:0 30px 0 0;
}
h1.hidden {
visibility:hidden;
overflow:hidden;
font-size:.9em;
}
.block {
display:block;
margin:3px 0 0 0;
}
.strong {
font-weight:bold;
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,125 @@
package com.iker.gid;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.MalformedURLException;
import java.net.Socket;
import java.net.SocketAddress;
import java.net.URL;
import java.net.UnknownHostException;
/**
* 抽象接口
* @author zsx
*
*/
public abstract class GidClient {
protected int errnum = 0;
protected String serverIp = "192.168.1.251";
protected int serverPort = 7072;
protected String tagName = "default";
protected int connTimeout = 10000; /* 连接超时时间为10秒 */
protected int rdTimeout = 30000; /* 读超时时间为30秒 */
public GidClient(String ip, int port, String tag)
{
if (ip.isEmpty() == false)
this.serverIp = ip;
if (port > 0)
this.serverPort = port;
if (tag != "")
this.tagName = tag;
}
/**
* 获得下一个唯一ID号
* @return 返回唯一的64位整数如果返回值 < 0 则表示出错
*/
abstract public long gidNext();
protected HttpURLConnection OpenUrl(String gidFmt)
{
String urlAddr = "http://" + serverIp + ":" + serverPort + "/";
HttpURLConnection urlConnection = null;
try {
URL url = new URL(urlAddr);
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setConnectTimeout(connTimeout);
urlConnection.setReadTimeout(rdTimeout);
// 设置是否从httpUrlConnection读入默认情况下是true;
urlConnection.setDoInput(true);
// 设置是否向httpUrlConnection输出因为这个是post请求
// 参数要放在 http正文内因此需要设为true, 默认情况下是false;
urlConnection.setDoOutput(true);
// 设置为 POST 请求方式
urlConnection.setRequestMethod("POST");
// Post 请求不能使用缓存
urlConnection.setUseCaches(false);
urlConnection.setInstanceFollowRedirects(false);
urlConnection.setRequestProperty("User-Agent",
"ESite JAVA Agent");
urlConnection.setRequestProperty("Content-Type",
"text/plain;charset=utf8");
urlConnection.setRequestProperty("x-gid-format", gidFmt);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return (urlConnection);
}
/**
* 设置IO读超时时间
* @param timeout 超时时间单位为秒如果不设置此时间
* 则内部缺省值为30秒
*/
public void setRdTimeout(int timeout)
{
// 将秒转为毫秒
rdTimeout = timeout * 1000;
}
/**
* 设置络连接时间
* @param timeout 超时时间单位为秒如果不设置此时间
* 则内部缺省值为10秒
*/
public void setConnectTimeout(int timeout)
{
// 将秒转为毫秒
connTimeout = timeout * 1000;
}
protected Socket OpenTcp() {
Socket socket = null;
try {
socket = new Socket();
socket.setSoTimeout(rdTimeout);
SocketAddress socketAddress =
new InetSocketAddress(serverIp, serverPort);
// 带连接超时方式连接服务器
socket.connect(socketAddress, connTimeout);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return socket;
}
/**
* 返回出错号
* @return 错误号
*/
int getLastError() {
return errnum;
}
}

View File

@ -0,0 +1,156 @@
package com.iker.gid;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.util.StringTokenizer;
import java.util.Vector;
/**
* 命令行方式从GID服务器取得唯一ID号是否应该使用该方式取得唯一ID号
* 应该取决于服务器的配置选项
* @author zsx
*
*/
public final class GidClientCmdLine extends GidClient {
public GidClientCmdLine(String ip, int port, String tag)
{
super(ip, port, tag);
}
/**
* name-value 对类型类
*/
public final class NameValue {
private String name;
private String value;
public NameValue(String name, String value) {
this.name = name;
this.value = value;
}
String getName()
{
return name;
}
String getValue()
{
return value;
}
}
/**
* 拆分字符串的类该类将名值对进行拆分数据格式为
* name1^value1|name2^value2|...
*/
public final class Tokens {
private static final String spliter1 = "|";
private static final String spliter2 = "\\^";
private Vector<NameValue> tokens = new Vector<NameValue>();;
public Tokens(String content) {
StringTokenizer sk = new StringTokenizer(content, spliter1);
while (sk.hasMoreTokens()) {
String str = sk.nextToken();
String[] nv = str.split(spliter2);
if (nv.length != 2)
continue;
tokens.add(new NameValue(nv[0], nv[1]));
}
}
public String getString(String name)
{
for (int i = 0; i < tokens.size(); i++) {
NameValue token = tokens.get(i);
if (token.getName().equalsIgnoreCase(name))
return token.getValue();
}
return "";
}
public long getLong(String name)
{
for (int i = 0; i < tokens.size(); i++) {
NameValue token = tokens.get(i);
if (token.getName().equalsIgnoreCase(name))
return Long.parseLong(token.getValue());
}
return -1;
}
public int getInt(String name)
{
for (int i = 0; i < tokens.size(); i++) {
NameValue token = tokens.get(i);
if (token.getName().equalsIgnoreCase(name))
return Integer.parseInt(token.getValue());
}
return -1;
}
}
@Override
public long gidNext() {
Socket socket = null;
try {
socket = OpenTcp();
OutputStream out = socket.getOutputStream();
/* 请求的数据格式CMD^new_gid|TAG^default */
String buf = "CMD^new_gid|TAG^" + tagName + "\r\n";
out.write(buf.getBytes());
out.flush();
//out.close();
/* 响应数据格式status^ok[|error]|gid^xxx[|tag^xxx|err^xxx|msg^xxx] */
InputStream in = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
buf = reader.readLine();
out.close();
in.close();
Tokens tokens = new Tokens(buf);
String status = tokens.getString("status");
if (status.equalsIgnoreCase("ok") == false) {
errnum = tokens.getInt("err");
return -1;
}
return tokens.getLong("gid");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (socket != null)
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return -1;
}
public static void main(String[] args) {
final String ip = "192.168.1.251";
final int port = 7072;
final String tag = "default";
GidClient gidClient = new GidClientCmdLine(ip, port, tag);
for (int i = 0; i < 100; i++) {
long gid = gidClient.gidNext();
System.out.print(">>cmdline gid: " + gid + "\r");
}
}
}

View File

@ -0,0 +1,87 @@
package com.iker.gid;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import net.sf.json.JSONObject;
/**
* JSON 数据格式获得GID若要使用此方式取得唯一ID则服务器
* 必须是启用了HTTP协议访问方式
* @author zsx
*
*/
public final class GidClientJson extends GidClient {
public GidClientJson(String ip, int port, String tag)
{
super(ip, port, tag);
}
@Override
public long gidNext() {
// TODO Auto-generated method stub
HttpURLConnection urlConnection = null;
try {
urlConnection = OpenUrl("json");
OutputStream os = urlConnection.getOutputStream();
/* 请求的数据格式:{ cmd: 'new_gid'; tag: 'xxx'; } */
JSONObject json = new JSONObject();
json.put("cmd", "new_gid");
json.put("tag", tagName);
os.write(json.toString().getBytes());
os.flush();
//os.close();
/* 返回的数据格式: { status: 'ok|error'; gid: xxx; tag: 'xxx'; msg: 'xxx'; err: 'xxx'; } */
InputStream in = urlConnection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String buf="";
char[] tmp = new char[128];
while (true) {
if (reader.read(tmp) == -1)
break;
buf += new String(tmp);
}
buf.toLowerCase(); // 先转为小写
JSONObject jsonRet = JSONObject.fromObject(buf);
String status = jsonRet.getString("status");
if (status.equals("ok") == false) {
String err = jsonRet.getString("err");
if (err.equals("") == false)
errnum = Integer.parseInt(err);
return -1;
}
long gid = jsonRet.getLong("gid");
return gid;
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (urlConnection != null)
urlConnection.disconnect();
}
return -1;
}
public static void main(String[] args) {
final String ip = "192.168.1.251";
final int port = 7072;
final String tag = "default";
GidClient gidClient = new GidClientJson(ip, port, tag);
for (int i = 0; i < 100; i++) {
long gid = gidClient.gidNext();
System.out.print(">>json gid: " + gid + "\r\n");
}
}
}

View File

@ -0,0 +1,82 @@
package com.iker.gid;
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;
/**
* 按XML格式获得GID数据若要使用此方式取得唯一ID则服务器
* 必须是启用了HTTP协议访问方式
* @author zsx
*
*/
public final class GidClientXml extends GidClient {
public GidClientXml(String ip, int port, String tag)
{
super(ip, port, tag);
}
@Override
public long gidNext() {
// TODO Auto-generated method stub
HttpURLConnection urlConnection = null;
try {
urlConnection = OpenUrl("xml"); // 连接服务器
OutputStream os = urlConnection.getOutputStream();
String body = "<request cmd='new_gid' tag='" + tagName + "' />";
os.write(body.getBytes());
os.flush();
//os.close();
/* 返回的数据格式: <respond status='ok|error' gid=xxx tag='xxx' msg='xxx' err='xxx' /> */
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(urlConnection.getInputStream());
Element root = document.getDocumentElement();
String status = root.getAttribute("status");
String gidStr = root.getAttribute("gid");
if (status.equals("ok") == false || gidStr.equals("")) {
String err = root.getAttribute("err");
if (err.equals("") == false)
errnum = Integer.parseInt(err);
return -1;
}
long gid = Long.parseLong(gidStr);
return gid;
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch(SAXException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (urlConnection != null)
urlConnection.disconnect();
}
return -1;
}
public static void main(String[] args) {
final String ip = "192.168.1.251";
final int port = 7072;
final String tag = "default";
GidClient gidClient = new GidClientXml(ip, port, tag);
for (int i = 0; i < 100; i++) {
long gid = gidClient.gidNext();
System.out.print(">>xml gid: " + gid + "\r\n");
}
}
}

View File

@ -0,0 +1,49 @@
package com.iker.gid;
/**
* @author zsx
* 该类主要定义了GID的错误号以及将错误号转为字符串描述信息的内容
*/
public final class GidStatus {
public static final int gidOk = 200;
public static final int gidErrInit = 400;
public static final int gidErrConn = 401;
public static final int gidErrIo = 402;
public static final int gidErrProto = 403;
public static final int gidErrServer = 404;
public static final int gidErrSid = 500;
public static final int gidErrOverride = 501;
public static final int gidErrSave = 502;
/**
* 将错误号转为字符串描述信息
* @param gidStatus
* @return String
*/
public static String toString(int gidStatus)
{
switch (gidStatus)
{
case gidOk:
return "ok";
case gidErrInit:
return "gid_client_init should called first";
case gidErrConn:
return "connect server error";
case gidErrIo:
return "readwrite from server error";
case gidErrProto:
return "gid protocol error";
case gidErrServer:
return "gid server internal error";
case gidErrSid:
return "sid invalid";
case gidErrOverride:
return "gid override";
case gidErrSave:
return "gid save error";
default:
return "unknown error number";
}
}
}

117
app/gid/gid_server/Makefile Normal file
View File

@ -0,0 +1,117 @@
SHELL = /bin/sh
CC = g++
CC = gcc
#CC = ${MY_ENV_CC}
AR = ar
ARFL = rv
#ARFL = cru
RANLIB = ranlib
CFLAGS = -c -g -W -Wall -Wcast-qual -Wcast-align \
-Waggregate-return \
-Wno-long-long \
-Wpointer-arith -Werror -Wshadow -O2 \
-D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -D_USE_FAST_MACRO
#CFLAGS = -c -g -W -Wall -Wcast-qual -Wcast-align \
#-Waggregate-return -Wmissing-prototypes \
#-Wpointer-arith -Werror -Wshadow -O2 \
#-D_POSIX_PTHREAD_SEMANTICS -D_USE_FAST_MACRO
###########################################################
#Check system:
# Linux, SunOS, Solaris, BSD variants, AIX, HP-UX
SYSLIB = -lpthread -lcrypt -lz
CHECKSYSRES = @echo "Unknow system type!";exit 1
UNIXNAME = $(shell uname -sm)
OSTYPE = $(shell uname -p)
RPATH =
ifeq ($(CC),)
CC = gcc
endif
#Path for Linux
ifeq ($(findstring Linux, $(UNIXNAME)), Linux)
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DLINUX2 -D_REENTRANT -pedantic
ifeq ($(findstring i686, $(OSTYPE)), i686)
RPATH = linux32
FLAG_OS = LINUX32
endif
ifeq ($(findstring x86_64, $(OSTYPE)), x86_64)
RPATH = linux64
FLAG_OS = LINUX64
endif
endif
#Path for SunOS
ifeq ($(findstring SunOS, $(UNIXNAME)), SunOS)
ifeq ($(findstring 86, $(UNIXNAME)), 86)
SYSLIB += -lsocket -lnsl -lrt
endif
ifeq ($(findstring sun4u, $(UNIXNAME)), sun4u)
SYSLIB += -lsocket -lnsl -lrt
endif
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DSUNOS5 -D_REENTRANT -pedantic
endif
#Path for HP-UX
ifeq ($(findstring HP-UX, $(UNIXNAME)), HP-UX)
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DHP_UX -DHPUX11
PLAT_NAME=hp-ux
endif
#Find system type.
ifneq ($(SYSPATH),)
CHECKSYSRES = @echo "System is $(shell uname -sm)"
endif
###########################################################
BASE_PATH = ../../../build
INC_COMPILE = -I./include -I../../../lib_acl/include \
-I../../../lib_protocol/include
LIB_COMPILE = -L../../../lib_acl/lib -L../../../lib_protocol/lib -l_protocol -l_acl
CFLAGS += $(INC_COMPILE)
###########################################################
OUT_PATH = .
OBJ_PATH = $(OUT_PATH)/debug
#Project's objs
SRC = $(wildcard src/*.c) $(wildcard unix/*.c)
OBJ = $(patsubst %.c, $(OBJ_PATH)/%.o, $(notdir $(SRC)))
###########################################################
PROG = gid_server
all: rm gid_server
.PHONY = gid_server clean
COMPILE = $(CC) $(CFLAGS)
$(PROG): $(OBJ)
$(CC) $(OBJ) $(LIB_COMPILE) $(SYSLIB) -o $(PROG)
# cp $(OBJ_PATH)/$(PROG) $(BASE_PATH)/dist/master/libexec
@echo ""
@echo "All ok! Output:$(PROG)"
@echo ""
$(OBJ_PATH)/%.o: src/%.c
$(COMPILE) $< -o $@
$(OBJ_PATH)/%.o: unix/%.c
$(COMPILE) $< -o $@
rm:
rm -f $(PROG)
clean:
rm -f $(PROG)
rm -f $(OBJ)

View File

@ -0,0 +1,108 @@
SHELL = /bin/sh
CC = g++
CC = gcc
#CC = ${MY_ENV_CC}
AR = ar
ARFL = rv
#ARFL = cru
RANLIB = ranlib
CFLAGS = -c -g -W -Wall -Wcast-qual -Wcast-align \
-Waggregate-return -Wno-long-long \
-Wpointer-arith -Werror -Wshadow -O2 \
-D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -D_USE_FAST_MACRO
#CFLAGS = -c -g -W -Wall -Wcast-qual -Wcast-align \
#-Waggregate-return -Wmissing-prototypes \
#-Wpointer-arith -Werror -Wshadow -O2 \
#-D_POSIX_PTHREAD_SEMANTICS -D_USE_FAST_MACRO
###########################################################
#Check system:
# Linux, SunOS, Solaris, BSD variants, AIX, HP-UX
SYSLIB = -lpthread -lcrypt -lz
CHECKSYSRES = @echo "Unknow system type!";exit 1
UNIXNAME = $(shell uname -sm)
ifeq ($(CC),)
CC = gcc
endif
#Path for Linux
ifeq ($(findstring Linux, $(UNIXNAME)), Linux)
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DLINUX2 -D_REENTRANT -pedantic
endif
#Path for SunOS
ifeq ($(findstring SunOS, $(UNIXNAME)), SunOS)
ifeq ($(findstring 86, $(UNIXNAME)), 86)
SYSLIB += -lsocket -lnsl -lrt
endif
ifeq ($(findstring sun4u, $(UNIXNAME)), sun4u)
SYSLIB += -lsocket -lnsl -lrt
endif
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DSUNOS5 -D_REENTRANT -pedantic
endif
#Path for HP-UX
ifeq ($(findstring HP-UX, $(UNIXNAME)), HP-UX)
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DHP_UX -DHPUX11
PLAT_NAME=hp-ux
endif
#Find system type.
ifneq ($(SYSPATH),)
CHECKSYSRES = @echo "System is $(shell uname -sm)"
endif
###########################################################
BASE_PATH = ../..
BASE_LIB_PATH = $(BASE_PATH)/lib/linux
BASE_INC_PATH = $(BASE_PATH)/include
ACL_INC = $(BASE_PATH)/include/acl
P2P_INC = $(BASE_PATH)/include/p2p
P2P_CHAT_INC = $(BASE_PATH)/include/p2p_chat
CFLAGS += $(INC_COMPILE)
INC_COMPILE = -I$(P2P_CHAT_INC) -I$(P2P_INC) -I$(ACL_INC) -I$(BASE_INC_PATH) -I./include
LIB_COMPILE = -L$(BASE_LIB_PATH) -l_chat -l_acl
###########################################################
OUT_PATH = .
OBJ_PATH = $(OUT_PATH)/debug
#Project's objs
SRC = $(wildcard src/*.c) $(wildcard win32/*.c)
OBJ = $(patsubst %.c, $(OBJ_PATH)/%.o, $(notdir $(SRC)))
###########################################################
PROG = regsvr_test
.PHONY = all clean
COMPILE = $(CC) $(CFLAGS)
$(PROG): $(OBJ)
$(CC) $(OBJ) $(LIB_COMPILE) $(SYSLIB) -o $(OBJ_PATH)/$(PROG)
@echo ""
@echo "All ok! Output:$(PROG)"
@echo ""
$(OBJ_PATH)/%.o: src/%.c
$(COMPILE) $< -o $@
$(OBJ_PATH)/%.o: win32/%.c
$(COMPILE) $< -o $@
clean:
rm -f $(OBJ_PATH)/$(PROG)
rm -f $(OBJ)

View File

@ -0,0 +1,2 @@
1) 2013.7.17
1.1) feature: 支持同时监听多个端口,每个端口处理不同的协议格式

View File

@ -0,0 +1,32 @@
POST / HTTP/1.1
Connection: keep-alive
Content-Length: 26
{cmd: "new_gid", seq: 1 }
POST / HTTP/1.1
Content-Length: 26
{cmd: "new_gid", seq: 1 }
POST / HTTP/1.1
Connection: keep-alive
Content-Length: 32
{cmd: "new_gid", seq: "label" }
POST / HTTP/1.1
Content-Length: 32
{cmd: "new_gid", seq: "label" }
POST / HTTP/1.1
Content-Length: 19
{cmd: "new_gid" }
CMD^new_gid|LABEL^default

View File

@ -0,0 +1,106 @@
service server {
# 进程是否禁止运行
master_disable = no
# 服务地址及端口号
# master_service = 127.0.0.1:6010
master_service = 127.0.0.1:7070, 127.0.0.1:7071, 127.0.0.1:7072, 127.0.0.1:7073
# 服务监听为域套接口
# master_service = aio_echo.sock
# 服务类型
# master_type = inet
# master_type = unix
master_type = sock
# 当子进程异常退出时如果该值非空则将子进程异常退出的消息通知该服务
# master_notify_addr = 127.0.0.1:5801
# 是否允许延迟接受客户端连接如果为0则表示关闭该功能如果大于0则表示打开此功能
# 并且此值代表延迟接受连接的超时值超过此值时如果客户端依然没有发来数据则操作
# 系统会在系统层直接关闭该连接
# master_defer_accept = 0
# 是否只允许私有访问, 如果为 y, 则域套接口创建在 /opt/analyse/var/log/private/ 目录下,
# 如果为 n, 则域套接口创建在 /opt/analyse/var/log/public/ 目录下,
master_private = n
master_unpriv = n
# 是否需要 chroot: n -- no, y -- yes
master_chroot = n
# 每隔多长时间触发一次单位为秒(仅对 trigger 模式有效)
master_wakeup = -
# 最大进程数
master_maxproc = 1
# 进程程序名
master_command = gid_server
# 进程日志记录文件
master_log = {install_path}/var/gid_server.log
# 进程启动参数只能为: -u [是否允许以某普通用户的身份运行]
# master_args = -u
# 传递给服务子进程的环境变量, 可以通过 getenv("SERVICE_ENV") 获得此值
# master_env = mempool_limit:512000000
# master_env = logme:FALSE, priority:E_LOG_INFO, action:E_LOG_PER_DAY, flush:sync_flush, imit_size:512,\
# sync_action:E_LOG_SEM, sem_name:/tmp/ioctl_echo.sem
# 每个进程实例处理连接数的最大次数超过此值后进程实例主动退出
ioctl_use_limit = 0
# 每个进程实例的空闲超时时间超过此值后进程实例主动退出
ioctl_idle_limit = 0
# 记录进程PID的位置(对于多进程实例来说没有意义)
ioctl_pid_dir = ./var
# 进程运行时所在的路径
# ioctl_queue_dir = /home/guozhaohui/opt/analyse/var
ioctl_queue_dir = {install_path}/var
# 读写超时时间, 单位为秒
ioctl_rw_timeout = 120
# 读缓冲区的缓冲区大小
ioctl_buf_size = 8192
# 每次 accept 时的循环接收的最大次数
ioctl_max_accept = 25
# 在并发访问量非常低的情况下如访问量在 10 / 以下时可以找开此值(即赋为1)以加速事件循环过程,
# 从而防止服务进程阻塞在 select 上的时间过长而影响访问速度
# ioctl_enable_dog = 1
# 进程运行时的用户身份
ioctl_owner = root
# ioctl_owner = guozhaohui
# select 进行循环时的时间间隔
# 单位为秒
ioctl_delay_sec = 0
# 单位为微秒
ioctl_delay_usec = 500
# 采用事件循环的方式: select(default), poll, kernel(epoll/devpoll/kqueue)
ioctl_event_mode = select
# 线程池的最大线程数
ioctl_max_threads = 250
# 线程的堆栈空间大小单位为字节0表示使用系统缺省值
ioctl_stacksize = 0
# 允许访问 udserver 的客户端IP地址范围
ioctl_access_allow = 0.0.0.0:255.255.255.255
## app_main.c 需要的参数项
# 客户端连接的最大空闲时间阀值
app_client_idle_limit = 120
############################################################################
# 应用自己的配置选项
# 是否调试内存状态
# debug_mem = 0
# 存储的根目录
gid_path = {install_path}/var/gid
# 是否立刻同步至磁盘
sync_gid = 1
# 步进值
gid_step = 1
# 是否循环读取请求命令
loop_enable = 1
# 缺省的服务协议
proto_default = http
# 协议与端口的对照表
proto_list = http|127.0.0.1:7070|127.0.0.1:7071, cmdline|127.0.0.1:7072|127.0.0.1:7073
# 测试用
test_user_id = 10001
}

View File

@ -0,0 +1,21 @@
#ifndef __PROTO_CMD_INCLUDE_H__
#define __PROTO_CMD_INCLUDE_H__
#include "lib_acl.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
*
* @param client {ACL_VSTREAM*}
* @return {int} 01-1
*/
int cmdline_service(ACL_VSTREAM *client);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,51 @@
#ifndef __GID_OPER_INCLUDE_H__
#define __GID_OPER_INCLUDE_H__
#ifdef __cplusplus
extern "C" {
#endif
#include "lib_acl.h"
#define GID_OK 200 /* 正常 */
#define GID_ERR_SID 500 /* 会话 ID 号不对 */
#define GID_ERR_OVERRIDE 501 /* 达到最大分配值 */
#define GID_ERR_SAVE 502 /* 存储至磁盘时出错 */
/**
*
* @param errnum {int}
* @return {const char*}
*/
const char *gid_serror(int errnum);
/**
* GID号
* @param path {const char*}
* @param tag {const char*} ID标识号
* @param step {unsigned int}
* @param errnum {int*}
* @return {acl_int64}, < 0
* errnum
*/
acl_int64 gid_next(const char *path, const char *tag,
unsigned int step, int *errnum);
/**
*
* @param fh_limit {int}
* @param sync_gid {int} gid
* @param debug_section {int}
*/
void gid_init(int fh_limit, int sync_gid, int debug_section);
/**
* 退使
*/
void gid_finish(void);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,26 @@
#ifndef __GLOBAL_INCLUDE_H__
#define __GLOBAL_INCLUDE_H__
/* 配置文件项 */
extern int var_cfg_debug_mem;
extern int var_cfg_loop_enable;
extern int var_cfg_sync_gid;
extern ACL_CONFIG_BOOL_TABLE service_conf_bool_tab[];
extern int var_cfg_debug_section;
extern int var_cfg_gid_step;
extern int var_cfg_gid_test;
extern int var_cfg_fh_limit;
extern int var_cfg_io_timeout;
extern ACL_CONFIG_INT_TABLE service_conf_int_tab[];
extern char *var_cfg_gid_path;
extern char *var_cfg_proto_list;
extern ACL_CONFIG_STR_TABLE service_conf_str_tab[];
/* 服务器之间传输的命令字定义 */
#define CMD_NEW_GID "new_gid"
#define CMD_TEST_GID "test_gid"
#endif

View File

@ -0,0 +1,59 @@
#ifndef __HTTP_SERVICE_INCLUDE_H__
#define __HTTP_SERVICE_INCLUDE_H__
#include "lib_acl.h"
#include "lib_protocol.h"
#ifdef __cplusplus
extern "C" {
#endif
/* in http_service.c */
/**
* HTTP
* @param client {ACL_VSTREAM*}
* @return {int} 01-1
*/
int http_service(ACL_VSTREAM *client);
/**
* HTTP
* @param client {ACL_VSTREAM*}
* @param status {int} HTTP 1xx, 2xx, 3xx, 4xx, 5xx
* @param keep_alive {int}
* @param body {const char*}
* @param len {int}
*/
int http_server_send_respond(ACL_VSTREAM* client, int status,
int keep_alive, char* body, int len);
/* in http_json.c */
/**
* JSON
* @param client {ACL_VSTREAM*}
* @param hdr_req {HTTP_HDR_REQ*} HTTP
* @param json {ACL_JSON*} json
* @return {int} 01-1
*/
int http_json_service(ACL_VSTREAM *client,
HTTP_HDR_REQ *hdr_req, ACL_JSON *json);
/* in http_xml.c */
/**
* XML
* @param client {ACL_VSTREAM*}
* @param hdr_req {HTTP_HDR_REQ*} HTTP
* @param xml {ACL_XML*} xml
* @return {int} 01-1
*/
int http_xml_service(ACL_VSTREAM *client,
HTTP_HDR_REQ *hdr_req, ACL_XML *xml);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,29 @@
#ifndef __SERVICE_MAIN_INCLUDE_H__
#define __SERVICE_MAIN_INCLUDE_H__
#include "lib_acl.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
*
* @param ctx {void*}
*/
extern void service_init(void *ctx);
extern void service_exit(void *ctx);
/**
*
* @param stream {ACL_VSTREAM*}
* @param ctx {void*}
*/
extern int service_main(ACL_VSTREAM *stream, void *ctx);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,128 @@
#include "lib_acl.h"
#include <string.h>
#include "gid_oper.h"
#include "global.h"
#include "cmdline_service.h"
static int send_respond_gid(ACL_VSTREAM *stream,
const char *tag, acl_int64 gid)
{
#if 0
if (acl_vstream_fprintf(stream, "STATUS^OK|GID^%lld|TAG^%s\r\n",
gid, tag) == ACL_VSTREAM_EOF)
#else
char buf[1024];
snprintf(buf, sizeof(buf), "STATUS^OK|GID^%lld|TAG^%s\r\n", gid, tag);
if (acl_vstream_writen(stream, buf, strlen(buf)) == ACL_VSTREAM_EOF)
#endif
{
acl_msg_info("%s(%d): respond to client error",
__FILE__, __LINE__);
return (-1);
}
else
return (1); /* 返回1表示保持长连接 */
}
static int send_respond_error(ACL_VSTREAM *stream,
const char *tag, const char *msg)
{
if (acl_vstream_fprintf(stream, "STATUS^ERR|TAG^%s|MSG^%s\r\n",
tag, msg) == ACL_VSTREAM_EOF)
{
acl_msg_info("%s(%d): respond to client error",
__FILE__, __LINE__);
return (-1);
}
else
return (0);
}
static int proto_new_gid(ACL_VSTREAM *stream, const char *tag)
{
acl_int64 gid;
int errnum = 0;
gid = gid_next(var_cfg_gid_path, tag, var_cfg_gid_step, &errnum);
if (gid >= 0)
return (send_respond_gid(stream, tag, gid));
else
return (send_respond_error(stream, tag, gid_serror(errnum)));
}
static int proto_test_gid(ACL_VSTREAM *stream,
const char *tag, acl_int64 test_id)
{
return (send_respond_gid(stream, tag, test_id));
}
static int proto_get_test_gid(ACL_VSTREAM *stream, const char *tag)
{
return (proto_test_gid(stream, tag, (acl_int64) var_cfg_gid_test));
}
/*--------------------------------------------------------------------------*/
typedef struct PROTO_CMDLINE {
const char *cmd; /* 命令字 */
int (*handle)(ACL_VSTREAM *, const char*); /* 协议处理函数句柄 */
} PROTO_CMDLINE;
/* 协议命令处理函数映射表 */
static PROTO_CMDLINE __proto_cmdline_tab[] = {
{ CMD_NEW_GID, proto_new_gid },
{ CMD_TEST_GID, proto_get_test_gid },
{ NULL, NULL },
};
/* 解析数据头 */
/* 协议格式:
* : CMD^xxx|tag^xxx:sid\r\n
* : STATUS^[OK|ERR]|[GID^xxx|INFO^xxx]|tag^%s\r\n
*/
int cmdline_service(ACL_VSTREAM *client)
{
const char *myname = "parse_req_hdr";
const char *cmd = NULL, *tag = "default";
char buf[1024];
ACL_ARGV *argv;
int i, ret;
ACL_ITER iter;
/* 先读取数据头 */
ret = acl_vstream_gets_nonl(client, buf, sizeof(buf) - 1);
if (ret == ACL_VSTREAM_EOF)
return (-1);
argv = acl_argv_split(buf, "|");
acl_foreach(iter, argv) {
const char *ptr = (const char*) iter.data;
if (strncasecmp(ptr, "CMD^", sizeof("CMD^") - 1) == 0)
cmd = ptr + sizeof("CMD^") - 1;
else if (strncasecmp(ptr, "TAG^", sizeof("TAG^") - 1) == 0)
tag = ptr + sizeof("TAG^") - 1;
}
if (cmd == NULL || *tag == 0) {
acl_msg_error("%s(%d): invalid request(%s)",
myname, __LINE__, buf);
acl_argv_free(argv);
return (-1);
}
for (i = 0; __proto_cmdline_tab[i].cmd != NULL; i++) {
if (strcasecmp(cmd, __proto_cmdline_tab[i].cmd) == 0) {
ret = __proto_cmdline_tab[i].handle(client, tag);
acl_argv_free(argv);
return (ret);
}
}
acl_msg_error("%s(%d): invalid request cmd(%s), no cmd found.",
myname, __LINE__, cmd);
acl_argv_free(argv);
return (-1);
}

View File

@ -0,0 +1,317 @@
#include "lib_acl.h"
#include <errno.h>
#include <string.h>
#include <pthread.h>
#include "gid_oper.h"
typedef struct GID_STORE {
ACL_FHANDLE fh; /* 文件句柄 */
ACL_VSTREAM *logger; /* 日志句柄 */
char tag[64]; /* 文件标识号 */
char sid[64]; /* 会话ID号相当于密码 */
unsigned int step; /* 步进值 */
acl_int64 cur_gid; /* 当前的ID值 */
acl_int64 min_gid; /* 最小的ID值 */
acl_int64 max_gid; /* 最大的ID值 */
} GID_STORE;
typedef struct {
char tag[64]; /* 文件标识号 */
char sid[64]; /* 会话ID号相当于密码 */
unsigned int step; /* 步进值 */
acl_int64 cur_gid; /* 当前的ID值 */
acl_int64 min_gid; /* 最小的ID值 */
acl_int64 max_gid; /* 最大的ID值 */
} GID_STORE_CTX;
static int __sync_gid = 1;
/* 同步内存数据至磁盘 */
static int gid_store_sync(GID_STORE *store)
{
char buf[1024];
/* 需要先将文件内容清空 */
#if 0
if (acl_file_ftruncate(store->fh.fp, 0) < 0) {
acl_msg_error("%s(%d), %s: ftruncate %s error(%s)",
__FILE__, __LINE__, __FUNCTION__,
ACL_VSTREAM_PATH(store->fh.fp), acl_last_serror());
return (-1);
}
#endif
if (acl_vstream_fseek(store->fh.fp, SEEK_SET, 0) < 0) {
acl_msg_error("%s(%d), %s: fseek %s error(%s)",
__FILE__, __LINE__, __FUNCTION__,
ACL_VSTREAM_PATH(store->fh.fp), acl_last_serror());
}
snprintf(buf, sizeof(buf), "%s:%s %d %lld %lld %lld\r\n",
store->tag, store->sid, store->step, store->cur_gid,
store->min_gid, store->max_gid);
/* 初始化文件内容: tag:sid step cur_gid min_gid max_gid\r\n */
if (acl_vstream_writen(store->fh.fp,
buf, strlen(buf)) == ACL_VSTREAM_EOF)
{
acl_msg_error("%s(%d), %s: write to %s error(%s)",
__FILE__, __LINE__, __FUNCTION__,
ACL_VSTREAM_PATH(store->fh.fp), acl_last_serror());
return (-1);
}
return (0);
}
/* 文件打开时的回调函数,有可能是打开了缓存句柄对象 */
static int gid_store_on_open(ACL_FHANDLE *fh, void *ctx)
{
GID_STORE *store = (GID_STORE*) fh;
GID_STORE_CTX *sc = (GID_STORE_CTX*) ctx;
ACL_ARGV *argv;
char buf[512], *ptr;
int ret;
/* 检查是否有问题 */
if (fh->size != sizeof(GID_STORE))
acl_msg_fatal("%s(%d), %s: size(%d) != GID_STORE's size(%d)",
__FILE__, __LINE__, __FUNCTION__,
(int) fh->size, (int) sizeof(GID_STORE));
/* 如果是新文件则初始化 */
if (fh->fsize == 0) {
ACL_SAFE_STRNCPY(store->tag, sc->tag, sizeof(store->tag));
ACL_SAFE_STRNCPY(store->sid, sc->sid, sizeof(store->sid));
store->step = sc->step;
store->cur_gid = sc->cur_gid;
store->min_gid = sc->min_gid;
store->max_gid = sc->max_gid;
return (gid_store_sync(store));
}
/* 数据格式tag:sid step cur_gid min_gid max_gid\r\n */
/* 从文件中获得数据 */
ret = acl_vstream_gets_nonl(fh->fp, buf, sizeof(buf));
if (ret == ACL_VSTREAM_EOF) {
acl_msg_error("%s(%d), %s: gets from %s error(%s)",
__FILE__, __LINE__, __FUNCTION__,
ACL_VSTREAM_PATH(fh->fp), acl_last_serror());
return (-1);
}
/* 拆分字符串 */
argv = acl_argv_split(buf, ",\t ");
if (argv->argc < 5) {
acl_msg_error("%s(%d), %s: invalid line(%s) from %s",
__FILE__, __LINE__, __FUNCTION__,
buf, ACL_VSTREAM_PATH(fh->fp));
acl_argv_free(argv);
return (-1);
}
ACL_SAFE_STRNCPY(store->tag, argv->argv[0], sizeof(store->tag));
ptr = strchr(store->tag, ':');
if (ptr) {
*ptr++ = 0;
ACL_SAFE_STRNCPY(store->sid, ptr, sizeof(store->sid));
}
store->step = atoi(argv->argv[1]);
/* 如果存储的步进值与参数中的步进值不一致,则优先采用参数步进值 */
if (store->step != sc->step) {
acl_msg_warn("%s(%d), %s: change step from %d to %d for %s",
__FILE__, __LINE__, __FUNCTION__,
store->step, sc->step, ACL_VSTREAM_PATH(fh->fp));
store->step = sc->step;
}
store->cur_gid = atoll(argv->argv[2]);
store->min_gid = atoll(argv->argv[3]);
store->max_gid = atoll(argv->argv[4]);
acl_argv_free(argv);
return (0);
}
/* 文件句柄真正关闭时的回调函数 */
static void gid_store_on_close(ACL_FHANDLE *fh acl_unused)
{
GID_STORE *store = (GID_STORE*) fh;
/* 当设置了非实时同步标记时才需要在文件句柄关闭时同步磁盘 */
if (__sync_gid == 0 && gid_store_sync(store) < 0)
acl_msg_fatal("%s(%d), %s: save %s error(%s)",
__FILE__, __LINE__, __FUNCTION__,
ACL_VSTREAM_PATH(store->fh.fp), acl_last_serror());
}
/* 打开文件,如果文件不存在则创建新的文件,如果文件句柄已经存在则直接返回 */
static GID_STORE *gid_store_open(const char *path, const char *tag,
const char *sid, unsigned int step)
{
char filepath[1024];
unsigned int oflags = ACL_FHANDLE_O_NOATIME
| ACL_FHANDLE_O_MLOCK
| ACL_FHANDLE_O_EXCL;
GID_STORE *store;
GID_STORE_CTX ctx;
ACL_SAFE_STRNCPY(ctx.tag, tag, sizeof(ctx.tag));
ACL_SAFE_STRNCPY(ctx.sid, sid, sizeof(ctx.sid));
ctx.step = step;
ctx.cur_gid = 0;
ctx.min_gid = 1;
ctx.max_gid = 0x7FFFFFFFFFFFFFFFllu;
snprintf(filepath, sizeof(filepath), "%s/%s", path, tag);
store = (GID_STORE*) acl_fhandle_open(sizeof(GID_STORE), oflags,
filepath, gid_store_on_open, &ctx, gid_store_on_close);
if (store == NULL)
acl_msg_fatal("%s(%d), %s: open %s error(%s)",
__FILE__, __LINE__, __FUNCTION__,
filepath, acl_last_serror());
return (store);
}
/* 获得当前本地时间 */
static void logtime_fmt(char *buf, size_t size)
{
time_t now;
struct tm local_time;
(void) time (&now);
(void) localtime_r(&now, &local_time);
strftime(buf, size, "%Y/%m/%d %H:%M:%S", &local_time);
}
/* 记录日志 */
static void gid_logger(GID_STORE *store)
{
char buf[128];
if (store->logger == NULL)
return;
logtime_fmt(buf, sizeof(buf));
if (acl_vstream_fprintf(store->logger, "%s|%s %lld\r\n",
buf, store->tag, store->cur_gid) == ACL_VSTREAM_EOF)
{
acl_msg_error("%s(%d), %s: fprintf to %s error(%s)",
__FILE__, __LINE__, __FUNCTION__,
ACL_VSTREAM_PATH(store->logger), acl_last_serror());
store->logger = NULL;
}
}
acl_int64 gid_next(const char *path, const char *tag_in,
unsigned int step, int *errnum)
{
acl_int64 gid;
char tag[128], *sid;
GID_STORE *store;
/* 需要从 tag 串中分离出 sid 串 */
ACL_SAFE_STRNCPY(tag, tag_in, sizeof(tag));
sid = strchr(tag, ':');
if (sid)
*sid++ = 0;
else
sid = "";
store = gid_store_open(path, tag, sid, step);
if (store->sid[0] != 0) {
if (sid == NULL || strcmp(sid, store->sid) != 0) {
acl_msg_error("%s(%d), %s: input sid(%s) invalid",
__FILE__, __LINE__, __FUNCTION__,
sid && *sid ? sid : "null");
if (errnum)
*errnum = GID_ERR_SID;
/* 关闭文件句柄,延迟 60 秒后关闭 */
acl_fhandle_close(&store->fh, 60);
return (-1);
}
}
/* 如果已经达到最大值,则崩溃了! */
if (store->max_gid - (unsigned int) store->step <= store->cur_gid) {
acl_msg_error("%s(%d), %s: %s Override!!, max_gid: %lld,"
" step: %d, cur_gid: %lld", __FILE__, __LINE__,
__FUNCTION__, ACL_VSTREAM_PATH(store->fh.fp),
store->max_gid, store->step, store->cur_gid);
if (errnum)
*errnum = GID_ERR_OVERRIDE;
/* 关闭文件句柄,延迟 60 秒后关闭 */
acl_fhandle_close(&store->fh, 60);
return (-1);
}
store->cur_gid += store->step;
gid = store->cur_gid;
if (__sync_gid && gid_store_sync(store) < 0) {
if (errnum)
*errnum = GID_ERR_SAVE;
acl_msg_error("%s(%d), %s: save %s error(%s)",
__FILE__, __LINE__, __FUNCTION__,
ACL_VSTREAM_PATH(store->fh.fp),
acl_last_serror());
/* 关闭文件句柄,延迟 60 秒后关闭 */
acl_fhandle_close(&store->fh, 60);
return (-1);
}
/* 记日志 */
if (store->logger)
gid_logger(store);
/* 关闭文件句柄,延迟 60 秒后关闭 */
acl_fhandle_close(&store->fh, 60);
if (errnum)
*errnum = GID_OK;
return (gid);
}
const char *gid_serror(int errnum)
{
static const struct {
int err;
const char *str;
} errors[] = {
{ GID_OK, "ok" },
{ GID_ERR_SID, "sid invalid" },
{ GID_ERR_OVERRIDE, "gid override" },
{ GID_ERR_SAVE, "gid save error" },
{ 0, 0 }
};
static const char *unknown = "unkown error";
int i;
for (i = 0; errors[i].str != NULL; i++) {
if (errnum == errors[i].err)
return (errors[i].str);
}
return (unknown);
}
void gid_init(int fh_limit, int sync_gid, int debug_section)
{
__sync_gid = sync_gid;
acl_fhandle_init(fh_limit, debug_section, ACL_FHANDLE_F_LOCK);
}
void gid_finish()
{
acl_fhandle_end();
}

View File

@ -0,0 +1,121 @@
#include "lib_acl.h"
#include "lib_protocol.h"
#include "gid_oper.h"
#include "global.h"
#include "http_service.h"
static int json_new_gid(ACL_VSTREAM *client, int keep_alive, ACL_JSON *json)
{
acl_int64 gid;
char buf[256], tag[64];
int errnum;
ACL_ARRAY *a;
#define STR acl_vstring_str
ACL_SAFE_STRNCPY(tag, "default:", sizeof(tag));
a = acl_json_getElementsByTagName(json, "tag");
if (a != NULL) {
ACL_ITER iter;
acl_foreach(iter, a) {
ACL_JSON_NODE *node = (ACL_JSON_NODE*) iter.data;
if (ACL_VSTRING_LEN(node->text) == 0)
continue;
ACL_SAFE_STRNCPY(tag, STR(node->text), sizeof(tag));
break;
}
acl_json_free_array(a);
}
errnum = 0;
gid = gid_next(var_cfg_gid_path, tag, var_cfg_gid_step, &errnum);
if (gid >= 0)
snprintf(buf, sizeof(buf),
"{ status: 'ok', gid: '%lld', tag: '%s' }\r\n",
gid, tag);
else
snprintf(buf, sizeof(buf), "{ status: 'error',"
" gid: '%lld', tag: '%s', err: '%d', msg: '%s' }\r\n",
gid, tag, errnum, gid_serror(errnum));
return (http_server_send_respond(client, 200, keep_alive,
buf, (int) strlen(buf)));
}
/*--------------------------------------------------------------------------*/
typedef struct PROTO_JSON {
/* 命令字 */
const char *cmd;
/* 协议处理函数句柄 */
int (*handle)(ACL_VSTREAM *client, int keep_alive, ACL_JSON*);
} PROTO_JSON;
/* 协议命令处理函数映射表 */
static PROTO_JSON __proto_json_tab[] = {
{ CMD_NEW_GID, json_new_gid },
{ NULL, NULL },
};
/* 处理 json 数据格式的请求 */
int http_json_service(ACL_VSTREAM *client,
HTTP_HDR_REQ *hdr_req, ACL_JSON *json)
{
ACL_ARRAY *a;
ACL_ITER iter;
char cmd[128];
int ret, i, keep_alive = 0;
/* json 数据格式要求: { cmd: xxx, tag: xxx:sid } */
/* 获得 cmd 命令字 */
a = acl_json_getElementsByTagName(json, "cmd");
if (a == NULL) {
acl_msg_error("%s(%d), %s: json error",
__FILE__, __LINE__, __FUNCTION__);
return (-1);
}
/* 从 JSON 对象获得命令字 */
cmd[0] = 0;
acl_foreach(iter, a) {
ACL_JSON_NODE *node = (ACL_JSON_NODE*) iter.data;
if (ACL_VSTRING_LEN(node->text) == 0)
continue;
ACL_SAFE_STRNCPY(cmd, acl_vstring_str(node->text), sizeof(cmd));
break;
}
acl_json_free_array(a);
if (cmd[0] == 0) {
acl_msg_error("%s(%d), %s: no cmd",
__FILE__, __LINE__, __FUNCTION__);
return (-1);
}
/* 客户端是否要求保持长连接 */
keep_alive = hdr_req->hdr.keep_alive;
/* 查询对应命令的处理函数对象 */
ret = -1;
for (i = 0; __proto_json_tab[i].cmd != NULL; i++) {
if (strcasecmp(cmd, __proto_json_tab[i].cmd) == 0) {
ret = __proto_json_tab[i].handle(
client, keep_alive, json);
break;
}
}
if (__proto_json_tab[i].cmd == NULL)
acl_msg_error("%s(%d), %s: cmd(%s) invalid",
__FILE__, __LINE__, __FUNCTION__, cmd);
if (ret < 0)
return (-1); /* 出错 */
else if (keep_alive)
return (1); /* 正常且需要保持长连接 */
else
return (0); /* 正常便是短连接 */
}

View File

@ -0,0 +1,131 @@
#include "lib_acl.h"
#include "lib_protocol.h"
#include "global.h"
#include "http_service.h"
/* 将数据返回给 HTTP 客户端 */
int http_server_send_respond(ACL_VSTREAM* client, int status,
int keep_alive, char* body, int len)
{
int ret;
struct iovec vector[2]; /* 数据数组 */
ACL_VSTRING* buf = acl_vstring_alloc(256);
HTTP_HDR_RES* hdr_res = http_hdr_res_static(status);
/* 在请求头中设置请求体的数据长度 */
http_hdr_put_int(&hdr_res->hdr, "Content-Length", len);
/* 设置长连接选项 */
http_hdr_put_str(&hdr_res->hdr, "Connection",
keep_alive ? "keep-alive" : "close");
/* 构建 HTTP 响应头数据 */
http_hdr_build(&hdr_res->hdr, buf);
/* 设置 HTTP 头 */
vector[0].iov_base = acl_vstring_str(buf);
vector[0].iov_len = ACL_VSTRING_LEN(buf);
/* 设置 HTTP 体 */
vector[1].iov_base = body;
vector[1].iov_len = len;
/* 发送响应头及响应体 */
ret = acl_vstream_writevn(client, vector, 2);
/* 释放 HTTP 响应头对象 */
http_hdr_res_free(hdr_res);
/* 释放缓冲区 */
acl_vstring_free(buf);
if (ret == ACL_VSTREAM_EOF)
return -1;
/* 发送HTTP响应成功 */
return 0;
}
/* HTTP 协议处理过程入口 */
int http_service(ACL_VSTREAM *client)
{
HTTP_HDR_REQ *hdr_req = http_hdr_req_new();
HTTP_REQ *req;
char buf[4096];
int ret, json_fmt;
const char *ptr;
/* 读取HTTP请求头 */
ret = http_hdr_req_get_sync(hdr_req, client, var_cfg_io_timeout);
if (ret < 0) {
http_hdr_req_free(hdr_req);
return (-1);
}
/* 分析HTTP请求头 */
if (http_hdr_req_parse(hdr_req) < 0) {
http_hdr_req_free(hdr_req);
acl_msg_error("%s(%d), %s: http request header invalid",
__FILE__, __LINE__, __FUNCTION__);
return (-1);
}
/* 必须保证数据体长度 > 0 */
if (hdr_req->hdr.content_length <= 0) {
http_hdr_req_free(hdr_req);
acl_msg_error("%s(%d), %s: http request header invalid",
__FILE__, __LINE__, __FUNCTION__);
return (-1);
}
/* 从 HTTP 请求头中获取请求体中的数据格式XML 或 JSON 格式 */
ptr = http_hdr_entry_value(&hdr_req->hdr, "x-gid-format");
if (ptr != NULL && strcasecmp(ptr, "xml") == 0)
json_fmt = 0;
else
json_fmt = 1;
req = http_req_new(hdr_req); /* 创建HTTP请求对象 */
if (json_fmt) {
ACL_JSON *json = acl_json_alloc(); /* 创建JSON解析器对象 */
/* 不断从客户端连接中读取数据并放入JSON解析器中进行解析 */
while (1) {
ret = http_req_body_get_sync(req, client,
buf, sizeof(buf) - 1);
if (ret < 0) {
/* 说明没有读到所要求的数据长度,表明出错 */
http_req_free(req);
acl_json_free(json);
return (-1);
} else if (ret == 0) /* 表明已经读完了所有的数据 */
break;
buf[ret] = 0;
acl_json_update(json, buf);
}
ret = http_json_service(client, hdr_req, json);
acl_json_free(json);
} else {
ACL_XML *xml = acl_xml_alloc(); /* 创建XML解析器对象 */
while (1) {
ret = http_req_body_get_sync(req, client,
buf, sizeof(buf) - 1);
if (ret < 0) {
http_req_free(req);
acl_xml_free(xml);
return (-1);
} else if (ret == 0)
break;
buf[ret] = 0;
acl_xml_update(xml, buf);
}
ret = http_xml_service(client, hdr_req, xml);
acl_xml_free(xml);
}
http_req_free(req);
return (ret);
}

View File

@ -0,0 +1,128 @@
#include "lib_acl.h"
#include "lib_protocol.h"
#include "gid_oper.h"
#include "global.h"
#include "http_service.h"
static int xml_new_gid(ACL_VSTREAM *client, int keep_alive, ACL_XML_NODE *node)
{
acl_int64 gid;
char buf[256], tag[64];
const char *ptr;
int errnum = 0;
#define STR acl_vstring_str
ACL_SAFE_STRNCPY(tag, "default:", sizeof(tag));
ptr = acl_xml_getElementAttrVal(node, "tag");
if (ptr && *ptr) {
ACL_SAFE_STRNCPY(tag, ptr, sizeof(tag));
}
gid = gid_next(var_cfg_gid_path, tag, var_cfg_gid_step, &errnum);
if (gid >= 0)
snprintf(buf, sizeof(buf),
"<respond status='ok' gid='%lld' tag='%s' />\r\n", gid, tag);
else
snprintf(buf, sizeof(buf),
"<respond status='error' gid='%lld' tag='%s'"
" err='%d' msg='%s' />\r\n",
gid, tag, errnum, gid_serror(errnum));
return (http_server_send_respond(client, 200, keep_alive,
buf, (int) strlen(buf)));
}
/*--------------------------------------------------------------------------*/
typedef struct PROTO_XML {
/* 命令字 */
const char *cmd;
/* 协议处理函数句柄 */
int (*handle)(ACL_VSTREAM *client, int keep_alive, ACL_XML_NODE*);
} PROTO_XML;
/* 协议命令处理函数映射表 */
static PROTO_XML __proto_xml_tab[] = {
{ CMD_NEW_GID, xml_new_gid },
{ NULL, NULL },
};
/* 处理 xml 数据格式的请求 */
int http_xml_service(ACL_VSTREAM *client,
HTTP_HDR_REQ *hdr_req, ACL_XML *xml)
{
ACL_ARRAY *a;
ACL_ITER iter;
char cmd[128];
const char *ptr;
ACL_XML_NODE *node;
int ret, i, keep_alive = 0;
/* xml 数据格式要求: <request cmd='xxx' tag='xxx:sid' /> */
/* 获得 cmd 命令字 */
a = acl_xml_getElementsByTagName(xml, "request");
if (a == NULL) {
acl_msg_error("%s(%d), %s: xml error",
__FILE__, __LINE__, __FUNCTION__);
return (-1);
}
/* 找到第一个结点即可 */
node = NULL;
acl_foreach(iter, a) {
node = (ACL_XML_NODE*) iter.data;
break;
}
/* 从 xml 对象获得命令字 */
ptr = acl_xml_getElementAttrVal(node, "cmd");
if (ptr == NULL || *ptr == 0) {
acl_msg_error("%s(%d), %s: no cmd attr",
__FILE__, __LINE__, __FUNCTION__);
acl_xml_free_array(a);
return (-1);
}
ACL_SAFE_STRNCPY(cmd, ptr, sizeof(cmd));
if (cmd[0] == 0) {
acl_xml_free_array(a);
acl_msg_error("%s(%d), %s: no cmd",
__FILE__, __LINE__, __FUNCTION__);
return (-1);
}
/* 客户端是否要求保持长连接 */
keep_alive = hdr_req->hdr.keep_alive;
/* 查询对应命令的处理函数对象 */
ret = -1;
for (i = 0; __proto_xml_tab[i].cmd != NULL; i++) {
if (strcasecmp(cmd, __proto_xml_tab[i].cmd) == 0) {
ret = __proto_xml_tab[i].handle(
client, keep_alive, node);
break;
}
}
/* 必须是在不用 node 时才可以释放该数组对象 */
acl_xml_free_array(a);
if (__proto_xml_tab[i].cmd == NULL)
acl_msg_error("%s(%d), %s: cmd(%s) invalid",
__FILE__, __LINE__, __FUNCTION__, cmd);
if (ret < 0)
return (-1); /* 出错 */
else if (keep_alive)
return (1); /* 正常且需要保持长连接 */
else
return (0); /* 正常便是短连接 */
}

View File

@ -0,0 +1,173 @@
#include "lib_acl.h"
#include "lib_protocol.h"
#include "global.h"
#include "gid_oper.h"
#include "cmdline_service.h"
#include "http_service.h"
#include "service_main.h"
/* ÅäÖÃÎļþÏî */
/* TODO: you can add configure items here */
int var_cfg_debug_mem;
int var_cfg_loop_enable;
int var_cfg_sync_gid;
ACL_CONFIG_BOOL_TABLE service_conf_bool_tab[] = {
/* TODO: you can add configure variables of (bool) type here */
{ "debug_mem", 0, &var_cfg_debug_mem },
{ "loop_enable", 0, &var_cfg_loop_enable },
{ "sync_gid", 1, &var_cfg_sync_gid },
{ 0, 0, 0 },
};
int var_cfg_debug_section;
int var_cfg_gid_step;
int var_cfg_gid_test;
int var_cfg_fh_limit;
int var_cfg_io_timeout;
ACL_CONFIG_INT_TABLE service_conf_int_tab[] = {
/* TODO: you can add configure variables of int type here */
{ "debug_section", 120, &var_cfg_fh_limit, 0, 0 },
{ "gid_step", 1, &var_cfg_gid_step, 0, 0 },
{ "gid_test", 50000, &var_cfg_gid_test, 0, 0 },
{ "fh_limit", 100, &var_cfg_fh_limit, 0, 0 },
{ "io_timeout", 30, &var_cfg_io_timeout, 0, 0 },
{ 0, 0, 0, 0, 0 },
};
char *var_cfg_gid_path;
char *var_cfg_proto_list;
char *var_cfg_proto_default;
ACL_CONFIG_STR_TABLE service_conf_str_tab[] = {
/* TODO: you can add configure variables of (char *) type here */
{ "gid_path", "./var", &var_cfg_gid_path },
{ "proto_list", "http|127.0.0.1:7070|127.0.0.1:7071, cmdline|127.0.0.1:7072|127.0.0.1:7073", &var_cfg_proto_list },
{ "proto_default", "http", &var_cfg_proto_default },
{ 0, 0, 0 },
};
typedef struct PROTO {
char name[32];
char addr[256];
size_t len;
int (*service)(ACL_VSTREAM*);
} PROTO;
static ACL_ARRAY *__proto_map = NULL;
static int (*__default_service)(ACL_VSTREAM*) = NULL;
static void proto_add(const char *data)
{
int (*service)(ACL_VSTREAM*) = NULL;
ACL_ARGV *tokens = acl_argv_split(data, "|");
PROTO *proto;
int i;
if (tokens->argc < 2) {
acl_msg_error("invalid proto: %s", data);
acl_argv_free(tokens);
return;
}
if (strcasecmp(tokens->argv[0], "cmdline") == 0)
service = cmdline_service;
else if (strcasecmp(tokens->argv[0], "http") == 0)
service = http_service;
else {
acl_msg_error("invalid service name: %s", tokens->argv[0]);
acl_argv_free(tokens);
return;
}
for (i = 1; i < tokens->argc; i++) {
proto = (struct PROTO*) acl_mymalloc(sizeof(struct PROTO));
proto->service = service;
snprintf(proto->name, sizeof(proto->name), "%s", tokens->argv[0]);
snprintf(proto->addr, sizeof(proto->addr), "%s", tokens->argv[i]);
proto->len = strlen(proto->addr);
acl_array_append(__proto_map, proto);
}
acl_argv_free(tokens);
}
static void parse_proto_list(void)
{
ACL_ARGV *tokens = acl_argv_split(var_cfg_proto_list, ",; \t");
ACL_ITER iter;
__proto_map = acl_array_create(1);
acl_foreach(iter, tokens) {
proto_add((const char*) iter.data);
}
acl_argv_free(tokens);
}
/* ³õʼ»¯º¯Êý */
void service_init(void *ctx acl_unused)
{
if (var_cfg_debug_mem) {
acl_memory_debug_start();
acl_memory_debug_stack(1);
}
if (strcasecmp(var_cfg_proto_default, "cmdline") == 0)
__default_service = cmdline_service;
else
__default_service = http_service;
parse_proto_list();
gid_init(var_cfg_fh_limit, var_cfg_sync_gid, var_cfg_debug_section);
}
void service_exit(void *ctx acl_unused)
{
if (__proto_map != NULL)
acl_array_free(__proto_map, acl_myfree_fn);
gid_finish();
}
int service_main(ACL_VSTREAM *client, void *ctx acl_unused)
{
int (*service)(ACL_VSTREAM*) = NULL;
int ret;
char addr[256];
ACL_ITER iter;
PROTO *proto;
if (acl_getsockname(ACL_VSTREAM_SOCK(client), addr, sizeof(addr)) < 0) {
acl_msg_error("can't get local addr from fd: %d",
ACL_VSTREAM_SOCK(client));
return -1;
}
acl_foreach(iter, __proto_map) {
proto = (PROTO*) iter.data;
if (acl_strrncasecmp(proto->addr, addr, proto->len) == 0) {
service = proto->service;
break;
}
}
if (service == NULL) {
service = __default_service;
acl_msg_info("user default service for %s", var_cfg_proto_default);
}
if (var_cfg_loop_enable) {
while (1) {
if ((ret = service(client)) != 1)
return (-1);
}
} else if (service(client) != 1)
return (-1);
else
return (0);
}

View File

@ -0,0 +1,116 @@
SHELL = /bin/sh
CC = g++
CC = gcc
#CC = ${MY_ENV_CC}
AR = ar
ARFL = rv
#ARFL = cru
RANLIB = ranlib
CFLAGS = -c -g -W -Wall -Wcast-qual -Wcast-align \
-Waggregate-return \
-Wno-long-long \
-Wpointer-arith -Werror -Wshadow -O2 \
-D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -D_USE_FAST_MACRO
#CFLAGS = -c -g -W -Wall -Wcast-qual -Wcast-align \
#-Waggregate-return -Wmissing-prototypes \
#-Wpointer-arith -Werror -Wshadow -O2 \
#-D_POSIX_PTHREAD_SEMANTICS -D_USE_FAST_MACRO
###########################################################
#Check system:
# Linux, SunOS, Solaris, BSD variants, AIX, HP-UX
SYSLIB = -lpthread -lcrypt -lz
CHECKSYSRES = @echo "Unknow system type!";exit 1
UNIXNAME = $(shell uname -sm)
OSTYPE = $(shell uname -p)
RPATH =
ifeq ($(CC),)
CC = gcc
endif
#Path for Linux
ifeq ($(findstring Linux, $(UNIXNAME)), Linux)
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DLINUX2 -D_REENTRANT -pedantic
ifeq ($(findstring i686, $(OSTYPE)), i686)
RPATH = linux32
FLAG_OS = LINUX32
endif
ifeq ($(findstring x86_64, $(OSTYPE)), x86_64)
RPATH = linux64
FLAG_OS = LINUX64
endif
endif
#Path for SunOS
ifeq ($(findstring SunOS, $(UNIXNAME)), SunOS)
ifeq ($(findstring 86, $(UNIXNAME)), 86)
SYSLIB += -lsocket -lnsl -lrt
endif
ifeq ($(findstring sun4u, $(UNIXNAME)), sun4u)
SYSLIB += -lsocket -lnsl -lrt
endif
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DSUNOS5 -D_REENTRANT -pedantic
endif
#Path for HP-UX
ifeq ($(findstring HP-UX, $(UNIXNAME)), HP-UX)
ifeq ($CC, "gcc")
CFLAGS += -Wstrict-prototypes
endif
CFLAGS += -DHP_UX -DHPUX11
PLAT_NAME=hp-ux
endif
#Find system type.
ifneq ($(SYSPATH),)
CHECKSYSRES = @echo "System is $(shell uname -sm)"
endif
###########################################################
BASE_PATH = /opt/import_lib
BASE_LIB_PATH = $(BASE_PATH)/lib
BASE_INC_PATH = $(BASE_PATH)/include
ACL_LIB = $(BASE_LIB_PATH)
ACL_INC = $(BASE_INC_PATH)/acl
CFLAGS += $(INC_COMPILE)
INC_COMPILE = -I$(ACL_INC) -I$(BASE_INC_PATH) -I./include
LIB_COMPILE = -L$(ACL_LIB) -l_acl
###########################################################
OUT_PATH = .
OBJ_PATH = $(OUT_PATH)
#Project's objs
SRC = $(wildcard ./*.c)
OBJ = $(patsubst %.c, $(OBJ_PATH)/%.o, $(notdir $(SRC)))
###########################################################
PROG = test
.PHONY = all clean
COMPILE = $(CC) $(CFLAGS)
$(PROG): $(OBJ)
$(CC) $(OBJ) $(LIB_COMPILE) $(SYSLIB) -o $(PROG)
@echo ""
@echo "All ok! Output:$(PROG)"
@echo ""
$(OBJ_PATH)/%.o: ./%.c
$(COMPILE) $< -o $@
clean:
rm -f $(PROG)
rm -f $(OBJ)

View File

@ -0,0 +1,120 @@
#include "lib_acl.h"
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <stdarg.h>
#include <unistd.h>
#include <time.h>
static int request(ACL_VSTREAM *client, int cmd_num, int out)
{
const char cmd1[] = "CMD^new_gid|TAG^default:hello\r\n";
const char cmd2[] = "CMD^test_gid\r\n";
const char *cmd;
char buf[256];
int ret;
if (cmd_num == 1)
cmd = cmd1;
else
cmd = cmd2;
ret = acl_vstream_writen(client, cmd, strlen(cmd));
if (ret == ACL_VSTREAM_EOF) {
printf("write cmd to server error\n");
return (-1);
}
ret = acl_vstream_gets(client, buf, sizeof(buf));
if (ret == ACL_VSTREAM_EOF) {
printf("gets error\n");
return (-1);
}
if (out)
printf(">>gets: %s\n", buf);
return (0);
}
static void run(const char *addr, int n, int keep_alive, int cmd_num)
{
ACL_VSTREAM *client = NULL;
int i, ret, out;
time_t begin, end;
time(&begin);
for (i = 0; i < n; i++) {
if (client == NULL) {
client = acl_vstream_connect(addr, ACL_BLOCKING, 0, 0, 0);
if (client == NULL) {
printf("connect to %s error %s\n",
addr, acl_last_serror());
break;
}
acl_tcp_so_linger(ACL_VSTREAM_SOCK(client), 1, 0);
}
if ((i > 0 && i % 10000 == 0) || n <= 20)
out = 1;
else
out = 0;
ret = request(client, cmd_num, out);
if (ret < 0)
break;
if (!keep_alive) {
acl_vstream_close(client);
client = NULL;
}
if (out) {
printf(">>>i: %d\n", i);
ACL_METER_TIME("----------");
}
}
time(&end);
printf("ok, total: %d, time spent: %ld\n", i, end - begin);
if (client)
acl_vstream_close(client);
}
static void usage(const char *procname)
{
printf("usage: %s -h [help] -s server_addr[127.0.0.1:7072] -n loop_count -k -i cmd_number\n", procname);
}
int main(int argc, char *argv[])
{
char ch, addr[32];
int n = 1, keep_alive = 0, cmd_num = 0;
addr[0] = 0;
while ((ch = getopt(argc, argv, "hks:n:i:")) > 0) {
switch (ch) {
case 's':
ACL_SAFE_STRNCPY(addr, optarg, sizeof(addr));
break;
case 'n':
n = atoi(optarg);
break;
case 'k':
keep_alive = 1;
break;
case 'i':
cmd_num = atoi(optarg);
break;
case 'h':
default:
usage(argv[0]);
return (0);
}
}
if (addr[0] == 0 || n <= 0) {
usage(argv[0]);
return (0);
}
run(addr, n, keep_alive, cmd_num);
return (0);
}

View File

@ -0,0 +1,174 @@
#include "lib_acl.h"
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <string.h>
#include <signal.h>
#include <assert.h>
#include "global.h"
#include "service_main.h"
static acl_pthread_pool_t *__thr_pool = NULL;
static int __run_once = 0;
static void app_run(void *arg)
{
ACL_VSTREAM *client = (ACL_VSTREAM*) arg;
while (1) {
if (service_main(client, NULL) < 0)
break;
if (__run_once)
break;
}
printf("close client stream now\n");
acl_vstream_close(client);
}
static void on_sigint(int signum acl_unused)
{
signal(SIGINT, SIG_DFL);
if (__thr_pool)
acl_pthread_pool_destroy(__thr_pool);
exit (0);
}
static ACL_VSTREAM *init(const char *filepath)
{
ACL_VSTREAM *sstream;
char addr[] = ":7072";
ACL_XINETD_CFG_PARSER *cfg = NULL;
acl_init();
/*
acl_debug_malloc_init(NULL, "log.txt");
*/
sstream = acl_vstream_listen(addr, 60);
assert(sstream != NULL);
printf("listen on: %s\n", addr);
if (filepath)
cfg = acl_xinetd_cfg_load(filepath);
acl_xinetd_params_int_table(cfg, service_conf_int_tab);
acl_xinetd_params_bool_table(cfg, service_conf_bool_tab);
acl_xinetd_params_str_table(cfg, service_conf_str_tab);
if (cfg)
acl_xinetd_cfg_free(cfg);
signal(SIGINT, on_sigint); /* ע˛áłĚĐňÍËłöťŘľ÷şŻĘý */
service_init(NULL);
return (sstream);
}
static void end(void)
{
service_exit(NULL);
acl_myfree(var_cfg_gid_path);
acl_end();
}
static void app_test_thrpool(const char *filepath)
{
ACL_VSTREAM *sstream;
sstream = init(filepath);
__thr_pool = acl_thread_pool_create(10, 120);
while (1) {
ACL_VSTREAM *client = acl_vstream_accept(sstream, NULL, 0);
if (client == NULL) {
printf("accept error: %s\n", acl_last_serror());
break;
} else {
printf("accept one\n");
}
acl_pthread_pool_add(__thr_pool, app_run, client);
}
acl_vstream_close(sstream);
}
static void app_test_once(const char *filepath)
{
ACL_VSTREAM *client, *sstream;
__run_once = 1;
sstream = init(filepath);
client = acl_vstream_accept(sstream, NULL, 0);
app_run(client);
printf("close sstream now\n");
acl_vstream_close(sstream);
end();
}
static void usage(const char *procname)
{
printf("usage: %s help\n", procname);
printf("usage: %s test -f conf_file -m[use mempool]\n", procname);
}
static void app_test(const char *procname, int argc, char **argv)
{
char filepath[256];
int ch, use_mempool = 0, use_concurrent = 0;
filepath[0] = 0;
while ((ch = getopt(argc, argv, "f:mP")) > 0) {
switch (ch) {
case 'f':
snprintf(filepath, sizeof(filepath), "%s", optarg);
break;
case 'm':
use_mempool = 1;
break;
case 'P':
use_concurrent = 1;
break;
default:
break;
}
}
if (filepath[0] == 0) {
usage(procname);
return;
}
if (use_mempool)
acl_mem_slice_init(8, 1024, 100000,
ACL_SLICE_FLAG_GC2 |
ACL_SLICE_FLAG_RTGC_OFF |
ACL_SLICE_FLAG_LP64_ALIGN);
acl_msg_stdout_enable(1);
if (use_concurrent)
app_test_thrpool(filepath);
else
app_test_once(filepath);
}
int main(int argc, char **argv)
{
if (argc == 2 && strcmp(argv[1], "help") == 0) {
usage(argv[0]);
} else if (argc >= 3 && strcmp(argv[1], "test") == 0) {
app_test(argv[0], argc - 1, argv + 1);
} else {
acl_ioctl_app_main(argc, argv, service_main, NULL,
ACL_APP_CTL_INIT_FN, service_init,
ACL_APP_CTL_EXIT_FN, service_exit,
ACL_APP_CTL_CFG_INT, service_conf_int_tab,
ACL_APP_CTL_CFG_STR, service_conf_str_tab,
ACL_APP_CTL_CFG_BOOL, service_conf_bool_tab,
ACL_APP_CTL_END);
}
return (0);
}

View File

@ -0,0 +1,3 @@
#!/bin/sh
valgrind --tool=memcheck --leak-check=yes -v ./gid_server test -f gid_server.cf

View File

@ -0,0 +1,73 @@
#include "lib_acl.h"
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <string.h>
#include <getopt.h>
#include "service_main.h"
static void client_thread(int event_type acl_unused, void* arg)
{
ACL_WORKER_ATTR* attr = (ACL_WORKER_ATTR*) arg;
ACL_VSTREAM *client = (ACL_VSTREAM*) attr->run_data;
time_t last, cost;
while (1) {
last = time(NULL);
if (service_main(client, NULL) < 0)
break;
cost = time(NULL) - last;
if (cost >= 1)
printf("%s: >>> time cost = %ld\r\n", __FILE__, cost);
}
acl_vstream_close(client);
}
static void usage(const char *progname)
{
printf("usage: %s -[help]\r\n"
"-s server_addr\r\n"
"-f regnum\r\n", progname);
getchar();
}
int main(int argc, char *argv[])
{
ACL_VSTREAM *sstream, *client;
ACL_WORK_QUEUE* wq = acl_workq_create(100, 60, NULL, NULL);
char ch, *addr = "127.0.0.1:8889";
char *regnum = "regnum";
while ((ch = getopt(argc, argv, "hs:f:")) > 0) {
switch (ch) {
default:
case 'h':
usage(argv[0]);
exit (0);
case 's':
addr = acl_mystrdup(optarg);
break;
case 'f':
regnum = optarg;
break;
}
}
var_cfg_cache_file = acl_mystrdup(regnum);
acl_socket_init();
service_init(NULL);
sstream = acl_vstream_listen(addr, 32);
if (sstream == NULL)
acl_msg_fatal("can't listen on addr(%s)", addr);
printf("started, listen on %s ...\r\n", addr);
while (1) {
client = acl_vstream_accept(sstream, NULL, 0);
acl_workq_add(wq, client_thread, 0, client);
}
exit (0);
}

3
app/gid/readme.txt Normal file
View File

@ -0,0 +1,3 @@
本模块主要提供唯一ID号的功能服务器启动后客户端可以通过
三种协议方式连接服务器获得唯一ID目前提供了C和JAVA版本的
客户端API。

View File

@ -0,0 +1,58 @@
#include "StdAfx.h"
#include ".\httpservice.h"
static char *tag_addr = "--addr";
static char *tag_http_vhost_path = "--http_vhost_path";
static char *tag_http_vhost_default = "--http_vhost_default";
static char *tag_http_tmpl_path = "--http_tmpl_path";
static char *tag_http_filter_info = "--http_filter_info";
CHttpService::CHttpService(
const char * procname,
const char * addr,
const char * vhostPath,
const char * vhostDefault,
const char * tmplPath,
const char * filterInfo)
: m_addr(_T(addr))
, m_vhostPath(_T(vhostPath))
, m_vhostDefault(_T(vhostDefault))
, m_tmplPath(_T(tmplPath))
, m_filterInfo(_T(filterInfo))
{
int i;
m_argc = 10;
m_argv = (char **) calloc(m_argc, sizeof(char*));
i = 0;
m_argv[i++] = strdup(tag_addr);
m_argv[i++] = strdup(addr);
m_argv[i++] = strdup(tag_http_vhost_path);
m_argv[i++] = strdup(vhostPath);
m_argv[i++] = strdup(tag_http_vhost_default);
m_argv[i++] = strdup(vhostDefault);
m_argv[i++] = strdup(tag_http_tmpl_path);
m_argv[i++] = strdup(tmplPath);
m_argv[i++] = strdup(tag_http_filter_info);
m_argv[i++] = strdup(filterInfo);
ASSERT(i == m_argc);
CProcService::Init(_T(procname));
}
CHttpService::~CHttpService(void)
{
int i;
for (i = 0; i < m_argc; i++)
{
free(m_argv[i]);
}
free(m_argv);
}

View File

@ -0,0 +1,21 @@
#pragma once
#include "procservice.h"
class CHttpService : public CProcService
{
public:
CHttpService(
const char *procname,
const char *addr,
const char * vhostPath,
const char * vhostDefault,
const char * tmplPath,
const char * filterInfo);
~CHttpService(void);
private:
CString m_addr;
CString m_vhostPath;
CString m_vhostDefault;
CString m_tmplPath;
CString m_filterInfo;
};

View File

@ -0,0 +1,83 @@
// JawsCtrl.cpp : 定义应用程序的类行为。
//
#include "stdafx.h"
#include "JawsCtrl.h"
#include "JawsCtrlDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CJawsCtrlApp
BEGIN_MESSAGE_MAP(CJawsCtrlApp, CWinApp)
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
// CJawsCtrlApp 构造
CJawsCtrlApp::CJawsCtrlApp()
: m_singleCtrl("Jaws")
{
// TODO: 在此处添加构造代码,
// 将所有重要的初始化放置在 InitInstance 中
}
// 唯一的一个 CJawsCtrlApp 对象
CJawsCtrlApp theApp;
// CJawsCtrlApp 初始化
BOOL CJawsCtrlApp::InitInstance()
{
// 如果一个运行在 Windows XP 上的应用程序清单指定要
// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
//则需要 InitCommonControls()。否则,将无法创建窗口。
InitCommonControls();
CWinApp::InitInstance();
if (!m_singleCtrl.Check())
return FALSE;
if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}
AfxEnableControlContainer();
// 标准初始化
// 如果未使用这些功能并希望减小
// 最终可执行文件的大小,则应移除下列
// 不需要的特定初始化例程
// 更改用于存储设置的注册表项
// TODO: 应适当修改该字符串,
// 例如修改为公司或组织名
SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
CJawsCtrlDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: 在此放置处理何时用“确定”来关闭
//对话框的代码
}
else if (nResponse == IDCANCEL)
{
// TODO: 在此放置处理何时用“取消”来关闭
//对话框的代码
}
// 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
// 而不是启动应用程序的消息泵。
return FALSE;
}

View File

@ -0,0 +1,33 @@
// JawsCtrl.h : PROJECT_NAME 应用程序的主头文件
//
#pragma once
#ifndef __AFXWIN_H__
#error 在包含用于 PCH 的此文件之前包含“stdafx.h”
#endif
#include "SingleCtrl.h"
#include "resource.h" // 主符号
// CJawsCtrlApp:
// 有关此类的实现,请参阅 JawsCtrl.cpp
//
class CJawsCtrlApp : public CWinApp
{
public:
CJawsCtrlApp();
// 重写
public:
virtual BOOL InitInstance();
CSingleCtrl m_singleCtrl;
// 实现
DECLARE_MESSAGE_MAP()
};
extern CJawsCtrlApp theApp;

View File

@ -0,0 +1,233 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// 中文(中华人民共和国) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n"
"LANGUAGE 4, 2\r\n"
"#pragma code_page(936)\r\n"
"#include ""res\\JawsCtrl.rc2"" // 非 Microsoft Visual C++ 编辑过的资源\r\n"
"#include ""afxres.rc"" // 标准组件\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDR_MAINFRAME ICON "res\\JawsCtrl.ico"
IDI_MIN_ICON ICON "res\\min_icon.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_ABOUTBOX DIALOGEX 0, 0, 235, 55
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
WS_SYSMENU
CAPTION "关于 JawsCtrl"
FONT 9, "MS Shell Dlg", 0, 0, 0x1
BEGIN
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
LTEXT "JawsCtrl Version 1.0",IDC_STATIC,40,10,119,8,
SS_NOPREFIX
LTEXT "Copyright (C) 2008",IDC_STATIC,40,25,119,8
DEFPUSHBUTTON "确定",IDOK,178,7,50,16,WS_GROUP
END
IDD_JAWSCTRL_DIALOG DIALOGEX 0, 0, 183, 175
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP |
WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "JawsCtrl"
FONT 9, "MS Shell Dlg", 0, 0, 0x1
BEGIN
LTEXT "IP地址",IDC_STATIC,24,118,28,12
LTEXT "端口号:",IDC_STATIC,24,138,28,8
EDITTEXT IDC_EDIT_PORT,57,137,37,14,ES_AUTOHSCROLL
GROUPBOX "本地监听",IDC_STATIC,16,93,152,65
CONTROL "",IDC_IPADDRESS_LISTEN,"SysIPAddress32",WS_TABSTOP,57,
117,100,15
PUSHBUTTON "启动",IDC_BUTTON_START,116,13,50,14
PUSHBUTTON "停止",IDC_BUTTON_STOP,116,28,50,14
CONTROL "Webserver",IDC_RADIO_HTTPD,"Button",BS_AUTORADIOBUTTON |
WS_GROUP,23,27,50,10
CONTROL "http proxy",IDC_RADIO_HTTP_PROXY,"Button",
BS_AUTORADIOBUTTON,23,39,49,10
PUSHBUTTON "退出",IDC_BUTTON_QUIT,116,44,50,14
GROUPBOX "运行模式",IDC_STATIC,18,17,55,37
CONTROL "",IDC_DIVIDER,"Static",SS_BLACKRECT,3,86,176,1,
WS_EX_STATICEDGE
PUSHBUTTON "&M更多>>",IDC_MORE,116,66,50,14
CONTROL "开机启动",IDC_AUTO_RUN,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,19,68,43,10
END
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080403a8"
BEGIN
VALUE "CompanyName", "TODO: <公司名>"
VALUE "FileDescription", "TODO: <文件说明>"
VALUE "FileVersion", "1.0.0.1"
VALUE "InternalName", "JawsCtrl.exe"
VALUE "LegalCopyright", "TODO: (C) <公司名>。保留所有权利。"
VALUE "OriginalFilename", "JawsCtrl.exe"
VALUE "ProductName", "TODO: <产品名>"
VALUE "ProductVersion", "1.0.0.1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "翻译", 0x804, 936
END
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
IDD_ABOUTBOX, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 228
TOPMARGIN, 7
BOTTOMMARGIN, 48
END
IDD_JAWSCTRL_DIALOG, DIALOG
BEGIN
LEFTMARGIN, 3
RIGHTMARGIN, 179
TOPMARGIN, 7
BOTTOMMARGIN, 168
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDR_MENU_ICON MENU
BEGIN
POPUP "托盘菜单"
BEGIN
MENUITEM "打开主窗口", ID_OPEN_MAIN
MENUITEM "退出程序", ID_QUIT
END
END
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE
BEGIN
IDS_ABOUTBOX "关于 JawsCtrl(&A)..."
IDP_SOCKETS_INIT_FAILED "Windows 套接字初始化失败。"
END
#endif // 中文(中华人民共和国) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE 4, 2
#pragma code_page(936)
#include "res\JawsCtrl.rc2" // 非 Microsoft Visual C++ 编辑过的资源
#include "afxres.rc" // 标准组件
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

Some files were not shown because too many files have changed in this diff Show More