#include <MGridforceParams.h>
Public Member Functions | |
| MGridforceParamsList () | |
| ~MGridforceParamsList () | |
| void | clear () |
| MGridforceParams * | find_key (const char *key) |
| MGridforceParams * | add (const char *key) |
| MGridforceParams * | get_first () |
| void | pack_data (MOStream *msg) |
| void | unpack_data (MIStream *msg) |
Static Public Member Functions | |
| int | atoBool (const char *s) |
|
|
Definition at line 46 of file MGridforceParams.h. 00046 {
00047 clear();
00048 }
|
|
|
Definition at line 50 of file MGridforceParams.h. 00051 {
00052 MGFElem* cur;
00053 while (head != NULL) {
00054 cur = head;
00055 head = cur->nxt;
00056 delete cur;
00057 }
00058 clear();
00059 }
|
|
|
Definition at line 32 of file MGridforceParams.C. References find_key(), MGridforceParams::gridforceCol, MGridforceParams::gridforceFile, MGridforceParams::gridforceKey, MGridforceParams::gridforceQcol, MGridforceParams::gridforceVfile, and MGridforceParams::next. Referenced by unpack_data(). 00033 {
00034 // If the key is already in the list, we can't add it
00035 if (find_key(key)!=NULL) {
00036 return NULL;
00037 }
00038
00039 MGFElem* new_elem = new MGFElem();
00040 int len = strlen(key);
00041 MGridforceParams* elem = &(new_elem->elem);
00042 elem->gridforceKey = new char[len+1];
00043 strncpy(elem->gridforceKey,key,len+1);
00044 elem->gridforceVfile = NULL;
00045 elem->gridforceFile = NULL;
00046 elem->gridforceCol = NULL;
00047 elem->gridforceQcol = NULL;
00048 elem->next = NULL;
00049 new_elem->nxt = NULL;
00050 if (head == NULL) {
00051 head = new_elem;
00052 }
00053 if (tail != NULL) {
00054 tail->nxt = new_elem;
00055 tail->elem.next = elem;
00056 }
00057 tail = new_elem;
00058 n_elements++;
00059
00060 return elem;
00061 }
|
|
|
Definition at line 82 of file MGridforceParams.h. 00083 {
00084 if (!strcasecmp(s, "on")) return 1;
00085 if (!strcasecmp(s, "off")) return 0;
00086 if (!strcasecmp(s, "true")) return 1;
00087 if (!strcasecmp(s, "false")) return 0;
00088 if (!strcasecmp(s, "yes")) return 1;
00089 if (!strcasecmp(s, "no")) return 0;
00090 if (!strcasecmp(s, "1")) return 1;
00091 if (!strcasecmp(s, "0")) return 0;
00092 return -1;
00093 }
|
|
|
Definition at line 64 of file MGridforceParams.h. Referenced by SimParameters::receive_SimParameters(). 00064 {
00065 head = tail = NULL;
00066 n_elements = 0;
00067 }
|
|
|
Definition at line 13 of file MGridforceParams.C. Referenced by add(). 00014 {
00015 MGFElem* cur = head;
00016 MGFElem* found = NULL;
00017 MGridforceParams* result = NULL;
00018
00019 while (found == NULL && cur != NULL) {
00020 if (!strcasecmp((cur->elem).gridforceKey,key)) {
00021 found = cur;
00022 } else {
00023 cur = cur->nxt;
00024 }
00025 }
00026 if (found != NULL) {
00027 result = &(found->elem);
00028 }
00029 return result;
00030 }
|
|
|
Definition at line 72 of file MGridforceParams.h. Referenced by pack_data(). 00072 {
00073 if (head == NULL) {
00074 return NULL;
00075 } else return &(head->elem);
00076 }
|
|
|
Definition at line 63 of file MGridforceParams.C. References get_first(), MGridforceParams::gridforceCol, MGridforceParams::gridforceCont, MGridforceParams::gridforceFile, MGridforceParams::gridforceKey, MGridforceParams::gridforceQcol, MGridforceParams::gridforceScale, MGridforceParams::gridforceVfile, MGridforceParams::gridforceVOffset, MGridforceParams::gridforceVolts, NAMD_die(), MGridforceParams::next, and MOStream::put(). Referenced by SimParameters::send_SimParameters(). 00064 {
00065 int i = n_elements;
00066 msg->put(n_elements);
00067 MGridforceParams *elem = get_first();
00068 while (elem != NULL) {
00069 int len;
00070 len = strlen(elem->gridforceKey) + 1;
00071 msg->put(len);
00072 msg->put(len,elem->gridforceKey);
00073
00074 len = strlen(elem->gridforceVfile) + 1;
00075 msg->put(len);
00076 msg->put(len,elem->gridforceVfile);
00077
00078 Vector v = elem->gridforceScale;
00079 msg->put(&v);
00080
00081 len = strlen(elem->gridforceFile) + 1;
00082 msg->put(len);
00083 msg->put(len,elem->gridforceFile);
00084
00085 len = strlen(elem->gridforceCol) + 1;
00086 msg->put(len);
00087 msg->put(len,elem->gridforceCol);
00088
00089 if (elem->gridforceQcol == NULL)
00090 msg->put(1); // Qcol_is_null = true
00091 else {
00092 msg->put(0); // Qcol_is_null = false
00093 len = strlen(elem->gridforceQcol) + 1;
00094 msg->put(len);
00095 msg->put(len,elem->gridforceQcol);
00096 }
00097
00098 v = elem->gridforceVOffset;
00099 msg->put(&v);
00100
00101 short boolvals[4];
00102 boolvals[0] = (elem->gridforceCont[0] ? 1 : 0);
00103 boolvals[1] = (elem->gridforceCont[1] ? 1 : 0);
00104 boolvals[2] = (elem->gridforceCont[2] ? 1 : 0);
00105 boolvals[3] = (elem->gridforceVolts ? 1 : 0);
00106 msg->put(4,boolvals);
00107
00108 i--;
00109 elem = elem->next;
00110 }
00111 if (i != 0) {
00112 NAMD_die("MGridforceParams message packing error\n");
00113 }
00114 return;
00115 }
|
|
|
Definition at line 117 of file MGridforceParams.C. References add(), MIStream::get(), MGridforceParams::gridforceCol, MGridforceParams::gridforceCont, MGridforceParams::gridforceFile, MGridforceParams::gridforceQcol, MGridforceParams::gridforceScale, MGridforceParams::gridforceVfile, MGridforceParams::gridforceVOffset, and MGridforceParams::gridforceVolts. Referenced by SimParameters::receive_SimParameters(). 00118 {
00119 int elements;
00120 msg->get(elements);
00121
00122 for(int i=0; i < elements; i++) {
00123 // Get key
00124 int len;
00125 msg->get(len);
00126 char *key = new char[len];
00127 msg->get(len,key);
00128 MGridforceParams *elem = add(key);
00129
00130 msg->get(len);
00131 char *str = new char[len];
00132 msg->get(len,str);
00133 elem->gridforceVfile = str;
00134
00135 Vector v;
00136 msg->get(&v);
00137 elem->gridforceScale = v;
00138
00139 msg->get(len);
00140 str = new char[len];
00141 msg->get(len,str);
00142 elem->gridforceFile = str;
00143
00144 msg->get(len);
00145 str = new char[len];
00146 msg->get(len,str);
00147 elem->gridforceCol = str;
00148
00149 int qcol_is_null;
00150 msg->get(qcol_is_null);
00151 if (qcol_is_null)
00152 elem->gridforceQcol = NULL;
00153 else {
00154 msg->get(len);
00155 str = new char[len];
00156 msg->get(len,str);
00157 elem->gridforceQcol = str;
00158 }
00159
00160 msg->get(&v);
00161 elem->gridforceVOffset = v;
00162
00163 short boolvals[4];
00164 msg->get(4,boolvals);
00165 elem->gridforceCont[0] = ( boolvals[0] != 0 );
00166 elem->gridforceCont[1] = ( boolvals[1] != 0 );
00167 elem->gridforceCont[2] = ( boolvals[2] != 0 );
00168 elem->gridforceVolts = ( boolvals[3] != 0 );
00169
00170 delete [] key;
00171 }
00172 }
|
1.3.9.1