Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Data Structures | Macros | Typedefs | Functions
gString.h File Reference
#include "statusMessageReporting.h"

Go to the source code of this file.

Data Structures

struct  gString_s
 

Macros

#define gString_minIncrement   sizeof( char * )
 

Typedefs

typedef struct gString_s gString
 

Functions

int gString_initialize (statusMessageReporting *smr, gString *gStr, int size, int increment)
 
int gString_release (statusMessageReporting *smr, gString *gStr)
 
int gString_clear (statusMessageReporting *smr, gString *gStr)
 
int gString_addTo (statusMessageReporting *smr, gString *gStr, char const *str)
 
char const * gString_string (statusMessageReporting *smr, gString *gStr)
 
int gString_length (statusMessageReporting *smr, gString *gStr)
 
int gString_allocated (statusMessageReporting *smr, gString *gStr)
 
int gString_increment (statusMessageReporting *smr, gString *gStr)
 

Macro Definition Documentation

#define gString_minIncrement   sizeof( char * )

Definition at line 49 of file gString.h.

Referenced by gString_initialize().

Typedef Documentation

typedef struct gString_s gString

Definition at line 50 of file gString.h.

Function Documentation

int gString_addTo ( statusMessageReporting smr,
gString gStr,
char const *  str 
)

Definition at line 90 of file gString.cc.

References gString_s::allocated, gString_s::gStr, gString_initialize(), gString_s::increment, gString_s::length, n, and xData_realloc2.

Referenced by tpi_channelID_toStringSans(), and tpi_spectralID_toStringSans().

90  {
91 
92  int n, size = strlen( str );
93 
94  if( gStr->gStr == NULL ) {
95  if( gString_initialize( smr, gStr, size + 1, gStr->increment ) != 0 ) return( 1 ); }
96  else if( ( gStr->length + size ) > gStr->allocated ) {
97  n = gStr->increment;
98  if( n < size ) n = size;
99  //if( ( gStr->gStr = xData_realloc2( smr, gStr->gStr, gStr->allocated + n, "gStr->gStr" ) ) == NULL ) return( 1 );
100  if( ( gStr->gStr = (char*) xData_realloc2( smr, gStr->gStr, gStr->allocated + n, "gStr->gStr" ) ) == NULL ) return( 1 );
101  gStr->allocated += n;
102  }
103  strcpy( &(gStr->gStr[gStr->length - 1]), str );
104  gStr->length = gStr->length + size;
105  return( 0 );
106 }
char * gStr
Definition: gString.h:54
#define xData_realloc2(smr, old, size, forItem)
Definition: xData.h:314
int allocated
Definition: gString.h:53
const G4int n
int length
Definition: gString.h:53
int increment
Definition: gString.h:53
int gString_initialize(statusMessageReporting *smr, gString *gStr, int size, int increment)
Definition: gString.cc:48
int gString_allocated ( statusMessageReporting smr,
gString gStr 
)

Definition at line 127 of file gString.cc.

References gString_s::allocated.

127  {
128 
129  return( gStr->allocated );
130 }
int allocated
Definition: gString.h:53
int gString_clear ( statusMessageReporting smr,
gString gStr 
)

Definition at line 79 of file gString.cc.

References gString_s::gStr, and gString_s::length.

79  {
80 
81  if( gStr->gStr != NULL ) {
82  gStr->length = 1;
83  gStr->gStr[0] = 0;
84  }
85  return( 0 );
86 }
char * gStr
Definition: gString.h:54
int length
Definition: gString.h:53
int gString_increment ( statusMessageReporting smr,
gString gStr 
)

Definition at line 135 of file gString.cc.

References gString_s::increment.

135  {
136 
137  return( gStr->increment );
138 }
int increment
Definition: gString.h:53
int gString_initialize ( statusMessageReporting smr,
gString gStr,
int  size,
int  increment 
)

Definition at line 48 of file gString.cc.

References gString_s::allocated, gString_s::gStr, gString_minIncrement, gString_s::increment, gString_s::length, and xData_malloc2.

Referenced by gString_addTo(), and gString_release().

48  {
49 
50  if( size > 0 ) {
51  //if( ( gStr->gStr = xData_malloc2( smr, size + 1, 0, "gStr->gStr" ) ) == NULL ) return( 1 );
52  if( ( gStr->gStr = (char*) xData_malloc2( smr, size + 1, 0, "gStr->gStr" ) ) == NULL ) return( 1 );
53  gStr->length = 1;
54  gStr->gStr[0] = 0; }
55  else {
56  size = 0;
57  gStr->length = 0;
58  gStr->gStr = NULL;
59  }
60  gStr->allocated = size;
61  //if( increment < gString_minIncrement ) increment = gString_minIncrement;
62  if( increment < (int) gString_minIncrement ) increment = gString_minIncrement;
63  gStr->increment = increment;
64  return( 0 );
65 }
char * gStr
Definition: gString.h:54
#define xData_malloc2(smr, size, zero, forItem)
Definition: xData.h:313
int allocated
Definition: gString.h:53
int length
Definition: gString.h:53
int increment
Definition: gString.h:53
#define gString_minIncrement
Definition: gString.h:49
int gString_length ( statusMessageReporting smr,
gString gStr 
)

Definition at line 119 of file gString.cc.

References gString_s::length.

119  {
120 
121  return( gStr->length );
122 }
int length
Definition: gString.h:53
int gString_release ( statusMessageReporting smr,
gString gStr 
)

Definition at line 69 of file gString.cc.

References free(), gString_s::gStr, gString_initialize(), and gString_s::increment.

69  {
70 
71  if( gStr->gStr != NULL ) free( gStr->gStr );
72  gString_initialize( smr, gStr, 0, gStr->increment );
73  return( 0 );
74 }
void free(void *__ptr)
Definition: hjmalloc.cc:140
char * gStr
Definition: gString.h:54
int increment
Definition: gString.h:53
int gString_initialize(statusMessageReporting *smr, gString *gStr, int size, int increment)
Definition: gString.cc:48
char const* gString_string ( statusMessageReporting smr,
gString gStr 
)

Definition at line 111 of file gString.cc.

References gString_s::gStr.

111  {
112 
113  return( gStr->gStr );
114 }
char * gStr
Definition: gString.h:54