00001 /*<std-header orig-src='shore' incl-file-exclusion='SM_VAS_H'> 00002 00003 $Id: sm_vas.h,v 1.30 2010/05/26 01:20:12 nhall Exp $ 00004 00005 SHORE -- Scalable Heterogeneous Object REpository 00006 00007 Copyright (c) 1994-99 Computer Sciences Department, University of 00008 Wisconsin -- Madison 00009 All Rights Reserved. 00010 00011 Permission to use, copy, modify and distribute this software and its 00012 documentation is hereby granted, provided that both the copyright 00013 notice and this permission notice appear in all copies of the 00014 software, derivative works or modified versions, and any portions 00015 thereof, and that both notices appear in supporting documentation. 00016 00017 THE AUTHORS AND THE COMPUTER SCIENCES DEPARTMENT OF THE UNIVERSITY 00018 OF WISCONSIN - MADISON ALLOW FREE USE OF THIS SOFTWARE IN ITS 00019 "AS IS" CONDITION, AND THEY DISCLAIM ANY LIABILITY OF ANY KIND 00020 FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 00021 00022 This software was developed with support by the Advanced Research 00023 Project Agency, ARPA order number 018 (formerly 8230), monitored by 00024 the U.S. Army Research Laboratory under contract DAAB07-91-C-Q518. 00025 Further funding for this work was provided by DARPA through 00026 Rome Research Laboratory Contract No. F30602-97-2-0247. 00027 00028 */ 00029 00030 #ifndef SM_VAS_H 00031 #define SM_VAS_H 00032 00033 #include "w_defines.h" 00034 00035 /* -- do not edit anything above this line -- </std-header>*/ 00036 00037 /* DOXYGEN documentation : */ 00038 00039 /**\addtogroup SSMAPI 00040 * 00041 * \details 00042 * The rest of this page points to examples of code that uses 00043 * the storage manager, and the modules listed below describe 00044 * various aspects of the functionality and methods provided by the 00045 * storage manager. 00046 * 00047 * \section SSMVAS Examples of Server Code 00048 * \addtogroup SSMAPI 00049 * 00050 * \subsection EXMIN Minimal Example 00051 * Any code that uses the SHORE Storage Manager requires 00052 * \code 00053 * #include <sm_vas.h> 00054 * \endcode 00055 * For a simple example, see \ref startstop.cpp 00056 * 00057 * \subsection EXINIT_CONFIG_OPTIONS Setting Up Run-Time Options 00058 * The example \ref init_config_options.cpp 00059 * demonstrates a more extensive handling of option, and 00060 * is used in other examples, below. 00061 * 00062 * \subsection EXCREATE_REC Creating a file of Records 00063 * The example \ref create_rec.cpp 00064 * shows a server that creates a file of records. 00065 * It must also contain, of course, the creation of options, starting up 00066 * and shutting down a storage manager. 00067 * 00068 * \subsection EXLOG_EXCEED Use of ss_m::ss_m Arguments 00069 * The example \ref log_exceed.cpp 00070 * demonstrates the use of the ss_m::ss_m arguments. 00071 * It is an extension of the above example that 00072 * generates enough log to run out of log space. 00073 */ 00074 00075 /**\example startstop.cpp 00076 * This is an example of using <sm_vas.h>. It shows a minimal 00077 * storage manager server, which does nothing but start up (recover) and 00078 * shut down. 00079 */ 00080 /**\example init_config_options.cpp 00081 * This example demonstrates the use of run-time options. 00082 * This code is used for other examples. 00083 */ 00084 /**\example create_rec.cpp 00085 * This example demonstrates creating a file of records. 00086 * It also demonstrates scanning the file of records, 00087 * creating a device and volume, and use of the root index. 00088 * It must also contain, of course, the creation of options, starting up 00089 * and shutting down a storage manager. 00090 */ 00091 /**\example log_exceed.cpp 00092 * This example demonstrates the use of the ss_m::ss_m arguments. 00093 * It is an extension of the \ref create_rec.cpp example that 00094 * generates enough log to run out of log space. 00095 */ 00096 #include "w.h" 00097 #include <cstddef> 00098 #include <w_stream.h> 00099 00100 #include "option.h" 00101 #include "basics.h" 00102 #include "lid_t.h" 00103 #include "vec_t.h" 00104 #include "tid_t.h" 00105 #include "stid_t.h" 00106 00107 #undef SM_SOURCE 00108 #undef SM_LEVEL 00109 #include "sm.h" 00110 #include "pin.h" 00111 #include "scan.h" 00112 #include "kvl_t.h" // define kvl_t for lock_base_t 00113 #include "lock_s.h" // define lock_base_t 00114 00115 #include "sort.h" // define sort_stream_i 00116 #include "sort_s.h" // key_info_t 00117 00118 /*<std-footer incl-file-exclusion='SM_VAS_H'> -- do not edit anything below this line -- */ 00119 00120 #endif /*</std-footer>*/