################################################################################
#
# @(#)44        1.5  src/examples/demo/data_test_app/readme, examples.src, os2dce21.dss, 960602a.1  5/12/96  06:36:36
#
# COMPONENT_NAME:  examples.src
#
# FUNCTIONS: readme file for the data_test_app example
#
# ORIGINS: 72/27
#
# (C) COPYRIGHT International Business Machines Corp. 1995
#  All Rights Reserved
#  Licensed Materials - Property of IBM
#
#  US Government Users Restricted Rights - Use, duplication or
#  disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
#
# @OSF_COPYRIGHT@
# COPYRIGHT NOTICE
# Copyright (c) 1990, 1991, 1992, 1993, 1994 Open Software Foundation, Inc.
# ALL RIGHTS RESERVED (DCE).  See the file named COPYRIGHT.DCE in the
# src directory for the full copyright text.
#
################################################################################
#
#
Directory:

   opt\dcelocal\examples\demo\data_test_app


This directory contains the code for a test platform for the various
RPC data type examples in the IBM DCE Application Development Guide --
Introduction and Style Guide volume.

The following files are contained in this directory:

	makefile.os2
	makefile.vc3
	makefile.bor
	makefile.wat
	readme
	data_test.acf
	data_test.idl
	data_test_client.c
	data_test_client.def
	data_test_manager.c
	data_test_server.c
	data_test_server.def
	data_test_xmit.c
    Test_File
    server.bor


------------------------------------------------------------------------------

		 BUILDING THE DATA TEST APPLICATION

Refer to the main Examples Readme file in opt\dcelocal\examples
for information on how to build this example.

------------------------------------------------------------------------------

		  RUNNING THE DATA TEST APPLICATION

Very little is required in the way of preparation to run this application:

    1. You must have a DCE cell up and running.

    2. You must create the following CDS directory:

	   /.:/sample

    3. You must create the following namespace entry for the application
       server:

	   /.:/sample/data_test_server_entry

    4. On the client machine (or window, if you're running the application
       on a single machine), you must set the value of the environment
       variable RPC_DEFAULT_ENTRY to the pathname of the server's name-
       space entry.


Note that the server entry pathname is determined by the value of the
EXPORT_ENTRY string constant defined at the top of the data_test_server.c
file; you can change the value of the latter, in which case you must make
the corresponding change in the pathname given in steps 2 and 3 above.

Steps 2 and 3 can be accomplished as follows:


    1. Login as the cell administrator:

	   $ dcelogin cell_admin -dce-

       Note that the password at your site will probably be different from
       that given above (as the last parameter). For further information
       about the use of dcelogin, see the DCE Administration Guide.

    2. Create the CDS entry that will be used to hold the server's binding
       information. For example (using the names given above):

	   $ cdscp create directory /.:/sample
	   $ rpccp add entry /.:/sample/data_test_server_entry

       For further information about cdscp and rpccp, see the IBM DCE Admini-
       stration Guide -- Core Components, and the IBM DCE Administration Ref-
       erence.


That's all there is to it. In order to keep things simple, the application
makes no use at all of DCE Security; hence there is no need to set up the
ACL on the server entry, or to create a keytab file, and so on.

Once the above steps have been completed, the server can be invoked as
follows:

	# data_test_server

Wait for the server's "Listening for calls" message before starting the client.
The client can be invoked (either from another machine in the cell, or from
another window if on the same machine) as follows:

	#set RPC_DEFAULT_ENTRY=/.:/sample/data_test_server_entry
	# data_test_client [option]
            where option = dir -OR- pstat -OR- set.  The optional command
            is executed at the server in test6() to demonstrate the use
            of pipes.


------------------------------------------------------------------------------
                          SERVER OUTPUT

Data Test Server: Starting up . . .
data_test_server: Calling rpc_server_register_if(). . .
data_test_server: Calling rpc_server_use_all_protseqs(). . .
data_test_server: Calling rpc_server_inq_bindings(). . .
data_test_server: Calling rpc_ep_register(). . .
data_test_server: Calling rpc_ns_binding_export(). . .
Data Test server: Listening for calls(). . .


------------------------------------------------------------------------------
                          CLIENT OUTPUT

---> data_test_client  dir

data_test_client: Calling rpc_ns_binding_import_begin()...
data_test_client: Calling rpc_ns_binding_import_next()...
data_test_client: Calling rpc_ns_binding_import_done()...
data_test_client: Calling rpc_binding_to_string_binding()...
data_test_client: Imported resolved binding == ncadg_ip_udp:9.3.45.83[]
data_test_client: Calling rpc_string_free()...



data_test_client: Calling test1()...
data_test_client: Client pointer points to 50
data_test_client: Client pointer now points to 1395458816



data_test_client: Calling test2(0)...
data_test_client: Calling test2(1)...
data_test_client: Calling test2(2)...
data_test_client: Calling test2(3)...
data_test_client: Calling test2(4)...
data_test_client: Calling test2(5)...
data_test_client: Calling test2(6)...
data_test_client: Calling test2(7)...
data_test_client: element->value == 2
data_test_client: element->value == 4
data_test_client: element->value == 8
data_test_client: element->value == 16
data_test_client: element->value == 32
data_test_client: element->value == 64
data_test_client: element->value == 128
data_test_client: element->value == 256
data_test_client: element->value == 512



data_test_client: Calling test3()...
data_test_client: Value == 256



data_test_client: Calling test4()...
data_test_client: entering myfree()...
data_test_client: ...exiting myfree()



data_test_client: Calling test51()...



data_test_client: Calling test52()...



data_test_client: Calling test53()...



data_test_client: Calling test54()...



data_test_client: Calling test6()...
data_test_client: entering test_alloc()...
data_test_client: ...exiting test_alloc()
data_test_client: entering test_push()...

The volume label in drive F is DCE_ON_HPFS.
The Volume Serial Number is A6F3:A814.
Directory of F:\opt\dcelocal\examples\demo\data_test_app

 5-12-96   2:18a     <DIR>           0  .
 5-10-96   8:42a     <DIR>           0  ..
 4-23-96  12:07a      1497           0  data_test.acf
 5-10-96  11:53a      6733           0  data_test.h
 4-23-96  12:07a      6776           0  data_test.idl
 4-23-96  12:07a     25638           0  data_test_client.c
 4-23-96  12:14a       620           0  data_test_client.def
 5-10-96  11:53a     84874          49  data_test_client.exe
 5-10-96  11:53a     58120           0  data_test_client.map
 5-10-96  11:53a     13951           0  data_test_client.obj
 5-10-96  11:53a     42888           0  data_test_cstub.c
 5-10-96  11:53a     35304           0  data_test_cstub.obj
 4-23-96  12:07a     16663           0  data_test_manager.c
 5-10-96  11:53a     12076           0  data_test_manager.obj
 4-23-96  12:07a      5329           0  data_test_server.c
 4-23-96  12:14data_test_client: ...exiting test_push()
data_test_client: entering test_alloc()...
data_test_client: ...exiting test_alloc()
data_test_client: entering test_push()...
a       620           0  data_test_server.def
 5-10-96  11:53a     93267          49  data_test_server.exe
 5-10-96  11:53a     68669           0  data_test_server.map
 5-10-96  11:53a      6970           0  data_test_server.obj
 5-10-96  11:53a     50743           0  data_test_sstub.c
 5-10-96  11:53a     42752           0  data_test_sstub.obj
 4-23-96  12:07a      4809           0  data_test_xmit.c
 5-10-96  11:53a      2772           0  data_test_xmit.obj
 5-12-96   2:18a         0           0  dir.out
 4-23-96  12:12a      1854           0  makefile.bor
 4-23-96  12:12a      1795           0  makefile.os2
 4-23-96  12:16a      1938           0  makefile.vc3
 4-23-96  12:12a      2112           0  makefile.wat
 5-12-96   2:01a      4420           0  readme
 4-23-96  12:22a        82           0  server.bor
 4-23-96  12:07a       635           0  Test_File
       31 file(s)     593907 bytes used
                    79634944 bytes free
