[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[certi-cvs] certi/libRTI RTI1516ambassador.cpp
From: |
certi-cvs |
Subject: |
[certi-cvs] certi/libRTI RTI1516ambassador.cpp |
Date: |
Fri, 18 Feb 2011 14:25:27 +0000 |
CVSROOT: /sources/certi
Module name: certi
Changes by: Eric NOULARD <erk> 11/02/18 14:25:27
Modified files:
libRTI : RTI1516ambassador.cpp
Log message:
fix bug #32531 : Attribure and parameter values are not handled properly
and simplify code when possible.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/libRTI/RTI1516ambassador.cpp?cvsroot=certi&r1=1.3&r2=1.4
Patches:
Index: RTI1516ambassador.cpp
===================================================================
RCS file: /sources/certi/certi/libRTI/RTI1516ambassador.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- RTI1516ambassador.cpp 18 Jan 2011 13:26:22 -0000 1.3
+++ RTI1516ambassador.cpp 18 Feb 2011 14:25:27 -0000 1.4
@@ -37,28 +37,13 @@
req.setParametersSize(PHVM.size());
req.setValuesSize(PHVM.size());
- std::vector<certi::ParameterValue_t*> parameterValueVector;
- parameterValueVector.resize(PHVM.size());
uint32_t i = 0;
for ( rti1516::ParameterHandleValueMap::const_iterator it =
PHVM.begin(); it != PHVM.end(); it++, ++i)
{
req.setParameters(ParameterHandleFriend::toCertiHandle(it->first),i);
- char *buf = (char*) calloc(it->second.size() + 1,
sizeof(char));
- memcpy(buf, it->second.data(), it->second.size());
- certi::ParameterValue_t* paramValue = new
certi::ParameterValue_t(buf);
- free(buf);
- parameterValueVector[i] = paramValue;
- req.setValues(*paramValue, i);
+ req.setValues(certi::ParameterValue_t(
(char*)it->second.data(), it->second.size() ), i);
}
-
- try {
privateRefs->executeService(&req, &rep);
- } catch (...) {
- struct Deletor<certi::ParameterValue_t>
paramValueDeletor;
- //delete parameter values
-
std::for_each(parameterValueVector.begin(),parameterValueVector.end(),paramValueDeletor);
- throw;
- }
}
template<typename T>
@@ -67,58 +52,26 @@
req.setAttributesSize(AHVM.size());
req.setValuesSize(AHVM.size());
- struct Deletor<certi::AttributeValue_t> attrValueDeletor;
- std::vector<certi::AttributeValue_t*> attributeValueVector;
- attributeValueVector.resize(AHVM.size());
uint32_t i = 0;
for ( rti1516::AttributeHandleValueMap::const_iterator it =
AHVM.begin(); it != AHVM.end(); it++, ++i)
{
req.setAttributes(AttributeHandleFriend::toCertiHandle(it->first),i);
- char *buf = (char*) calloc(it->second.size() + 1,
sizeof(char));
- memcpy(buf, it->second.data(), it->second.size());
- certi::AttributeValue_t* attrValue = new
certi::AttributeValue_t(buf);
- free(buf);
- attributeValueVector[i] = attrValue;
- req.setValues(*attrValue, i);
+ req.setValues(certi::AttributeValue_t(
(char*)it->second.data(),it->second.size() ), i);
}
-
- try {
privateRefs->executeService(&req, &rep);
- } catch (...) {
- //delete attribute values
-
std::for_each(attributeValueVector.begin(),attributeValueVector.end(),attrValueDeletor);
- throw;
- }
-
- //delete attribute values
-
std::for_each(attributeValueVector.begin(),attributeValueVector.end(),attrValueDeletor);
}
template<typename T>
void
RTI1516ambassador::assignAHSAndExecuteService(const
rti1516::AttributeHandleSet &AHS, T &req, T &rep) {
req.setAttributesSize(AHS.size());
- struct Deletor<certi::AttributeHandle> attrHandleDeletor;
- std::vector<certi::AttributeHandle*> attributeHandleVector;
- attributeHandleVector.resize(AHS.size());
uint32_t i = 0;
for ( rti1516::AttributeHandleSet::const_iterator it =
AHS.begin(); it != AHS.end(); it++, ++i)
{
certi::AttributeHandle certiHandle =
AttributeHandleFriend::toCertiHandle(*it);
req.setAttributes(certiHandle,i);
- attributeHandleVector[i] = &certiHandle;
}
-
- try {
privateRefs->executeService(&req, &rep);
- } catch (...) {
- //delete attribute handles
-
std::for_each(attributeHandleVector.begin(),attributeHandleVector.end(),attrHandleDeletor);
- throw;
- }
-
- //delete attribute handles
-
std::for_each(attributeHandleVector.begin(),attributeHandleVector.end(),attrHandleDeletor);
}
std::string varLengthDataAsString(VariableLengthData varLengthData) {
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [certi-cvs] certi/libRTI RTI1516ambassador.cpp,
certi-cvs <=