ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-3.0/src/types/CutoffGroupStamp.cpp
(Generate patch)

Comparing trunk/OOPSE-3.0/src/types/CutoffGroupStamp.cpp (file contents):
Revision 2204 by gezelter, Fri Apr 15 22:04:00 2005 UTC vs.
Revision 2469 by tim, Fri Dec 2 15:38:03 2005 UTC

# Line 45 | Line 45
45   #include <iostream>
46  
47   #include "types/CutoffGroupStamp.hpp"
48 <
49 < char CutoffGroupStamp::errMsg[500];
50 <
51 < CutoffGroupStamp::CutoffGroupStamp(){
52 <  
53 <  unhandled = NULL;
54 <  have_members = 0;
55 <  have_extras = 0;
56 <  n_members = 0;
57 <  which = 0;
58 <
48 > namespace oopse {
49 > CutoffGroupStamp::CutoffGroupStamp() {
50 >    deprecatedKeywords_.insert("nMembers");  
51   }
52  
53 < CutoffGroupStamp::~CutoffGroupStamp(){
54 <  if( unhandled != NULL ) delete unhandled;
63 <  
64 <  free(members);
65 <
53 > void CutoffGroupStamp::validate() {
54 >    DataHolder::validate();
55   }
67
68 char* CutoffGroupStamp::assignString( char* lhs, char* rhs ){
69
70  if( unhandled == NULL ) unhandled = new LinkedAssign( lhs, rhs );
71  else unhandled->add( lhs, rhs );
72  have_extras = 1;
73  return NULL;
74
56   }
76
77 char* CutoffGroupStamp::assignDouble( char* lhs, double rhs ){
78  if( !strcmp( lhs, "nMembers" ) ){
79    n_members = (int)rhs;
80    
81    if( have_members ){
82      sprintf( errMsg,
83               "CutoffGroupStamp error, nMembers already declared"
84               " for this CutoffGroup.\n");
85      return strdup( errMsg );
86    }
87    have_members = 1;
88    members = (int *) calloc(n_members, sizeof(int));    
89  }
90  else {
91    if( unhandled == NULL ) unhandled = new LinkedAssign( lhs, rhs );
92    else unhandled->add( lhs, rhs );
93    have_extras = 1;
94  }
95  return NULL;
96 }
97
98 char* CutoffGroupStamp::assignInt( char* lhs, int rhs ){
99  if( !strcmp( lhs, "nMembers" ) ){
100    n_members = rhs;
101
102    if( have_members ){
103      sprintf( errMsg,
104               "CutoffGroupStamp error, nMembers already declared for"
105               " this CutoffGroup.\n");
106      return strdup( errMsg );
107    }
108    have_members = 1;
109    members = (int *) calloc(n_members, sizeof(int));    
110  }
111  else {  
112    if( unhandled == NULL ) unhandled = new LinkedAssign( lhs, rhs );
113    else unhandled->add( lhs, rhs );
114    have_extras = 1;
115  }
116  return NULL;
117 }
118
119 char* CutoffGroupStamp::addMember( int atomIndex ){
120
121  if( have_members && which < n_members ) {
122    members[which] = atomIndex;
123    which++;
124  } else {
125    if( have_members ){
126      sprintf( errMsg, "CutoffGroupStamp error, %d out of nMembers range",
127               which );
128      return strdup( errMsg );
129    }
130    else return strdup("CutoffGroupStamp error, nMembers not given before"
131                       " member list declaration." );
132  }
133  return NULL;
134 }
135
136 char* CutoffGroupStamp::checkMe( void ){
137
138  short int no_member;
139  
140  if( !have_members ){
141    return strdup( "CutoffGroupStamp error. CutoffGroup contains no members." );
142  }
143
144  if (which < n_members) {
145    sprintf( errMsg,
146             "CutoffGroupStamp error. Not all of the members were"
147             " declared for this CutoffGroup.");
148    return strdup( errMsg );
149  }
150  
151  return NULL;
152  
153 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines