next_inactive up previous


GradC++ ToolBox: Administration Guide
DocumentId:GradSoft-AD-e-04.09.2000-v1.2.0


Contents

Introduction

Subject

GradC++Toolbox is a joined package composed by several platform-independet components designed to resolve standard widely-spread problem such as:

-
implementation of smart pointer templates;
-
parsing of the command line;
-
writing debug or info messages;
-
reading file directories;
-
starting and stopping of threads and so on.
We beg to propose this package for programm builders, which want to save them from some standard problems or need to produce portable sourse code for UNIX and for Windows NT. This file describe a routine of obtaining, installing and using of version 1.6.3of package. This version GradC++ToolBox 1.6.3 consists from following components:
  1. ptrs - set of smart pointer templates;
  2. ProgOptions - class for high-level handling of program options;
  3. Threading - set of classes to design of multithreading programs;
  4. Logger - class for logging support;
  5. DirectoryContainer - set of classes to read file directories;
  6. DynamicModules - component for shared libraries dynamic loading.
  7. ServiceOptions - specialization of ProgOptions for CORBA services;
You may install by choice:
  1. a whole set of package components;
  2. a set of all non-CORBA components which are (today) ptrs, ProgOptions, Logger, Threading, DirectoryContainer and DynamicModules.
Besides, by handle dependencies between some components, some single components can be installed too.

Source

Current version of GradC++ToolBox is always avaible on builder's website: http://www.gradsoft.com.ua/eng

No payment if license is satisfied (see file license from delivery set).

Development team

GradC++ToolBox is designed and distributed by GradSoft company, GradSoft home page is: http://www.gradsoft.com.ua/eng

Installation

General information

GradC++ToolBox is distributed in the form of source code, its installation process consists from following steps:

  1. compilation of source code in user environment;
  2. coping of include files and libraries generated into directories defined by user.
You may:
  1. compile code;
  2. copy ("install") include files and libraries into directories defined by user;
  3. remove installed files ;
  4. remove automatically generated files (such as *.obj and *.lib)
using command make with options correspondent (see below for details).

Software needed

  1. CORBA ORB (not needed, if you not use ServiceOptions):
  2. C++ compiler:
  3. make:

Installing for UNIX

  1. Make sure that necessary software are installed and are in working state.
  2. Extract files from archive Gen-1.6.3.tar.gz or Gen-1.6.3.zip in some catalog. Let's name this catalog <project_root>
  3. cd to <project_root>.
  4. Run configure with command ./configure [options] (options list is accessible via command ./configure --help; for example, you can set --prefix=<smth> option to set directory of installation or --with-corba=<yes/no> option to set volume of compilation and installation).
  5. Start compilation process with command gmake
  6. Become superuser.
  7. Run install process with command gmake install
  8. For deinstallation you can use command gmake uninstall