data_test_client: ...exiting test_push()
data_test_client: entering test_push()...
data_test_client: ...exiting test_push()



data_test_client: Calling test7()...
data_test_client: entering test_alloc()...
data_test_client: ...exiting test_alloc()
data_test_client: entering test_pull()...
data_test_client: ...exiting test_pull()
data_test_client: entering test_alloc()...
data_test_client: ...exiting test_alloc()
data_test_client: entering test_pull()...
data_test_client: ...exiting test_pull()



data_test_client: Calling test8()...



data_test_client: Exiting.

******************************************************************************

---> data_test_client  pstat

data_test_client: Calling rpc_ns_binding_import_begin()...
data_test_client: Calling rpc_ns_binding_import_next()...
data_test_client: Calling rpc_ns_binding_import_done()...
data_test_client: Calling rpc_binding_to_string_binding()...
data_test_client: Imported resolved binding == ncacn_ip_tcp:9.3.45.83[]
data_test_client: Calling rpc_string_free()...



data_test_client: Calling test1()...
data_test_client: Client pointer points to 50
data_test_client: Client pointer now points to 1395458816



data_test_client: Calling test2(0)...
data_test_client: Calling test2(1)...
data_test_client: Calling test2(2)...
data_test_client: Calling test2(3)...
data_test_client: Calling test2(4)...
data_test_client: Calling test2(5)...
data_test_client: Calling test2(6)...
data_test_client: Calling test2(7)...
data_test_client: element->value == 2
data_test_client: element->value == 4
data_test_client: element->value == 8
data_test_client: element->value == 16
data_test_client: element->value == 32
data_test_client: element->value == 64
data_test_client: element->value == 128
data_test_client: element->value == 256
data_test_client: element->value == 512



data_test_client: Calling test3()...
data_test_client: Value == 256



data_test_client: Calling test4()...
data_test_client: entering myfree()...
data_test_client: ...exiting myfree()



data_test_client: Calling test51()...



data_test_client: Calling test52()...



data_test_client: Calling test53()...



data_test_client: Calling test54()...



data_test_client: Calling test6()...
data_test_client: entering test_alloc()...
data_test_client: ...exiting test_alloc()
data_test_client: entering test_push()...

                    Process and Thread Information

          Parent
Process   Process   Session   Process   Thread
  ID        ID        ID       Name       ID    Priority   Block ID   State

 0020      0000       00      C:\OS2\EPWMUX.EXE    01      0200     FFFE0021   Block
 001C      0000       00      C:\OS2\EPWMUX.EXE    01      0200     FFFE001B   Block
 0019      0000       00      C:\OS2\EPWPSI.EXE    01      0200     06500012   Block
 0018      0000       00      C:\OS2\EPWMP.EXE    01      0200     FE01F0FC   Block
                                          02      0200     FFFE0022   Block
                                          03      0200     FFF790E7   Ready
 0012      0000       00      C:\TCPIP\BIN\VDOSCTL.EXE    01      0300     FDF88E80   Block
 0011      0000       00      C:\OS2\EPWROUT.EXE    01      0200     FFFE001C   Block
                                          02      0200     FFFE0015   Block
 0010      0000       00      C:\OS2\SYSTEM\LOGDAEM.EXE    01      02data_test_client: ...exiting test_push()
data_test_client: entering test_alloc()...
data_test_client: ...exiting test_alloc()
data_test_client: entering test_push()...
1F     04C80252   Block
 000F      0000       00      C:\IBMLAN\NETPROG\LSDAEMON.EXE    01      0200     FFF790E7   Block
 000E      0000       00      C:\IBMCOM\PROTOCOL\LANDLL.EXE    01      030B     544F4B52   Block
 0005      0000       00      C:\MPTN\BIN\CNTRL.EXE    01      0304     F2750002   Block
                                          02      0304     F2750001   Block
                                          03      0304     0DF05260   Block
                                          04      0304     0DF05278   Block
                                          05      0304     F2750001   Block
                                          06      0304     F2750002   Block
                                          07      0304     FFF790E7   Block
                                          08      0304     F2750008   Block
 0004      0000       00      C:\IBMCOM\LANMSGEX.EXE    01      0200     FFFEF636   Block
 0015      0001       01      C:\OS2\PMSHELL.EXE    01      0200     FDD82520   Bldata_test_client: ...exiting test_push()
