メインページ   モジュール   クラス階層   アルファベット順一覧   構成   ファイル一覧   構成メンバ   ファイルメンバ   関連ページ  

Tglobals.h

解説を見る。
00001 // =====================================================================
00002 //  $Id: Tglobals.h,v 1.1.1.1 2003/06/27 02:56:42 goiwai Exp $
00003 //  $Name: CLDAQ-1-06-00 $
00004 // =====================================================================
00005 #ifndef __TGLOBALS_H
00006 #define __TGLOBALS_H
00007 
00008 #include <pthread.h>
00009 
00010 #include <X11/Xlib.h>
00011 #include <X11/Xutil.h>
00012 #include <X11/Xatom.h>
00013 #include <X11/cursorfont.h>
00014 #include <X11/keysym.h>
00015 #include <X11/xpm.h>
00016 
00017 #include <stdio.h>
00018 #include <string.h>
00019 #include <fstream>
00020 #include <stdlib.h>
00021 #include <time.h>
00022 #include <sys/types.h>
00023 #include <sys/stat.h>
00024 #include <sys/un.h>
00025 #include <fcntl.h>
00026 #include <sys/time.h>
00027 #include <sys/times.h>
00028 #include <errno.h>
00029 #include <math.h>
00030 #include <sys/socket.h>
00031 #include <netinet/in.h>
00032 #include <arpa/inet.h>
00033 #include <netdb.h>
00034 #include <signal.h>
00035 #include <sys/ioctl.h>
00036 #include <sys/ipc.h>
00037 #include <sys/sem.h>
00038 #include <sys/shm.h>
00039 #include <sys/wait.h>
00040 #include <termios.h>
00041 #include <sys/mman.h>
00042 #include <term.h>
00043 #include <ncurses.h>
00044 #include <unistd.h>
00045 #include <limits.h>
00046 #include <values.h>
00047 
00048 #ifdef __CLDAQ_ZLIB_USE
00049 #include <zlib.h>
00050 #endif
00051 
00052 #include <linux/param.h>
00053 
00054 #ifndef __USE_BSD
00055 typedef __caddr_t caddr_t;
00056 #endif
00057 
00058 #if defined(__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED)
00059 // see <sys/sem.h>
00060 #else
00061 // if defer to X/OPEN design
00062 union semun {
00063   int val;                    // value for SETVAL
00064   struct semid_ds* buf;       // buffer for IPC_STAT, IPC_SET
00065   unsigned short int* array;  // array for GETALL, SETALL
00066   struct seminfo* __buf;      // buffer for IPC_INFO
00067 };
00068 #endif
00069 
00070 #include "Ttypes.h"
00071 
00072 extern Tchar** environ;
00073 
00074 static const Tint _digits = 6;
00075 static const Tsize_t _buflen = 64;
00076 static const Tsize_t _precision = 6;
00077 
00078 inline static Tstring itostr( Tint i, Tint digits = _digits )
00079 {
00080   static const Tsize_t buflen = _buflen;
00081   static Tchar buf[ buflen ];
00082   Tostrstream os( buf, buflen );
00083 
00084   if ( i >= 0 ) {
00085     os << setfill( '0' ) << setiosflags( Tios::right ) << setw( digits );
00086     os << i << Tends;
00087     Tstring s = os.str();
00088     return( s );
00089   } else {
00090     os << i << Tends;
00091     Tstring s = os.str();
00092     Tint nzero = digits - s.size();
00093     if ( nzero > 0 ) {
00094       s.insert( 1, nzero, '0' );
00095     }
00096     return( s );
00097   }
00098 }
00099 
00100 inline static Tstring ltostr( Tlong l, Tint digits = _digits )
00101 {
00102   static const Tsize_t buflen = _buflen;
00103   static Tchar buf[ buflen ];
00104   Tostrstream os( buf, buflen );
00105 
00106   if ( l >= 0 ) {
00107     os << setfill( '0' ) << setiosflags( Tios::right ) << setw( digits );
00108     os << l << Tends;
00109     Tstring s = os.str();
00110     return( s );
00111   } else {
00112     os << l << Tends;
00113     Tstring s = os.str();
00114     Tint nzero = digits - s.size();
00115     if ( nzero > 0 ) {
00116       s.insert( 1, nzero, '0' );
00117     }
00118     return( s );
00119   }
00120 }
00121 
00122 inline static Tstring ultostr( TUlong ul, Tint digits = _digits )
00123 {
00124   static const Tsize_t buflen = _buflen;
00125   static Tchar buf[ buflen ];
00126   Tostrstream os( buf, buflen );
00127 
00128   if ( ul >= 0 ) {
00129     os << setfill( '0' ) << setiosflags( Tios::right ) << setw( digits );
00130     os << ul << Tends;
00131     Tstring s = os.str();
00132     return( s );
00133   } else {
00134     os << ul << Tends;
00135     Tstring s = os.str();
00136     Tint nzero = digits - s.size();
00137     if ( nzero > 0 ) {
00138       s.insert( 1, nzero, '0' );
00139     }
00140     return( s );
00141   }
00142 }
00143 
00144 inline static Tstring dtostr( Tdouble d, Tint precision = _precision )
00145 {
00146   static const Tsize_t buflen = _buflen;
00147   static Tchar buf[ buflen ];
00148   Tostrstream os( buf, buflen );
00149 
00150   os << setprecision( precision ) << d << Tends;
00151   Tstring s = os.str();
00152   return( s );
00153 }
00154 
00155 inline static Tstring ftostr( Tfloat f, Tint precision = _precision )
00156 {
00157   return( dtostr( (Tdouble)f, precision ) );
00158 }
00159 
00160 inline static Tbool isexist( const Tstring& filename )
00161 {
00162   if ( access( filename.c_str(), F_OK ) == 0 ) {
00163     return( Ttrue );
00164   } else {
00165     return( Tfalse );
00166   }
00167 }
00168 
00169 inline static Tvoid showbit( Tint bit )
00170 {
00171   Tint nbit = Tsizeof( bit ) * 8;
00172   for ( Tint i = nbit; i > 0; i -- ) {
00173     Tcout << ( ( bit >> i - 1 ) & 0x01 );
00174   }
00175   Tcout << Tendl;
00176   return;
00177 }
00178 
00179 #endif

CLDAQ - a Class Library for Data AcQuisition (Version 1.6.0)
Go IWAI <goiwai@users.sourceforge.jp>