Installing for Windows NT

  1. Check, that all necessary software is installed and are in working state. Requirements to use MSVC are
    1. Environment variables INCLUDE and LIB must be defined and must contain pathes to MSVC include files and MSVC libraries correspondingly.
    2. location of nmake, cl and link utilities must be reflected in the environment variable PATH.
  2. Extract files from archive Gen-1.6.3.tar.gz or Gen-1.6.3.zip in some directory (let's name of this catalogue <project_root>).

  3. Edit file environment.nt.mak in directory <project_root>\config\Win32 and, in the case you want to use ServiceOptions, analogous file environment.nt.mak in directory <project_root>\CORBA\config\Win32; set values of next nmake variables:

I.

<project_root>\config\Win32\environment.nt.mak:

II.

<project_root>\CORBA\config\Win32\environment.nt.mak:

To compile package go to <project_root> and type make build if you want to compile no CORBA components, or make with-corba build if you want to compile ServiceOptions too.

To install include files and libraries go to <project_root> and type make install if you want to install no CORBA components, or make with-corba install if you want to install ServiceOptions too.

To uninstall installed files go to directory <project_root> and type make uninstall or make with-corba uninstall respectively.

To remove automatically generated files, such as *.obj, *.exe and *.lib, from <project_root> and its subdirs go to directory <project_root> and type make clean or make with-corba clean respectively.

For compilation, installation, deinstallation or cleaning of single (apart) subpackage move over to directory suitable (one of next:

and use command make with options build, install, uninstall and clean correspondingly

Remark:

Using make install without compilation of the package leads to compilation of libraries will be started automatically but test examples will not be compiled.

Testing

Common information

Demo examples, included in GradC++ToolBox, are related to using examples in Programmers Guides for each package commponent. It is necesorry to compile project before starting demos.

Procedure

ProgOptions

  1. Read ProgrammingGuide in file
    <project_root>/ProgOption/docs/ProgrammingGuide_eng.pdf
  2. cd to directory <project_root>/ProgOptions/demo
  3. run ProgOptionsDemo few times with next options:
      --help
      --qqq
      --zzz
      --zzz <something>
      --zz1 <something> 
      --zz3
      <something>
      --config config.ini
    
  4. check, that program output is expected

ServiceOptions

  1. Read ProgrammingGuide in file
    <project_root>/CORBA/ServiceOptions/docs/ProgrammingGuide_eng.pdf
  2. Go to directory <project_root>/CORBA/ServiceOptions/demo
  3. For UNIX: make tests, thereto:
    1. call ./configure with options appropriate
    2. call gmake (or gmake build)
  4. Start HelloWorldServer with option --help; read help message.
  5. Start HelloWorldServer with option --ior-stdout; make sure that Interoperable Object Reference is displayed on standard output
  6. Start HelloWorldServer with options: --ior-file-HelloService hello.ref Make sure that Interoperable Object Reference is placed into file hello.ref
  7. Start HelloWorldServer with options: (note port 1100 must be not busy by some other application; of course, you can use any port number instead 1100)
  8. Start HelloWorldClient with options:
  9. Make sure that string "Hello World" is printed on you terminal
  10. Check you NameService daemon
  11. Start program HelloWorldServer with option --with-naming
  12. Start HelloWorldClient with option --with-naming
  13. Make sure that string "Hello World" is printed on you terminal

Logger

  1. Read ProgrammingGuide in file
    <project_root>/Logger/docs/ProgrammingGuide_eng.pdf
  2. Move out to directory <project_root>/Logger/demo
  3. Run demo executable
  4. Make sure that file.log is generated and its content correspond with usage rules described in programming Guide.

DirectoryContainer

  1. Read ProgrammingGuide in file
    <project_root>/DirectoryContainer/docs/ProgrammingGuide_eng.pdf
  2. Move out to directory <project_root>/DirectoryContainer/demo
  3. Run demo executable
  4. Make sure that file.log is generated and its content correspond with usage rules described in programming Guide.

ptrs

  1. Read ProgrammingGuide in file
    <project_root>/ptrs/docs/ProgrammingGuide_eng.pdf Move out in series to:
    1. project_root/ptrs/demo/safe_ptr
    2. project_root/ptrs/demo/owned_ptr
  2. Make sure that executable files is present and is in working state.

Threading

Move out in series to:
  1. project_root/Threading/demo/Container
  2. project_root/Threading/demo/DeleteThis
  3. project_root/Threading/demo/Hairdresser
  4. project_root/Threading/demo/Philosophs
  5. project_root/Threading/demo/Stres
  6. project_root/Threading/demo/ThreadServices
Make sure that executable files is present and is in working state.

DirectoryContainer

  1. Read ProgrammingGuide in file
    <project_root>/DynamicModules/docs/ProgrammingGuide_eng.pdf
  2. Move out to directory <project_root>/DynamicModules/demo
  3. Run Hello executable
  4. Make sure that output is:
    Hi! I'm Hello1
    Hi! I'm Hello2, name was xxx
    

Using

A.

Windows NT: WIN32 macros must be defined befor including of any include file from GradC++ToolBox package

B.

Programs, which use some of GradC++ToolBox components must be compiled with the next libraries:

For Unix:

component staic library
  dinamic library
ProgOptions libProgOptions.a
  libProgOptions.so
ServiceOptions libServiceOptions.a, libProgOptions.a
  libServiceOptions.so, libProgOptions.so
Threading libThreading.a
  libThreading.so
Logger libLogger.a, libThreading.a
  libLogger.so, libThreading.so
DirectoryContainer libDirectoryContainer.a, libThreading.a
  libDirectoryContainer.so, libThreading.so
DynamicModules libDynamicModules.a
  libDynamicModules.so



For Windows NT:

component staic library
ProgOptions ProgOptions.lib
ServiceOptions ServiceOptions.lib, ProgOptions.lib
Threading Threading.lib
Logger Logger.lib, Threading.lib
DirectoryContainer DirectoryContainer.lib
DynamicModules DynamicModules.lib


Dependencies

Take into account if want to treat single component of package:

I. e. dependency diagram is shown in next picture:

 ptrs                  ProgOptions
  |                        |
  *-- Threading            *--ServiceOptions
         |
         |
         *--Logger
         |
         *--DirectoryContainer

Changes

07.05.2003
29.08.2002
28.04.2002
06.02.2002
- release number changed (1.4.1 -> 1.4.2)
24.01.2002
- release number changed (1.4.0 -> 1.4.1)
27.12.2001
- overpatching reflecting next stuffs:
  1. alteration of installation process for Windows NT;
  2. adding of omniORB and TAO support for Windows NT;
  3. adding new component DynamicModules.
18.09.2001
- added info about DirectoryContainer component
04.07.2001
- changed port number in CORBA demo explanation.
29.04.2001
- fixed few minor typos.
14.02.2001
- added detailed information about ORB configuration options
04.09.2000
- first revision


next_inactive up previous
GradSoft