Files
geant4/source/geometry/solids/STEP/include/scl_string.h
T
2016-06-08 15:42:07 +02:00

109 lines
2.8 KiB
C++

#ifndef _SCL_STRING_H
#define _SCL_STRING_H
/*
* NIST Utils Class Library
* clutils/scl_string.h
* April 1997
* K. C. Morris
* David Sauder
* Development of this software was funded by the United States Government,
* and is not subject to copyright.
*/
/* $Id: scl_string.h,v 1.4 2000/01/21 13:42:42 gcosmo Exp $ */
#ifdef __O3DB__
#include <OpenOODB.h>
#endif
#ifdef __OSTORE__
#include <ostore/ostore.hh> // Required to access ObjectStore Class Library
#endif
/* point of contact for bug reports */
#define _POC_ " report problem to dp2@cme.nist.gov "
//#include <std.h> // not found in CenterLine C++
//#ifdef __OBJECTCENTER__
// this file is not in gnu C++ but it doesn't seem to be needed.
//#include <stdarg.h>
//#endif
// to make ObjectCenter happy?
#ifdef HAVE_STDARG_H
#include <stdarg.h>
#endif
#include "G4ios.hh"
#include <string.h>
/******************************************************************
b** Class: SCLstring
** Description: implements a few basic string handling functions -
** hopefully will be replaced by a standard clas
** Status: 26-Jan-1994 kc
******************************************************************/
class SCLstring {
protected:
public:
char * _strBuf; // initially empty
int _strBufSize; // size of buffer
int _max_len; // should be const, but some db\'s don\'t handle that
int newBufSize (int len) const;
public:
void PrintContents(G4std::ostream &out = G4cout) const;
// returns 1 if _strBuf is a null ptr or if it is an empty string ("")
int is_null() const;
// returns 1 if _strBuf is a null ptr, and 0 otherwise
int is_undefined() const;
// deletes _strBuf
void set_undefined() ;
// sets _strBuf space to be zeroed out
int set_null() ;
int StrBufSize() const;
int Length() const;
int MaxLength() const { return _max_len; }
void MaxLength(int i) { _max_len = i; }
const char * chars () const
{ return _strBuf ? _strBuf : ""; }
const char * rep() const
{ return _strBuf; }
// operators
SCLstring& operator= (const char*); // must be NULL terminated string
SCLstring& operator= (char* s) // must be NULL terminated string
{ operator= ((const char *)s); return *this; }
operator const char * () const;
int operator== (const char*) const;
SCLstring& Append (const char *);
SCLstring& Append (const char);
SCLstring& Append (const long int);
SCLstring& Append (const int);
// Josh L, 4/11/95
SCLstring& operator=(const SCLstring& s);
SCLstring& Append (const double, const int precision =15);
SCLstring& Prepend (const char *);
//constructor(s) & destructor
SCLstring (const char * str = 0, int max =0);
SCLstring (const SCLstring& s);
~SCLstring ();
#ifdef __OSTORE__
static os_typespec* get_os_typespec();
#endif
};
typedef SCLstring String_var;
#endif /* _SCL_STRING_H */