ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/mdtools/generic_stamps/MoleculeStamp.cpp
(Generate patch)

Comparing trunk/mdtools/generic_stamps/MoleculeStamp.cpp (file contents):
Revision 11 by mmeineke, Tue Jul 9 18:40:59 2002 UTC vs.
Revision 184 by mmeineke, Thu Nov 21 20:33:06 2002 UTC

# Line 5 | Line 5
5  
6   #include "MoleculeStamp.hpp"
7  
8 + char MoleculeStamp::errMsg[500];
9 +
10   MoleculeStamp::MoleculeStamp(){
11    
12    n_atoms = 0;
# Line 49 | Line 51 | MoleculeStamp::~MoleculeStamp(){
51    
52   }
53  
54 < void MoleculeStamp::assignString( char* lhs, char* rhs ){
54 > char* MoleculeStamp::assignString( char* lhs, char* rhs ){
55    
56    if( !strcmp( lhs, "name" ) ){
57      strcpy( name, rhs );
# Line 60 | Line 62 | void MoleculeStamp::assignString( char* lhs, char* rhs
62      else unhandled->add( lhs, rhs );
63      have_extras = 1;
64    }
65 +  return NULL;
66   }
67  
68 < void MoleculeStamp::assignDouble( char* lhs, double rhs ){
68 > char* MoleculeStamp::assignDouble( char* lhs, double rhs ){
69    int i;
70  
71    if( !strcmp( lhs, "nAtoms" ) ){
72      n_atoms = (int)rhs;
73      
74      if( have_atoms ){
75 <      std::cerr << "MoleculeStamp error, n_atoms already declared for"
76 <                << " molecule: " << name << "\n";
77 <      exit(1);
75 >      sprintf( errMsg,
76 >               "MoleculeStamp error, n_atoms already declared"
77 >               "for molecule: %s\n",
78 >               name);
79 >      return strdup( errMsg );
80      }
81      have_atoms = 1;
82      atoms = new AtomStamp*[n_atoms];
# Line 82 | Line 87 | void MoleculeStamp::assignDouble( char* lhs, double rh
87      n_bonds = (int)rhs;
88  
89      if( have_bonds ){
90 <      std::cerr << "MoleculeStamp error, n_bonds already declared for"
91 <                << " molecule: " << name << "\n";
92 <      exit(1);
90 >      sprintf( errMsg,  
91 >               "MoleculeStamp error, n_bonds already declared for"
92 >               " molecule: %s\n",
93 >               name);
94 >      return strdup( errMsg );
95      }
96      have_bonds = 1;
97      bonds = new BondStamp*[n_bonds];
# Line 95 | Line 102 | void MoleculeStamp::assignDouble( char* lhs, double rh
102      n_bends = (int)rhs;
103  
104      if( have_bends ){
105 <      std::cerr << "MoleculeStamp error, n_bends already declared for"
106 <                << " molecule: " << name << "\n";
107 <      exit(1);
105 >      sprintf( errMsg,
106 >               "MoleculeStamp error, n_bends already declared for"
107 >               " molecule: %s\n",
108 >               name);
109 >      return strdup( errMsg );
110      }
111      have_bends = 1;
112      bends = new BendStamp*[n_bends];
# Line 108 | Line 117 | void MoleculeStamp::assignDouble( char* lhs, double rh
117      n_torsions = (int)rhs;
118  
119      if( have_torsions ){
120 <      std::cerr << "MoleculeStamp error, n_torsions already declared for"
121 <                << " molecule: " << name << "\n";
122 <      exit(1);
120 >      sprintf( errMsg,
121 >               "MoleculeStamp error, n_torsions already declared for"
122 >               " molecule: %s\n",
123 >               name );
124 >      return strdup( errMsg );
125      }
126      have_torsions = 1;
127      torsions = new TorsionStamp*[n_torsions];
# Line 121 | Line 132 | void MoleculeStamp::assignDouble( char* lhs, double rh
132      else unhandled->add( lhs, rhs );
133      have_extras = 1;
134    }
135 +  return NULL;
136   }
137  
138 < void MoleculeStamp::assignInt( char* lhs, int rhs ){
138 > char*  MoleculeStamp::assignInt( char* lhs, int rhs ){
139    int i;
140    
141    if( !strcmp( lhs, "nAtoms" ) ){
142      n_atoms = rhs;
143      
144      if( have_atoms ){
145 <      std::cerr << "MoleculeStamp error, n_atoms already declared for"
146 <                << " molecule: " << name << "\n";
147 <      exit(1);
145 >      sprintf( errMsg,
146 >               "MoleculeStamp error, n_atoms already declared for"
147 >               " molecule: %s\n",
148 >               name);
149 >      return strdup( errMsg );
150      }
151      have_atoms = 1;
152      atoms = new AtomStamp*[n_atoms];
# Line 143 | Line 157 | void MoleculeStamp::assignInt( char* lhs, int rhs ){
157      n_bonds = rhs;
158  
159      if( have_bonds ){
160 <      std::cerr << "MoleculeStamp error, n_bonds already declared for"
161 <                << " molecule: " << name << "\n";
162 <      exit(1);
160 >      sprintf( errMsg,
161 >               "MoleculeStamp error, n_bonds already declared for"
162 >               " molecule: %s\n",
163 >               name);
164 >      return strdup( errMsg );
165      }
166      have_bonds = 1;
167      bonds = new BondStamp*[n_bonds];
# Line 156 | Line 172 | void MoleculeStamp::assignInt( char* lhs, int rhs ){
172      n_bends = rhs;
173  
174      if( have_bends ){
175 <      std::cerr << "MoleculeStamp error, n_bends already declared for"
176 <                << " molecule: " << name << "\n";
177 <      exit(1);
175 >      sprintf( errMsg,
176 >               "MoleculeStamp error, n_bends already declared for"
177 >               " molecule: %s\n",
178 >               name );
179 >      return strdup( errMsg );
180      }
181      have_bends = 1;
182      bends = new BendStamp*[n_bends];
# Line 169 | Line 187 | void MoleculeStamp::assignInt( char* lhs, int rhs ){
187      n_torsions = rhs;
188  
189      if( have_torsions ){
190 <      std::cerr << "MoleculeStamp error, n_torsions already declared for"
191 <                << " molecule: " << name << "\n";
192 <      exit(1);
190 >      sprintf( errMsg,
191 >               "MoleculeStamp error, n_torsions already declared for"
192 >               " molecule: %s\n",
193 >               name);
194 >      return strdup( errMsg );
195      }
196      have_torsions = 1;
197      torsions = new TorsionStamp*[n_torsions];
# Line 182 | Line 202 | void MoleculeStamp::assignInt( char* lhs, int rhs ){
202      else unhandled->add( lhs, rhs );
203      have_extras = 1;
204    }
205 +  return NULL;
206   }
207  
208   char* MoleculeStamp::addAtom( AtomStamp* the_atom, int atomIndex ){
209    
189  char err[200];
190  
210    if( have_atoms && atomIndex < n_atoms ) atoms[atomIndex] = the_atom;
211    else{
212      if( have_atoms ){
213 <      sprintf( err, "MoleculeStamp error, %d out of nAtoms range",
213 >      sprintf( errMsg, "MoleculeStamp error, %d out of nAtoms range",
214                 atomIndex );
215 <      return strdup( err );
215 >      return strdup( errMsg );
216      }
217      else return strdup("MoleculeStamp error, nAtoms not given before"
218                         "first atom declaration." );
# Line 204 | Line 223 | char* MoleculeStamp::addBond( BondStamp* the_bond, int
223  
224   char* MoleculeStamp::addBond( BondStamp* the_bond, int bondIndex ){
225    
207  char err[200];
226    
227    if( have_bonds && bondIndex < n_bonds ) bonds[bondIndex] = the_bond;
228    else{
229      if( have_bonds ){
230 <      sprintf( err, "MoleculeStamp error, %d out of nBonds range",
230 >      sprintf( errMsg, "MoleculeStamp error, %d out of nBonds range",
231                 bondIndex );
232 <      return strdup( err );
232 >      return strdup( errMsg );
233      }
234      else return strdup("MoleculeStamp error, nBonds not given before"
235                         "first bond declaration." );
# Line 222 | Line 240 | char* MoleculeStamp::addBend( BendStamp* the_bend, int
240  
241   char* MoleculeStamp::addBend( BendStamp* the_bend, int bendIndex ){
242    
225  char err[200];
243    
244    if( have_bends && bendIndex < n_bends ) bends[bendIndex] = the_bend;
245    else{
246      if( have_bends ){
247 <      sprintf( err, "MoleculeStamp error, %d out of nBends range",
247 >      sprintf( errMsg, "MoleculeStamp error, %d out of nBends range",
248                 bendIndex );
249 <      return strdup( err );
249 >      return strdup( errMsg );
250      }
251      else return strdup("MoleculeStamp error, nBends not given before"
252                         "first bend declaration." );
# Line 240 | Line 257 | char* MoleculeStamp::addTorsion( TorsionStamp* the_tor
257  
258   char* MoleculeStamp::addTorsion( TorsionStamp* the_torsion, int torsionIndex ){
259    
243  char err[200];
260    
261    if( have_torsions && torsionIndex < n_torsions )
262      torsions[torsionIndex] = the_torsion;
263    else{
264      if( have_torsions ){
265 <      sprintf( err, "MoleculeStamp error, %d out of nTorsions range",
265 >      sprintf( errMsg, "MoleculeStamp error, %d out of nTorsions range",
266                 torsionIndex );
267 <      return strdup( err );
267 >      return strdup( errMsg );
268      }
269      else return strdup("MoleculeStamp error, nTorsions not given before"
270                         "first torsion declaration." );
# Line 261 | Line 277 | char* MoleculeStamp::checkMe( void ){
277    
278    int i;
279    short int no_atom;
264  char err[120];
280    
281    if( !have_name || !have_atoms ){
282      if( !have_name ) return strdup( "MoleculeStamp error. Molecule's name"
# Line 275 | Line 290 | char* MoleculeStamp::checkMe( void ){
290    }
291  
292    if( no_atom ){
293 <    sprintf( err,
293 >    sprintf( errMsg,
294               "MoleculeStamp error. Not all of the atoms were"
295               " declared in molecule \"%s\".\n", name );
296 <    return strdup( err );
296 >    return strdup( errMsg );
297    }
298  
299    return NULL;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines