ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/mdtools/interface_implementation/Component.cpp
Revision: 118
Committed: Wed Sep 25 22:51:14 2002 UTC (21 years, 9 months ago) by chuckv
File size: 2115 byte(s)
Log Message:
begin the pain that is MPI.

abandon all hope ye who check out this branch..

P.S. we've added consistent BASS error checking

File Contents

# User Rev Content
1 mmeineke 10 #include <iostream>
2     #include <cstdlib>
3     #include <cstring>
4    
5     #include "Component.hpp"
6    
7     Component::Component(){
8    
9     start_array = NULL;
10     have_type = 0;
11     have_nMol = 0;
12     have_molFraction = 0;
13     have_start_array = 0;
14     }
15    
16     Component::~Component(){
17    
18     if( start_array != NULL ) free( start_array );
19     }
20    
21 chuckv 118 int Component::assignString( char* lhs, char* rhs, char** err ){
22 mmeineke 10
23 chuckv 118 char myErr[1000];
24    
25    
26 mmeineke 10 if( !strcmp( lhs, "type" ) ){
27     strcpy( type, rhs );
28     have_type = 1;
29     }
30    
31     else{
32 chuckv 118 sprintf(myErr, "Invalid assignment type for Component: %s = %s\n", lhs, rhs);
33     *err = strdup(myErr);
34     return 0;
35 mmeineke 10 }
36 chuckv 118
37     return = 1;
38 mmeineke 10 }
39    
40 chuckv 118 int Component::assignInt( char* lhs, int rhs, char** err ){
41 mmeineke 10
42 chuckv 118 char myErr[1000];
43    
44 mmeineke 10 if( !strcmp( lhs, "nMol" ) ){
45     nMol = rhs;
46     have_nMol = 1;
47     }
48    
49     else if( !strcmp( lhs, "molFraction" ) ){
50     if( rhs > 1 || rhs < 0 ){
51 chuckv 118 sprintf(myErr,"Component error. %d is an invalid molFraction. It must lie between 0 and 1\n",rhs);
52     *err = strdup(myErr);
53     return 0;
54 mmeineke 10 }
55     molFraction = rhs;
56     have_molFraction = 1;
57     }
58    
59     else{
60 chuckv 118 sprintf(myErr, "Invalid assignment type for Component: %s = %d\n", lhs, rhs);
61     *err = strdup(myErr);
62     return 0;
63 mmeineke 10 }
64 chuckv 118
65     return 1;
66 mmeineke 10 }
67    
68 chuckv 118 int Component::assignDouble( char* lhs, double rhs, char** err ){
69 mmeineke 10
70 chuckv 118 char myErr[1000];
71    
72 mmeineke 10 if( !strcmp( lhs, "molFraction" ) ){
73     if( rhs > 1 || rhs < 0 ){
74 chuckv 118 sprintf(myErr,"Component error. %lf is an invalid molFraction. It must lie between 0 and 1\n",rhs);
75     *err = strdup(myErr);
76     return 0;
77 mmeineke 10 }
78     molFraction = rhs;
79     have_molFraction = 1;
80     }
81    
82     else if( !strcmp( lhs, "nMol" ) ){
83     nMol = (int) rhs;
84     have_nMol = 1;
85     }
86    
87     else{
88 chuckv 118 sprintf(myErr, "Invalid assignment type for Component: %s = %lf\n", lhs, rhs);
89     *err = strdup(myErr);
90     return 0;
91 mmeineke 10 }
92 chuckv 118
93     return 1;
94 mmeineke 10 }
95    
96     void Component::startIndex( int* the_start_array, int n_elements ){
97    
98     start_array = the_start_array;
99     n_start = n_elements;
100     have_start_array = 1;
101     }
102    
103     char* Component::checkMe( void ){
104    
105     if( !have_type ){
106     return strdup( "type was not identified for the Component." );
107     }
108    
109     return NULL;
110     }