summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwilson_d <wilson_d@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-10-14 20:26:18 +0000
committerwilson_d <wilson_d@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-10-14 20:26:18 +0000
commit2c849acf04c589ddfd4607d4463ac3c33f3d9857 (patch)
tree4a96c10979ebbf19076289f960c84731852451b6
parent424eaf9140749a452cc88670ed5c503fa255e7fb (diff)
downloadATCD-2c849acf04c589ddfd4607d4463ac3c33f3d9857.tar.gz
ChangeLogTag: Tue Oct 14 15:21:19 2003 Dale Wilson <wilson_d@ociweb.com>
-rw-r--r--TAO/ChangeLog10
-rwxr-xr-xTAO/orbsvcs/tests/FT_App/ReplicationManagerFaultConsumerAdapter.cpp294
-rwxr-xr-xTAO/orbsvcs/tests/FT_App/ReplicationManagerFaultConsumerAdapter.h14
3 files changed, 109 insertions, 209 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 2d69846aada..83ce2974ba9 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,13 @@
+Tue Oct 14 15:21:19 2003 Dale Wilson <wilson_d@ociweb.com>
+
+ * orbsvcs/tests/FT_App/ReplicationManagerFaultConsumerAdapter.cpp:
+ * orbsvcs/tests/FT_App/ReplicationManagerFaultConsumerAdapter.h:
+ change command line option that specify multiple
+ eliminate read_ior_file. Expect file:// ior on command line instead.
+
+
+ These changes were made in the oci_haft branch.
+
Tue Oct 14 13:52:18 2003 Steve Totten <totten_s@ociweb.com>
* orbsvcs/FT_ReplicationManager/FT_DefaultFaultAnalyzer.cpp:
diff --git a/TAO/orbsvcs/tests/FT_App/ReplicationManagerFaultConsumerAdapter.cpp b/TAO/orbsvcs/tests/FT_App/ReplicationManagerFaultConsumerAdapter.cpp
index acebc05c5af..397c303a12a 100755
--- a/TAO/orbsvcs/tests/FT_App/ReplicationManagerFaultConsumerAdapter.cpp
+++ b/TAO/orbsvcs/tests/FT_App/ReplicationManagerFaultConsumerAdapter.cpp
@@ -13,10 +13,9 @@ ReplicationManagerFaultConsumerAdapter::ReplicationManagerFaultConsumerAdapter()
: orb_(CORBA::ORB::_nil())
, quit_(0)
, readyFile_(0)
- , iorDetectorFile_(0)
+ , detector_ior_(0)
, factory_(FT::FaultDetectorFactory::_nil())
- , replicaIorBuffer_(0)
- , iorNotifierFile_(0)
+ , notifier_ior_(0)
, notifier_(FT::FaultNotifier::_nil())
, p_fault_consumer_(0)
, consumer_servant_(0)
@@ -46,59 +45,17 @@ int ReplicationManagerFaultConsumerAdapter::parse_args (int argc, char * argv[])
{
case 'r':
{
- if (this->replicaIorBuffer_ == 0)
- {
- const char * repNames = get_opts.opt_arg ();
- size_t repNameLen = ACE_OS::strlen(repNames);
-
- // make a working copy of the string
- ACE_NEW_NORETURN(this->replicaIorBuffer_,
- char[repNameLen + 1]);
- if ( this->replicaIorBuffer_ != 0)
- {
- ACE_OS::memcpy(this->replicaIorBuffer_, repNames, repNameLen+1);
-
- // tokenize the string on ','
- // into iorReplicaFiles_
- char * pos = this->replicaIorBuffer_;
- while (pos != 0)
- {
- this->iorReplicaFiles_.push_back(pos);
- // find a comma delimiter, and
- // chop the string there.
- pos = ACE_OS::strchr (pos, ',');
- if (pos != 0)
- {
- *pos = '\0';
- pos += 1;
- }
- }
- }
- else
- {
- ACE_ERROR ((LM_ERROR,
- "Command line option error: -r can't allocate buffer.\n"
- ));
- optionError = -1;
- }
- }
- else
- {
- ACE_ERROR ((LM_ERROR,
- "Command line option error: -r specified more than once.\n"
- ));
- optionError = -1;
- }
+ this->replica_iors_.push_back (get_opts.opt_arg ());
break;
}
case 'd':
{
- this->iorDetectorFile_ = get_opts.opt_arg ();
+ this->detector_ior_ = get_opts.opt_arg ();
break;
}
case 'n':
{
- this->iorNotifierFile_ = get_opts.opt_arg ();
+ this->notifier_ior_ = get_opts.opt_arg ();
break;
}
case 'o':
@@ -118,14 +75,14 @@ int ReplicationManagerFaultConsumerAdapter::parse_args (int argc, char * argv[])
if(! optionError)
{
- if (0 == this->replicaIorBuffer_)
+ if (0 == this->replica_iors_.size())
{
ACE_ERROR ((LM_ERROR,
"-r option is required.\n"
));
optionError = -1;
}
- if (0 == this->iorDetectorFile_)
+ if (0 == this->detector_ior_)
{
ACE_ERROR ((LM_ERROR,
"-d option is required.\n"
@@ -138,7 +95,7 @@ int ReplicationManagerFaultConsumerAdapter::parse_args (int argc, char * argv[])
{
ACE_ERROR ((LM_ERROR,
"usage: %s"
- " -r <replica.ior[,replica.ior]>"
+ " -r <replica.ior[ -r replica.ior]>"
" -d <detector.ior>"
" -o <this.ior>"
" -n <nameService name>"
@@ -166,38 +123,25 @@ int ReplicationManagerFaultConsumerAdapter::init (
//////////////////////////////////////////
// resolve reference to detector factory
- CORBA::String_var factoryIOR;
ACE_DEBUG ((
LM_DEBUG,
ACE_TEXT ("ReplicationManagerFaultConsumerAdapter::init: ")
ACE_TEXT ("Getting ready to read iorDetectorFile.\n")
));
- if (this->readIORFile(this->iorDetectorFile_, factoryIOR))
- {
- CORBA::Object_var obj = this->orb_->string_to_object (
- factoryIOR.in() ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (-1);
- this->factory_ = ::FT::FaultDetectorFactory::_narrow (
- obj.in() ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (-1);
- if (CORBA::is_nil (this->factory_.in()))
- {
- ACE_ERROR_RETURN ((
- LM_ERROR,
- ACE_TEXT ("ReplicationManagerFaultConsumerAdapter::init: ")
- ACE_TEXT ("FaultDetectorFactory IOR is nil: %s\n"),
- this->iorDetectorFile_),
- -1);
- }
- }
- else
+ CORBA::Object_var detector_obj = this->orb_->string_to_object (
+ this->detector_ior_ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+ this->factory_ = ::FT::FaultDetectorFactory::_narrow (
+ detector_obj.in() ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+ if (CORBA::is_nil (this->factory_.in()))
{
ACE_ERROR_RETURN ((
LM_ERROR,
ACE_TEXT ("ReplicationManagerFaultConsumerAdapter::init: ")
- ACE_TEXT ("Can't read %s\n"),
- this->iorDetectorFile_),
+ ACE_TEXT ("FaultDetectorFactory IOR is nil: %s\n"),
+ this->detector_ior_),
-1);
}
@@ -209,32 +153,19 @@ int ReplicationManagerFaultConsumerAdapter::init (
ACE_TEXT ("Getting ready to read Notifier IOR file.\n")
));
- CORBA::String_var notifierIOR;
- if (this->readIORFile(this->iorNotifierFile_, notifierIOR))
- {
- CORBA::Object_var obj = this->orb_->string_to_object (
- notifierIOR.in() ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (-1);
- this->notifier_ = ::FT::FaultNotifier::_narrow (
- obj.in() ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (-1);
- if (CORBA::is_nil (this->notifier_.in()))
- {
- ACE_ERROR_RETURN ((
- LM_ERROR,
- ACE_TEXT ("ReplicationManagerFaultConsumerAdapter::init: ")
- ACE_TEXT ("FaultNotifier IOR is nil: %s\n"),
- this->iorNotifierFile_),
- -1);
- }
- }
- else
+ CORBA::Object_var notifier_ior = this->orb_->string_to_object (
+ this->notifier_ior_ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+ this->notifier_ = ::FT::FaultNotifier::_narrow (
+ notifier_ior.in() ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+ if (CORBA::is_nil (this->notifier_.in()))
{
ACE_ERROR_RETURN ((
LM_ERROR,
ACE_TEXT ("ReplicationManagerFaultConsumerAdapter::init: ")
- ACE_TEXT ("Can't read %s\n"),
- this->iorNotifierFile_),
+ ACE_TEXT ("FaultNotifier IOR is nil: %s\n"),
+ this->notifier_ior_),
-1);
}
@@ -314,103 +245,90 @@ int ReplicationManagerFaultConsumerAdapter::init (
////////////////////////////////////
// resolve references to replicas
// create a fault detector for each replica
- size_t replicaCount = this->iorReplicaFiles_.size();
+ size_t replicaCount = this->replica_iors_.size();
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Number of replicas being monitored: (%u)\n"),
ACE_static_cast (unsigned int, replicaCount)
));
for (size_t nRep = 0; result == 0 && nRep < replicaCount; ++nRep)
{
- const char * iorName = this->iorReplicaFiles_[nRep];
- CORBA::String_var ior;
- if (this->readIORFile(iorName, ior))
+ const char * iorName = this->replica_iors_[nRep];
+ CORBA::Object_var replica_obj = this->orb_->string_to_object (
+ iorName ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+ FT::PullMonitorable_var replica = FT::PullMonitorable::_narrow (
+ replica_obj.in() ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+ if (CORBA::is_nil(replica.in()))
{
- CORBA::Object_var obj = this->orb_->string_to_object (
- ior.in() ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (-1);
- FT::PullMonitorable_var replica = FT::PullMonitorable::_narrow (
- obj.in() ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (-1);
- if (CORBA::is_nil(replica.in()))
+ ACE_ERROR_RETURN ((
+ LM_ERROR,
+ ACE_TEXT ("ReplicationManagerFaultConsumerAdapter::init: ")
+ ACE_TEXT ("Can't resolve Replica IOR: %s\n"),
+ iorName),
+ -1);
+ }
+ else
+ {
+ this->replicas_.push_back(replica);
+
+ CORBA::String_var type_id = CORBA::string_dup("FaultDetector");
+
+ TAO_PG::Properties_Encoder encoder;
+
+ PortableGroup::Value value;
+ value <<= notifier_;
+ encoder.add(::FT::FT_NOTIFIER, value);
+
+ value <<= replica;
+ encoder.add(::FT::FT_MONITORABLE, value);
+
+ FT::FTDomainId domain_id = 0;
+ value <<= domain_id;
+ encoder.add(::FT::FT_DOMAIN_ID, value);
+
+ FT::Location object_location;
+ object_location.length(2);
+ object_location[0].id = CORBA::string_dup("test");
+ object_location[1].id = CORBA::string_dup("Location_A");
+ value <<= object_location;
+ encoder.add(::FT::FT_LOCATION, value);
+
+ FT::TypeId_var object_type = CORBA::string_dup (
+ "IDL:org.omg/CosNaming/NamingContextExt:1.0");
+ value <<= object_type;
+ encoder.add(::FT::FT_TYPE_ID, value);
+
+ FT::ObjectGroupId group_id =
+ ACE_static_cast (FT::ObjectGroupId, 6191982);
+ value <<= group_id;
+ encoder.add(::FT::FT_GROUP_ID, value);
+
+ // allocate and populate the criteria
+ FT::Criteria_var criteria;
+ ACE_NEW_NORETURN (criteria,
+ FT::Criteria);
+ if (criteria.ptr() == 0)
{
ACE_ERROR_RETURN ((
LM_ERROR,
ACE_TEXT ("ReplicationManagerFaultConsumerAdapter::init: ")
- ACE_TEXT ("Can't resolve Replica IOR: %s\n"),
- iorName),
+ ACE_TEXT ("Error cannot allocate criteria.\n")),
-1);
}
else
{
- this->replicas_.push_back(replica);
-
- CORBA::String_var type_id = CORBA::string_dup("FaultDetector");
-
- TAO_PG::Properties_Encoder encoder;
-
- PortableGroup::Value value;
- value <<= notifier_;
- encoder.add(::FT::FT_NOTIFIER, value);
-
- value <<= replica;
- encoder.add(::FT::FT_MONITORABLE, value);
-
- FT::FTDomainId domain_id = 0;
- value <<= domain_id;
- encoder.add(::FT::FT_DOMAIN_ID, value);
-
- FT::Location object_location;
- object_location.length(2);
- object_location[0].id = CORBA::string_dup("test");
- object_location[1].id = CORBA::string_dup("Location_A");
- value <<= object_location;
- encoder.add(::FT::FT_LOCATION, value);
-
- FT::TypeId_var object_type = CORBA::string_dup (
- "IDL:org.omg/CosNaming/NamingContextExt:1.0");
- value <<= object_type;
- encoder.add(::FT::FT_TYPE_ID, value);
-
- FT::ObjectGroupId group_id =
- ACE_static_cast (FT::ObjectGroupId, 6191982);
- value <<= group_id;
- encoder.add(::FT::FT_GROUP_ID, value);
-
- // allocate and populate the criteria
- FT::Criteria_var criteria;
- ACE_NEW_NORETURN (criteria,
- FT::Criteria);
- if (criteria.ptr() == 0)
- {
- ACE_ERROR_RETURN ((
- LM_ERROR,
- ACE_TEXT ("ReplicationManagerFaultConsumerAdapter::init: ")
- ACE_TEXT ("Error cannot allocate criteria.\n")),
- -1);
- }
- else
- {
- encoder.encode(criteria);
- FT::GenericFactory::FactoryCreationId_var factory_creation_id;
-
- this->factory_->create_object (
- type_id.in(),
- criteria.in(),
- factory_creation_id
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (-1);
- }
+ encoder.encode(criteria);
+ FT::GenericFactory::FactoryCreationId_var factory_creation_id;
+
+ this->factory_->create_object (
+ type_id.in(),
+ criteria.in(),
+ factory_creation_id
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
}
}
- else
- {
- ACE_ERROR_RETURN ((
- LM_ERROR,
- ACE_TEXT ("ReplicationManagerFaultConsumerAdapter::init: ")
- ACE_TEXT ("Can't read %s\n"),
- iorName),
- -1);
- }
}
// Signal that we are ready to go.
@@ -455,32 +373,6 @@ int ReplicationManagerFaultConsumerAdapter::idle(int & result)
return quit;
}
-int ReplicationManagerFaultConsumerAdapter::readIORFile(
- const char * fileName,
- CORBA::String_var & ior)
-{
- int result = 0;
- FILE *in = ACE_OS::fopen (fileName, "r");
- ACE_OS::fseek(in, 0, SEEK_END);
- size_t fileSize = ACE_OS::ftell(in);
- ACE_OS::fseek(in, 0, SEEK_SET);
- char * buffer;
- ACE_NEW_NORETURN (buffer,
- char[fileSize+1]);
- if (buffer != 0)
- {
- if( fileSize == ACE_OS::fread(buffer, 1, fileSize, in))
- {
- buffer[fileSize] = '\0';
- ior = CORBA::string_dup(buffer);
- ACE_TRY_CHECK;
- result = 1; // success
- }
- delete[] buffer;
- }
- return result;
-}
-
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
template instantiate ACE_Vector < const char * >;
template ACE_Vector < FT::PullMonitorable_var > ;
diff --git a/TAO/orbsvcs/tests/FT_App/ReplicationManagerFaultConsumerAdapter.h b/TAO/orbsvcs/tests/FT_App/ReplicationManagerFaultConsumerAdapter.h
index 436e6ced685..2fa73dfdbfe 100755
--- a/TAO/orbsvcs/tests/FT_App/ReplicationManagerFaultConsumerAdapter.h
+++ b/TAO/orbsvcs/tests/FT_App/ReplicationManagerFaultConsumerAdapter.h
@@ -66,7 +66,6 @@ public:
/////////////////
// Implementation
private:
- int readIORFile(const char * fileName, CORBA::String_var & ior);
////////////////////
// Forbidden methods
@@ -104,9 +103,9 @@ private:
const char * readyFile_;
/**
- * A file from which the detecor's IOR should be read.
+ * Detecor's IOR
*/
- const char * iorDetectorFile_;
+ const char * detector_ior_;
/**
* The FaultDetectorFactory object reference.
@@ -114,20 +113,19 @@ private:
::FT::FaultDetectorFactory_var factory_;
/**
- * A collection of files containing replica IORs
+ * A collection of replica IORs
*/
- ACE_Vector < const char * > iorReplicaFiles_;
- char * replicaIorBuffer_;
+ ACE_Vector < const char * > replica_iors_;
/**
- * A collection of replica IORs
+ * A collection of replica references.
*/
ACE_Vector < FT::PullMonitorable_var > replicas_;
/**
* A file from which the notifier's IOR should be read.
*/
- const char * iorNotifierFile_;
+ const char * notifier_ior_;
/**
* the fault notifier