From 0bce70a0e483294b83b8bf9d5468838a63405612 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sun, 8 Mar 2009 17:23:30 +0200 Subject: Add support for binary representations xsde/cxx/hybrid/insertion-*: insertion operators generator xsde/cxx/hybrid/extraction-*: extraction operators generator libxsde/xsde/cxx/hybrid/cdr/: CDR support code libxsde/xsde/cxx/hybrid/xdr/: XDR support code tests/cxx/hybrid/binary/: new tests examples/cxx/hybrid/binary/: new examples documentation/cxx/hybrid/guide/: new chapter --- dist/examples/cxx/hybrid/binary/cdr/makefile | 58 ++++++++++++++++++++ dist/examples/cxx/hybrid/binary/cdr/nmakefile | 55 +++++++++++++++++++ dist/examples/cxx/hybrid/binary/custom/makefile | 70 ++++++++++++++++++++++++ dist/examples/cxx/hybrid/binary/custom/nmakefile | 68 +++++++++++++++++++++++ dist/examples/cxx/hybrid/binary/custom/options | 8 +++ dist/examples/cxx/hybrid/binary/makefile | 33 +++++++++++ dist/examples/cxx/hybrid/binary/nmakefile | 29 ++++++++++ dist/examples/cxx/hybrid/binary/xdr/makefile | 58 ++++++++++++++++++++ dist/examples/cxx/hybrid/binary/xdr/nmakefile | 53 ++++++++++++++++++ dist/examples/cxx/hybrid/makefile | 2 +- 10 files changed, 433 insertions(+), 1 deletion(-) create mode 100644 dist/examples/cxx/hybrid/binary/cdr/makefile create mode 100644 dist/examples/cxx/hybrid/binary/cdr/nmakefile create mode 100644 dist/examples/cxx/hybrid/binary/custom/makefile create mode 100644 dist/examples/cxx/hybrid/binary/custom/nmakefile create mode 100644 dist/examples/cxx/hybrid/binary/custom/options create mode 100644 dist/examples/cxx/hybrid/binary/makefile create mode 100644 dist/examples/cxx/hybrid/binary/nmakefile create mode 100644 dist/examples/cxx/hybrid/binary/xdr/makefile create mode 100644 dist/examples/cxx/hybrid/binary/xdr/nmakefile (limited to 'dist/examples') diff --git a/dist/examples/cxx/hybrid/binary/cdr/makefile b/dist/examples/cxx/hybrid/binary/cdr/makefile new file mode 100644 index 0000000..96c6274 --- /dev/null +++ b/dist/examples/cxx/hybrid/binary/cdr/makefile @@ -0,0 +1,58 @@ +root := ../../../../.. + +include $(root)/build/cxx/rules.make + +override LIBS += -lACE + +# Build. +# +EXTRA_CPPFLAGS := -I$(root)/libxsde + +ifeq ($(XSDE_STL),n) +EXTRA_XSDFLAGS += --no-stl +endif + +ifeq ($(XSDE_LONGLONG),n) +EXTRA_XSDFLAGS += --no-long-long +endif + +ifeq ($(XSDE_PARSER_VALIDATION),n) +EXTRA_XSDFLAGS += --suppress-validation +endif + +ifeq ($(XSDE_REUSE_STYLE),mixin) +EXTRA_XSDFLAGS += --reuse-style-mixin +endif + +driver: driver.o library.o library-pskel.o library-pimpl.o \ +library-sskel.o library-simpl.o $(root)/libxsde/xsde/libxsde.a + +driver.o: driver.cxx library.hxx library-pimpl.hxx library-simpl.hxx +library.o: library.cxx library.hxx +library-pskel.o: library-pskel.cxx +library-pimpl.o: library-pimpl.cxx +library-simpl.o: library-simpl.cxx +library-simpl.o: library-simpl.cxx + +.PRECIOUS: %.hxx %.cxx %-pskel.hxx %-pskel.cxx %-pimpl.hxx %-pimpl.cxx \ +%-sskel.hxx %-sskel.cxx %-simpl.hxx %-simpl.cxx + +%.hxx %.cxx %-pskel.hxx %-pskel.cxx %-pimpl.hxx %-pimpl.cxx \ +%-sskel.hxx %-sskel.cxx %-simpl.hxx %-simpl.cxx: %.xsd + $(root)/bin/xsde cxx-hybrid $(XSDFLAGS) $(EXTRA_XSDFLAGS) \ +--generate-parser --generate-serializer --generate-aggregate \ +--generate-insertion CDR --generate-extraction CDR $< + +# Test. +# +.PHONY: test +test: driver library.xml + ./driver library.xml + +# Clean. +# +.PHONY: clean +clean: + rm -f library-pimpl.?xx library-pskel.?xx library-simpl.?xx \ +library-sskel.?xx library.?xx library-pimpl.o library-pskel.o \ +library-simpl.o library-sskel.o library.o driver.o driver diff --git a/dist/examples/cxx/hybrid/binary/cdr/nmakefile b/dist/examples/cxx/hybrid/binary/cdr/nmakefile new file mode 100644 index 0000000..a87ded2 --- /dev/null +++ b/dist/examples/cxx/hybrid/binary/cdr/nmakefile @@ -0,0 +1,55 @@ +root = ..\..\..\..\.. + +!include $(root)\build\cxx\rules.nmake + +LIBS = $(LIBS) ACE.lib + +# Build. +# +EXTRA_CPPFLAGS = /I$(root)\libxsde + +!if "$(XSDE_STL)" == "n" +EXTRA_XSDFLAGS = $(EXTRA_XSDFLAGS) --no-stl +!endif + +!if "$(XSDE_LONGLONG)" == "n" +EXTRA_XSDFLAGS = $(EXTRA_XSDFLAGS) --no-long-long +!endif + +!if "$(XSDE_PARSER_VALIDATION)" == "n" +EXTRA_XSDFLAGS = $(EXTRA_XSDFLAGS) --suppress-validation +!endif + +!if "$(XSDE_REUSE_STYLE)" == "mixin" +EXTRA_XSDFLAGS = $(EXTRA_XSDFLAGS) --reuse-style-mixin +!endif + +driver.exe: driver.obj library.obj library-pskel.obj library-pimpl.obj \ +library-sskel.obj library-simpl.obj $(root)\libxsde\xsde\xsde.lib + +driver.obj: driver.cxx library.hxx library-pimpl.hxx library-simpl.hxx +library.obj: library.cxx +library-pskel.obj: library-pskel.cxx +library-pimpl.obj: library-pimpl.cxx +library-sskel.obj: library-sskel.cxx +library-simpl.obj: library-simpl.cxx + +library.cxx library.hxx \ +library-pskel.cxx library-pskel.hxx library-pimpl.cxx library-pimpl.hxx \ +library-sskel.cxx library-sskel.hxx library-simpl.cxx library-simpl.hxx \ +: library.xsd + $(root)\bin\xsde.exe cxx-hybrid $(XSDFLAGS) $(EXTRA_XSDFLAGS) \ +--generate-parser --generate-serializer --generate-aggregate \ +--generate-insertion CDR --generate-extraction CDR library.xsd + +# Test. +# +test: driver.exe library.xml + .\driver.exe library.xml + +# Clean. +# +clean: + -del library-pimpl.?xx library-pskel.?xx library-simpl.?xx \ +library-sskel.?xx library.?xx library-pimpl.obj library-pskel.obj \ +library-simpl.obj library-sskel.obj library.obj driver.obj driver.exe diff --git a/dist/examples/cxx/hybrid/binary/custom/makefile b/dist/examples/cxx/hybrid/binary/custom/makefile new file mode 100644 index 0000000..c0e57ad --- /dev/null +++ b/dist/examples/cxx/hybrid/binary/custom/makefile @@ -0,0 +1,70 @@ +root := ../../../../.. + +include $(root)/build/cxx/rules.make + +# Build. +# +EXTRA_CPPFLAGS := -I$(root)/libxsde + +ifeq ($(XSDE_STL),n) +EXTRA_XSDFLAGS += --no-stl +endif + +ifeq ($(XSDE_LONGLONG),n) +EXTRA_XSDFLAGS += --no-long-long +endif + +ifeq ($(XSDE_PARSER_VALIDATION),n) +EXTRA_XSDFLAGS += --suppress-validation +endif + +ifeq ($(XSDE_REUSE_STYLE),mixin) +EXTRA_XSDFLAGS += --reuse-style-mixin +endif + +driver: driver.o library.o library-pskel.o library-pimpl.o \ +library-sskel.o library-simpl.o exceptions.o orawstream.o \ +irawstream.o $(root)/libxsde/xsde/libxsde.a + +driver.o: driver.cxx library.hxx library-pimpl.hxx library-simpl.hxx +exceptions.o: exceptions.cxx +orawstream.o: orawstream.cxx xml-schema.hxx +irawstream.o: irawstream.cxx xml-schema.hxx +library.o: library.cxx library.hxx +library-pskel.o: library-pskel.cxx library-pskel.hxx +library-pimpl.o: library-pimpl.cxx library-pskel.hxx +library-simpl.o: library-simpl.cxx library-simpl.hxx +library-simpl.o: library-simpl.cxx library-simpl.hxx + +library.hxx: xml-schema.hxx +library-pskel.hxx: xml-schema-pskel.hxx +library-pimpl.hxx: xml-schema-pskel.hxx +library-sskel.hxx: xml-schema-sskel.hxx +library-simpl.hxx: xml-schema-sskel.hxx + +.PRECIOUS: %.hxx %.cxx %-pskel.hxx %-pskel.cxx %-pimpl.hxx %-pimpl.cxx \ +%-sskel.hxx %-sskel.cxx %-simpl.hxx %-simpl.cxx + +xml-schema%hxx xml-schema-pskel%hxx xml-schema-sskel%hxx: + $(root)/bin/xsde cxx-hybrid $(XSDFLAGS) $(EXTRA_XSDFLAGS) \ +--generate-parser --generate-serializer --generate-xml-schema xml-schema.xsd + +%.hxx %.cxx %-pskel.hxx %-pskel.cxx %-pimpl.hxx %-pimpl.cxx \ +%-sskel.hxx %-sskel.cxx %-simpl.hxx %-simpl.cxx: %.xsd + $(root)/bin/xsde cxx-hybrid $(XSDFLAGS) $(EXTRA_XSDFLAGS) \ +--options-file options $< + +# Test. +# +.PHONY: test +test: driver library.xml + ./driver library.xml + +# Clean. +# +.PHONY: clean +clean: + rm -f xml-schema.hxx xml-schema-pskel.hxx xml-schema-sskel.hxx \ +library-pimpl.?xx library-pskel.?xx library-simpl.?xx library-sskel.?xx \ +library.?xx library-pimpl.o library-pskel.o library-simpl.o library-sskel.o \ +library.o irawstream.o orawstream.o exceptions.o driver.o driver diff --git a/dist/examples/cxx/hybrid/binary/custom/nmakefile b/dist/examples/cxx/hybrid/binary/custom/nmakefile new file mode 100644 index 0000000..b53db8e --- /dev/null +++ b/dist/examples/cxx/hybrid/binary/custom/nmakefile @@ -0,0 +1,68 @@ +root = ..\..\..\..\.. + +!include $(root)\build\cxx\rules.nmake + +# Build. +# +EXTRA_CPPFLAGS = /I$(root)\libxsde + +!if "$(XSDE_STL)" == "n" +EXTRA_XSDFLAGS = $(EXTRA_XSDFLAGS) --no-stl +!endif + +!if "$(XSDE_LONGLONG)" == "n" +EXTRA_XSDFLAGS = $(EXTRA_XSDFLAGS) --no-long-long +!endif + +!if "$(XSDE_PARSER_VALIDATION)" == "n" +EXTRA_XSDFLAGS = $(EXTRA_XSDFLAGS) --suppress-validation +!endif + +!if "$(XSDE_REUSE_STYLE)" == "mixin" +EXTRA_XSDFLAGS = $(EXTRA_XSDFLAGS) --reuse-style-mixin +!endif + +driver.exe: driver.obj library.obj library-pskel.obj library-pimpl.obj \ +library-sskel.obj library-simpl.obj exceptions.obj orawstream.obj \ +irawstream.obj $(root)\libxsde\xsde\xsde.lib + +driver.obj: driver.cxx library.hxx library-pimpl.hxx library-simpl.hxx +exceptions.obj: exceptions.cxx +orawstream.obj: orawstream.cxx xml-schema.hxx +irawstream.obj: irawstream.cxx xml-schema.hxx +library.obj: library.cxx library.hxx +library-pskel.obj: library-pskel.cxx library-pskel.hxx +library-pimpl.obj: library-pimpl.cxx library-pskel.hxx +library-simpl.obj: library-simpl.cxx library-simpl.hxx +library-simpl.obj: library-simpl.cxx library-simpl.hxx + +library.hxx: xml-schema.hxx +library-pskel.hxx: xml-schema-pskel.hxx +library-sskel.hxx: xml-schema-sskel.hxx +library-sskel.hxx: xml-schema-sskel.hxx +library-simpl.hxx: xml-schema-sskel.hxx + +xml-schema.hxx xml-schema-pskel.hxx xml-schema-sskel.hxx: + $(root)\bin\xsde.exe cxx-hybrid $(XSDFLAGS) $(EXTRA_XSDFLAGS) \ +--generate-parser --generate-serializer --generate-xml-schema xml-schema.xsd + +library.cxx library.hxx \ +library-pskel.cxx library-pskel.hxx library-pimpl.cxx library-pimpl.hxx \ +library-sskel.cxx library-sskel.hxx library-simpl.cxx library-simpl.hxx \ +: library.xsd + $(root)\bin\xsde.exe cxx-hybrid $(XSDFLAGS) $(EXTRA_XSDFLAGS) \ +--options-file options library.xsd + +# Test. +# +test: driver.exe library.xml + .\driver.exe library.xml + +# Clean. +# +clean: + -del xml-schema.hxx xml-schema-pskel.hxx xml-schema-sskel.hxx \ +library-pimpl.?xx library-pskel.?xx library-simpl.?xx library-sskel.?xx \ +library.?xx library-pimpl.obj library-pskel.obj library-simpl.obj \ +library-sskel.obj library.obj irawstream.obj orawstream.obj exceptions.obj \ +driver.obj driver.exe diff --git a/dist/examples/cxx/hybrid/binary/custom/options b/dist/examples/cxx/hybrid/binary/custom/options new file mode 100644 index 0000000..f37d345 --- /dev/null +++ b/dist/examples/cxx/hybrid/binary/custom/options @@ -0,0 +1,8 @@ +--generate-parser +--generate-serializer +--generate-aggregate +--generate-insertion orawstream +--hxx-prologue #include "orawstream.hxx" +--generate-extraction irawstream +--hxx-prologue #include "irawstream.hxx" +--extern-xml-schema xml-schema.xsd diff --git a/dist/examples/cxx/hybrid/binary/makefile b/dist/examples/cxx/hybrid/binary/makefile new file mode 100644 index 0000000..a683d0e --- /dev/null +++ b/dist/examples/cxx/hybrid/binary/makefile @@ -0,0 +1,33 @@ +root := ../../../.. + +include $(root)/build/config.make + +dirs := + +ifeq ($(XSDE_IOSTREAM),y) +ifeq ($(XSDE_EXCEPTIONS),y) + +dirs += custom + +ifeq ($(XSDE_CDR),y) +dirs += cdr +endif + +ifeq ($(XSDE_XDR),y) +dirs += xdr +endif + +endif +endif + +.PHONY: all $(dirs) + +all: $(dirs) + +$(dirs): + @$(MAKE) -C $@ $(MAKECMDGOALS) + +makefile: ; +%.make:: ; + +%:: $(dirs) ; diff --git a/dist/examples/cxx/hybrid/binary/nmakefile b/dist/examples/cxx/hybrid/binary/nmakefile new file mode 100644 index 0000000..384694a --- /dev/null +++ b/dist/examples/cxx/hybrid/binary/nmakefile @@ -0,0 +1,29 @@ +root = ..\..\..\.. + +!include $(root)\build\config.nmake + +dirs = + +!if "$(XSDE_IOSTREAM)" == "y" +!if "$(XSDE_EXCEPTIONS)" == "y" + +dirs = $(dirs) custom + +!if "$(XSDE_CDR)" == "y" +dirs = $(dirs) cdr +!endif + +!if "$(XSDE_XDR)" == "y" +dirs = $(dirs) xdr +!endif + +!endif +!endif + +all: + @for %i in ( $(dirs) ) do \ +@cmd /c "cd %i & $(MAKE) /nologo /f nmakefile" + +test clean: + @for %i in ( $(dirs) ) do \ +@cmd /c "cd %i & $(MAKE) /nologo /f nmakefile $@" diff --git a/dist/examples/cxx/hybrid/binary/xdr/makefile b/dist/examples/cxx/hybrid/binary/xdr/makefile new file mode 100644 index 0000000..95ceade --- /dev/null +++ b/dist/examples/cxx/hybrid/binary/xdr/makefile @@ -0,0 +1,58 @@ +root := ../../../../.. + +include $(root)/build/cxx/rules.make + +override LIBS += -lnsl + +# Build. +# +EXTRA_CPPFLAGS := -I$(root)/libxsde + +ifeq ($(XSDE_STL),n) +EXTRA_XSDFLAGS += --no-stl +endif + +ifeq ($(XSDE_LONGLONG),n) +EXTRA_XSDFLAGS += --no-long-long +endif + +ifeq ($(XSDE_PARSER_VALIDATION),n) +EXTRA_XSDFLAGS += --suppress-validation +endif + +ifeq ($(XSDE_REUSE_STYLE),mixin) +EXTRA_XSDFLAGS += --reuse-style-mixin +endif + +driver: driver.o library.o library-pskel.o library-pimpl.o \ +library-sskel.o library-simpl.o $(root)/libxsde/xsde/libxsde.a + +driver.o: driver.cxx library.hxx library-pimpl.hxx library-simpl.hxx +library.o: library.cxx library.hxx +library-pskel.o: library-pskel.cxx +library-pimpl.o: library-pimpl.cxx +library-simpl.o: library-simpl.cxx +library-simpl.o: library-simpl.cxx + +.PRECIOUS: %.hxx %.cxx %-pskel.hxx %-pskel.cxx %-pimpl.hxx %-pimpl.cxx \ +%-sskel.hxx %-sskel.cxx %-simpl.hxx %-simpl.cxx + +%.hxx %.cxx %-pskel.hxx %-pskel.cxx %-pimpl.hxx %-pimpl.cxx \ +%-sskel.hxx %-sskel.cxx %-simpl.hxx %-simpl.cxx: %.xsd + $(root)/bin/xsde cxx-hybrid $(XSDFLAGS) $(EXTRA_XSDFLAGS) \ +--generate-parser --generate-serializer --generate-aggregate \ +--generate-insertion XDR --generate-extraction XDR $< + +# Test. +# +.PHONY: test +test: driver library.xml + ./driver library.xml + +# Clean. +# +.PHONY: clean +clean: + rm -f library-pimpl.?xx library-pskel.?xx library-simpl.?xx \ +library-sskel.?xx library.?xx library-pimpl.o library-pskel.o \ +library-simpl.o library-sskel.o library.o driver.o driver diff --git a/dist/examples/cxx/hybrid/binary/xdr/nmakefile b/dist/examples/cxx/hybrid/binary/xdr/nmakefile new file mode 100644 index 0000000..f71e178 --- /dev/null +++ b/dist/examples/cxx/hybrid/binary/xdr/nmakefile @@ -0,0 +1,53 @@ +root = ..\..\..\..\.. + +!include $(root)\build\cxx\rules.nmake + +# Build. +# +EXTRA_CPPFLAGS = /I$(root)\libxsde + +!if "$(XSDE_STL)" == "n" +EXTRA_XSDFLAGS = $(EXTRA_XSDFLAGS) --no-stl +!endif + +!if "$(XSDE_LONGLONG)" == "n" +EXTRA_XSDFLAGS = $(EXTRA_XSDFLAGS) --no-long-long +!endif + +!if "$(XSDE_PARSER_VALIDATION)" == "n" +EXTRA_XSDFLAGS = $(EXTRA_XSDFLAGS) --suppress-validation +!endif + +!if "$(XSDE_REUSE_STYLE)" == "mixin" +EXTRA_XSDFLAGS = $(EXTRA_XSDFLAGS) --reuse-style-mixin +!endif + +driver.exe: driver.obj library.obj library-pskel.obj library-pimpl.obj \ +library-sskel.obj library-simpl.obj $(root)\libxsde\xsde\xsde.lib + +driver.obj: driver.cxx library.hxx library-pimpl.hxx library-simpl.hxx +library.obj: library.cxx +library-pskel.obj: library-pskel.cxx +library-pimpl.obj: library-pimpl.cxx +library-sskel.obj: library-sskel.cxx +library-simpl.obj: library-simpl.cxx + +library.cxx library.hxx \ +library-pskel.cxx library-pskel.hxx library-pimpl.cxx library-pimpl.hxx \ +library-sskel.cxx library-sskel.hxx library-simpl.cxx library-simpl.hxx \ +: library.xsd + $(root)\bin\xsde.exe cxx-hybrid $(XSDFLAGS) $(EXTRA_XSDFLAGS) \ +--generate-parser --generate-serializer --generate-aggregate \ +--generate-insertion XDR --generate-extraction XDR library.xsd + +# Test. +# +test: driver.exe library.xml + .\driver.exe library.xml + +# Clean. +# +clean: + -del library-pimpl.?xx library-pskel.?xx library-simpl.?xx \ +library-sskel.?xx library.?xx library-pimpl.obj library-pskel.obj \ +library-simpl.obj library-sskel.obj library.obj driver.obj driver.exe diff --git a/dist/examples/cxx/hybrid/makefile b/dist/examples/cxx/hybrid/makefile index fdcec1d..38ccd04 100644 --- a/dist/examples/cxx/hybrid/makefile +++ b/dist/examples/cxx/hybrid/makefile @@ -2,7 +2,7 @@ root := ../../.. include $(root)/build/config.make -dirs := compositors +dirs := binary compositors ifeq ($(XSDE_IOSTREAM),y) ifeq ($(XSDE_EXCEPTIONS),y) -- cgit v1.1