data_test_client: entering test_alloc()...
data_test_client: ...exiting test_alloc()
data_test_client: entering test_push()...
ock
                                          02      0300     FFCA0015   Block
                                          03      0300     FFFD0019   Block
                                          04      0300     FFFD001A   Block
                                          05      0300     04000E24   Block
                                          06      0200     FDF528E0   Block
                                          07      0200     FE01BD78   Block
                                          08      041F     FE01E374   Block
                                          09      0200     FFFE0016   Block
                                          0A      0200     FFFD0024   Block
                                          0B      0300     FFFE0018   Block
                                          0C      0300     FFFE0019   Block
                                          0D      0300     FFFE0017   Block
                                          0E      0304     FFFD0028   Block
                  data_test_client: ...exiting test_push()

data_test_client: entering test_alloc()...
data_test_client: ...exiting test_alloc()
data_test_client: entering test_push()...
*
                                  C:\OS2\DLL\SESMGR.DLL*
                                  C:\OS2\DLL\NAMPIPES.DLL*
                                  C:\OS2\DLL\MSG.DLL*
                               C:\MUGLIB\DLL\NETAPI32.DLL*
 C:\OS2\PMSHELL.EXE   001B       11      C:\OS2\DLL\PMWP.DLL*
                               C:\OS2\DLL\PMMERGE.DLL*
                               C:\OS2\DLL\DOSCALL1.DLL*
 C:\OS2\PMSPOOL.EXE   001A       10      C:\OS2\DLL\PMSPL.DLL*
                               C:\OS2\DLL\DOSCALL1.DLL*
 C:\OS2\SYSTEM\HARDERR.EXE   0016       00      C:\OS2\DLL\DOSCALL1.DLL*
data_test_client: ...exiting test_push()
data_test_client: entering test_push()...
data_test_client: ...exiting test_push()



data_test_client: Calling test7()...
data_test_client: entering test_alloc()...
data_test_client: ...exiting test_alloc()
data_test_client: entering test_pull()...
data_test_client: ...exiting test_pull()
data_test_client: entering test_alloc()...
data_test_client: ...exiting test_alloc()
data_test_client: entering test_pull()...
data_test_client: ...exiting test_pull()



data_test_client: Calling test8()...



data_test_client: Exiting.


******************************************************************************

---> data_test_client  set

data_test_client: Calling rpc_ns_binding_import_begin()...
data_test_client: Calling rpc_ns_binding_import_next()...
data_test_client: Calling rpc_ns_binding_import_done()...
data_test_client: Calling rpc_binding_to_string_binding()...
data_test_client: Imported resolved binding == ncadg_ip_udp:9.3.45.83[]
data_test_client: Calling rpc_string_free()...



data_test_client: Calling test1()...
data_test_client: Client pointer points to 50
data_test_client: Client pointer now points to 1395458816



data_test_client: Calling test2(0)...
data_test_client: Calling test2(1)...
data_test_client: Calling test2(2)...
data_test_client: Calling test2(3)...
data_test_client: Calling test2(4)...
data_test_client: Calling test2(5)...
data_test_client: Calling test2(6)...
data_test_client: Calling test2(7)...
data_test_client: element->value == 2
data_test_client: element->value == 4
data_test_client: element->value == 8
data_test_client: element->value == 16
data_test_client: element->value == 32
data_test_client: element->value == 64
data_test_client: element->value == 128
data_test_client: element->value == 256
data_test_client: element->value == 512



data_test_client: Calling test3()...
data_test_client: Value == 256



data_test_client: Calling test4()...
data_test_client: entering myfree()...
data_test_client: ...exiting myfree()



