00001 // magnserverrequest.cpp: implementation of the ServerMagnitudeRequest class. 00002 // 00004 00005 #include "magnserverrequest.h" 00006 00008 // Construction/Destruction 00010 00011 ServerMagnitudeRequest::ServerMagnitudeRequest() 00012 { 00013 TestValue = 0; 00014 } 00015 // 00016 // -------------------------------------------------------------------- 00017 // 00018 long ServerMagnitudeRequest::BufferInitAlloc() 00019 { 00020 return (long)( MutableServerRequest::BufferInitAlloc() 00021 + 10 // TestValue.length() 00022 + 1 // additional '\n' 00023 ) 00024 ; 00025 } 00026 // 00027 // -------------------------------------------------------------------- 00028 // 00029 void ServerMagnitudeRequest::FormatDerivativeData() 00030 { 00031 MutableServerRequest::FormatDerivativeData(); 00032 00033 char _b[20]; 00034 sprintf( _b, "%d\n", TestValue ); 00035 00036 MessageBuffer.append( _b ); 00037 } 00038 // 00039 // -------------------------------------------------------------------- 00040 // 00041 void ServerMagnitudeRequest::ParseDerivativeData() 00042 { 00043 MutableServerRequest::ParseDerivativeData(); 00044 00045 long _index; 00046 00047 std::string _val; 00048 00049 00050 if ( (_index = MessageBuffer.find("\n")) == MessageBuffer.npos ) 00051 { 00052 throw worm_exception("unterminated message while parsing TestValue"); 00053 } 00054 00055 _val = MessageBuffer.substr( 0 , _index ); 00056 00057 00058 // Remove this line from the buffer 00059 00060 MessageBuffer.erase( 0 , _index + 1 ); 00061 00062 00063 // Set the value 00064 00065 TestValue = atoi( _val.c_str() ); 00066 } 00067 // 00068 //------------------------------------------------------------------- 00069 // 00070 void ServerMagnitudeRequest::SetTestValue( int p_value ) 00071 { 00072 TestValue = p_value; 00073 /* 00074 char _b[20]; 00075 00076 sprintf( _b, "%d", p_value ); 00077 00078 TestValue = _b; 00079 */ 00080 } 00081 // 00082 //------------------------------------------------------------------- 00083 // 00084 int ServerMagnitudeRequest::GetTestValue() 00085 { 00086 return TestValue; // atoi( TestValue.c_str() ); 00087 } 00088 // 00089 //------------------------------------------------------------------- 00090 //