summaryrefslogtreecommitdiff
path: root/src/examples/xb_ex_ssv.cpp
blob: 61d72a23a1ff262c3983a6086f75e0a5aeccaa3f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/*  xb_ex_ssv.cpp

XBase64 Software Library

Copyright (c) 1997,2003,2014,2021,2022,2023 Gary A Kunkel

The xb64 software library is covered under the terms of the GPL Version 3, 2007 license.

Email Contact:

    XDB-devel@lists.sourceforge.net
    XDB-users@lists.sourceforge.net

This program demonstrates using functionality of the xbSsv class  (Shared system values)

*/

#include "xbase.h"

using namespace xb;

//int main( int ac, char ** av ){

int main( int, char ** av ){

  xbXBase  x;              // set up xbase for business
  xbString sMsg;           // a message string

  sMsg.Sprintf( "Program [%s] initializing...", av[0] );
  std::cout << sMsg.Str() << std::endl;


  // example code to set up log file usage
  #ifdef XB_LOGGING_SUPPORT
    char     cSeperator;                      // is this a unix (/) or windows (\) file system
    xbString sLog;                            // general string for log file activities
    sLog = x.GetLogFqFileName().Str();        // get the system default log file name
    std::cout << "System default logfile is [" << sLog.Str() << "]" << std::endl;

    cSeperator = sLog.GetPathSeparator();     // get the seperator from 
    std::cout << "Path seperator = [" << cSeperator << "]" << std::endl;

    sLog.Sprintf( "..%c", cSeperator );
    x.SetLogDirectory( sLog );
    std::cout << "sLog = [" << sLog.Str() << "]\n";

    sLog = x.GetLogFqFileName().Str();        // get the system default log file name
    std::cout << "New logfile is [" << sLog.Str() << "]" << std::endl;

    // turn on logging after file name set
    x.EnableMsgLogging();
  #endif  // XB_LOGGING_SUPPORT

  // const char *GetErrorMessage( xbInt16 ErrorCode ) const;
  // void DisplayError( xbInt16 ErrorCode ) const;
  std::cout << "DisplayError( -100 ) - ";
  x.DisplayError( -100 );
  //  << "]" << std::endl;

  // void      SetDefaultDateFormat( const xbString &sDefaultDateFormat );
  // xbString& GetDefaultDateFormat() const;
  std::cout << "GetDefaultDateFormat() - " << x.GetDefaultDateFormat().Str() << std::endl;


  //  void       SetDataDirectory          ( const xbString &sDataDirectory );
  // xbString& GetDataDirectory() const;
  std::cout << "GetDataDirectory() - " << x.GetDataDirectory().Str() << std::endl;

  // xbInt16 GetEndianType() const;
  if( x.GetEndianType() == 'L' )
    std::cout << "Little Endian Architecture." << std::endl;
  else
    std::cout << "Bid Endian Architecture." << std::endl;

  //xbBool GetDefaultAutoCommit() const;
  //void SetDefaultAutoCommit( xbBool bDefaultAutoCommit );
  if( x.GetDefaultAutoCommit())
    std::cout << "AutoCommit is on." << std::endl;
  else
    std::cout << "AutoCommit is off." << std::endl;

  //xbBool     GetMultiUser              () const;
  //void       SetMultiUser              ( xbBool bMultiUser );
  if( x.GetMultiUser())
    std::cout << "Multi user (locking) is enabled." << std::endl;
  else
    std::cout << "Multi user (locking) not enabled." << std::endl;

  #if defined (XB_NDX_SUPPORT) || defined (XB_MDX_SUPPORT)
  // xbInt16    GetUniqueKeyOpt           () const;
  // xbInt16    SetUniqueKeyOpt           ( xbInt16 iUniqueKeyOpt );
  //   XB_HALT_ON_DUPKEY
  //   XB_EMULATE_DBASE
  if( x.GetUniqueKeyOpt() == XB_HALT_ON_DUPKEY )
    std::cout << "UniqueKey option - XB_HALT_ON_DUPKEY" << std::endl;
  else if( x.GetUniqueKeyOpt() == XB_EMULATE_DBASE )
    std::cout << "UniqueKey option - XB_EMULATE_DBASE" << std::endl;
  #endif  // (XB_NDX_SUPPORT) || defined (XB_MDX_SUPPORT)

  #ifdef XB_LOCKING_SUPPORT
  //xbInt16    GetDefaultLockRetries     () const;
  //void       SetDefaultLockRetries     ( xbInt16 iRetryCount );
  //xbInt32    GetDefaultLockWait        () const;
  //void       SetDefaultLockWait        ( xbInt32 lRetryWait );
  //xbInt16    GetDefaultLockFlavor      () const;
  //void       SetDefaultLockFlavor      ( xbInt16 iLockFlavor );
  //xbBool     GetDefaultAutoLock        () const;
  //void       SetDefaultAutoLock        ( xbBool bAutoLock );
  //void       EnableDefaultAutoLock     ();
  //void       DisableDefaultAutoLock    ();

  std::cout << "GetDefaultLockRetries() - " << x.GetDefaultLockRetries() << std::endl;
  std::cout << "GetDefaultLockWait() - " << x.GetDefaultLockWait() << std::endl;
  std::cout << "GetDefaultAutoLock() - " << x.GetDefaultAutoLock() << std::endl;
  #endif  // XB_LOCKING_SUPPORT

  #ifdef XB_MDX_SUPPORT
  // xbInt16    GetCreateMdxBlockSize() const;
  // xbInt16    SetCreateMdxBlockSize( xbInt16 ulBlockSize );
  std::cout << "GetCreateMdxBlockSize() - " << x.GetCreateMdxBlockSize() << std::endl;
  #endif  // XB_MDX_SUPPORT

  #ifdef XB_BLOCKREAD_SUPPORT
  // xbUInt32   GetDefaultBlockReadSize() const;
  // void       SetDefaultBlockReadSize( xbUInt32 ulDfltBlockReadSize );
  std::cout << "GetDefaultBlockReadSize() - " << x.GetDefaultBlockReadSize() << std::endl;  
  #endif  // XB_BLOCKREAD_SUPPORT

  //xbBool     BitSet                    ( unsigned char c, xbInt16 iBitNo ) const;
  //void       BitDump                   ( unsigned char c ) const;
  //void       BitDump                   ( char c ) const;
  std::cout << "BitDump( 'A' ) - ";
  x.BitDump( 'A' );

  return 0;
}