data_test_client: Calling test51()...



data_test_client: Calling test52()...



data_test_client: Calling test53()...



data_test_client: Calling test54()...



data_test_client: Calling test6()...
data_test_client: entering test_alloc()...
data_test_client: ...exiting test_alloc()
data_test_client: entering test_push()...
WP_OBJHANDLE=185805
AUTOSTART=PROGRAMS,TASKLIST,FOLDERS,CONNECTIONS,LAUNCHPAD
COMSPEC=C:\OS2\CMD.EXE
DLSINI=C:\IBMLAN\NETPROG\NETGUI.INI
GLOSSARY=C:\OS2\HELP\GLOSS;
I18NDIR=C:\IBMI18N
INIT_FILE_NAMES=NETGUI
INIT_FILE_RANGES=200
IPF_KEYS=SBCS
KEYS=ON
LANG=EN_US
LANINSTEP=H:\CID\SERVER\IBMLS
LOCPATH=F:\opt\dcelocal\locale;C:\IBdata_test_client: ...exiting test_push()
data_test_client: entering test_alloc()...
data_test_client: ...exiting test_alloc()
data_test_client: entering test_push()...
MI18N\LOCALE;C:\IBMXPGL;
NLSPATH=F:\opt\dcelocal\nls\msg\%L\%N;F:\opt\dcelocal\nls\msg\enus437\%N;C:\MPTN\MSG\NLS\%N;C:\OPT\DCELOCAL\NLS\MSG\ENUS437\%N;
NWDBPATH=C:\IBMLAN\NETPROG
OS2_SHELL=C:\OS2\CMD.EXE
PROMPT=$I[$P]
READIBM=C:\tcpip\DOC
RUNWORKPLACE=C:\OS2\PMSHELL.EXE
SYSTEM_INI=C:\OS2\OS2SYS.INI
TZ=CST6
USER_INI=C:\OS2\OS2.INI
VIDEO_DEVICES=VIO_SVGA
VIO_SVGA=DEVICE(BVHVGA,BVHSVGA)
WPS_COMMUNICATION=YES
HELPNDX=EPMKWHLP.NDX+DDE4LRM.NDX+DDE4SCL.NDX+DDE4UIL.NDX+DDE4CCL.NDX+DDE4CLIB.NDX
IPFdata_test_client: ...exiting test_push()
data_test_client: entering test_alloc()...
data_test_client: ...exiting test_alloc()
data_test_client: entering test_push()...
C=D:\TOOLKIT\IPFC;
CPREF=CP1.INF+CP2.INF+CP3.INF
GPIREF=GPI1.INF+GPI2.INF+GPI3.INF
PMREF=PM1.INF+PM2.INF+PM3.INF+PM4.INF+PM5.INF
WPSREF=WPS1.INF+WPS2.INF+WPS3.INF
MMREF=MMREF1.INF+MMREF2.INF+MMREF3.INF
DCELOCAL=F:\opt\dcelocal
TMPDIR=F:\opt\dcelocal\usr\tmp
TRY_PE_SITE=1
TCL_LIBRARY=F:\opt\dcelocal\tcl
DCE_USE_WCHAR_NAMES=1
DCEGLOSS=F:\OPT\DCELOCAL\GLOSS
NIDLDIR=F:\opt\dcelocal\include
WORKPLACE__PROCESS=NO
KRB5CCNAME=FILE:F:/opt/dcelocal/var/security/creds/Y2D09ICG
data_test_client: ...exiting test_push()
data_test_client: entering test_push()...
data_test_client: ...exiting test_push()



data_test_client: Calling test7()...
data_test_client: entering test_alloc()...
data_test_client: ...exiting test_alloc()
data_test_client: entering test_pull()...
data_test_client: ...exiting test_pull()
data_test_client: entering test_alloc()...
data_test_client: ...exiting test_alloc()
data_test_client: entering test_pull()...
data_test_client: ...exiting test_pull()



data_test_client: Calling test8()...



data_test_client: Exiting.


------------------------------------------------------------------------------
