summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoeh <joeh@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-04-07 17:24:09 +0000
committerjoeh <joeh@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-04-07 17:24:09 +0000
commite05782334823c1198602319f1445a16e949baee4 (patch)
tree23d3f682dd7c6279bf794775a4de9c2394fd9955
parenta0af4517dd908245d12ca05b4895033cecad4826 (diff)
downloadATCD-e05782334823c1198602319f1445a16e949baee4.tar.gz
.
-rw-r--r--ace/ATM_Addr.cpp54
-rw-r--r--ace/ATM_Addr.h4
2 files changed, 51 insertions, 7 deletions
diff --git a/ace/ATM_Addr.cpp b/ace/ATM_Addr.cpp
index 95bfc390b12..6d81ec755d6 100644
--- a/ace/ATM_Addr.cpp
+++ b/ace/ATM_Addr.cpp
@@ -26,7 +26,12 @@ const int ACE_ATM_Addr::SELECTOR = 0x99;
// Default constructor
ACE_ATM_Addr::ACE_ATM_Addr (void)
+#if defined (ACE_HAS_FORE_ATM_XTI)
: ACE_Addr (AF_ATM,
+#else
+ : ACE_Addr (AF_UNSPEC,
+#endif /* ACE_HAS_FORE_ATM_XTI */
+
sizeof this->atm_addr_)
{
// ACE_TRACE ("ACE_ATM_Addr::ACE_ATM_Addr");
@@ -41,14 +46,12 @@ ACE_ATM_Addr::ACE_ATM_Addr (void)
ACE_ATM_Addr::ACE_ATM_Addr (const ACE_ATM_Addr &sap)
{
ACE_TRACE ("ACE_ATM_Addr::ACE_ATM_Addr");
- this->init ();
this->set (sap);
}
ACE_ATM_Addr::ACE_ATM_Addr (const ATMSAPAddress *sap)
{
ACE_TRACE ("ACE_ATM_Addr::ACE_ATM_Addr");
- this->init ();
this->set (sap);
}
@@ -56,14 +59,13 @@ ACE_ATM_Addr::ACE_ATM_Addr (const ASYS_TCHAR sap[])
{
ACE_TRACE ("ACE_ATM_Addr::ACE_ATM_Addr");
- // @@ Joe, you might consider putting the call to init() into set().
- this->init ();
this->set (sap);
}
void
ACE_ATM_Addr::init (void)
{
+#if defined (ACE_HAS_FORE_ATM_XTI)
// Note: this approach may be FORE implementation-specific. When we
// bind with tag_addr ABSENT and tag_selector PRESENT, only the
// selector (i.e. address[19]) is used by the TP. The rest of the
@@ -88,6 +90,8 @@ ACE_ATM_Addr::init (void)
ACE_OS::memcpy (atm_addr_.sap.t_atm_sap_appl.ID.user_defined_ID,
BHLI_MAGIC,
sizeof atm_addr_.sap.t_atm_sap_appl.ID);
+#else
+#endif /* ACE_HAS_FORE_ATM_XTI */
}
int
@@ -98,9 +102,10 @@ ACE_ATM_Addr::set (const ACE_ATM_Addr &sap)
this->ACE_Addr::base_set (sap.get_type (),
sap.get_size ());
+#if defined (ACE_HAS_FORE_ATM_XTI)
ACE_ASSERT (sap.get_type () == AF_ATM);
+#endif /* ACE_HAS_FORE_ATM_XTI */
- // It's ok to make the copy.
(void) ACE_OS::memcpy ((void *) &this->atm_addr_,
(void *) &sap.atm_addr_,
sizeof this->atm_addr_);
@@ -112,10 +117,13 @@ ACE_ATM_Addr::set (const ATMSAPAddress *sap)
{
ACE_TRACE ("ACE_ATM_Addr::set");
+#if defined (ACE_HAS_FORE_ATM_XTI)
this->ACE_Addr::base_set (AF_ATM,
+#else
+ this->ACE_Addr::base_set (AF_UNSPEC,
+#endif /* ACE_HAS_FORE_ATM_XTI */
sizeof (*sap));
- // It's ok to make the copy.
(void) ACE_OS::memcpy ((void *) &this->atm_addr_,
(void *) sap,
sizeof this->atm_addr_);
@@ -127,8 +135,10 @@ ACE_ATM_Addr::set (const ASYS_TCHAR address[])
{
ACE_TRACE ("ACE_ATM_Addr::set");
+#if defined (ACE_HAS_FORE_ATM_XTI)
atm_addr_.sap.t_atm_sap_addr.SVE_tag_addr =
(int8_t) T_ATM_PRESENT;
+#endif /* ACE_HAS_FORE_ATM_XTI */
return this->string_to_addr (address);
}
@@ -139,8 +149,13 @@ ACE_ATM_Addr::string_to_addr (const ASYS_TCHAR sap[])
{
ACE_TRACE ("ACE_ATM_Addr::string_to_addr");
+#if defined (ACE_HAS_FORE_ATM_XTI)
this->ACE_Addr::base_set (AF_ATM,
+#else
+ this->ACE_Addr::base_set (AF_UNSPEC,
+#endif /* ACE_HAS_FORE_ATM_XTI */
sizeof this->atm_addr_);
+#if defined (ACE_HAS_FORE_ATM_XTI)
struct hostent *entry;
struct atmnsap_addr *nsap;
@@ -163,12 +178,15 @@ ACE_ATM_Addr::string_to_addr (const ASYS_TCHAR sap[])
ATMNSAP_ADDR_LEN);
}
else
+#endif /* ACE_HAS_FORE_ATM_XTI */
{
errno = EINVAL;
return -1;
}
+#if defined (ACE_HAS_FORE_ATM_XTI)
return 0;
+#endif /* ACE_HAS_FORE_ATM_XTI */
}
// Transform the current address into string format.
@@ -179,6 +197,7 @@ ACE_ATM_Addr::addr_to_string (ASYS_TCHAR addr[],
{
ACE_TRACE ("ACE_ATM_Addr::addr_to_string");
+#if defined (ACE_HAS_FORE_ATM_XTI)
ASYS_TCHAR buffer[MAXNAMELEN + 1];
struct atmnsap_addr nsap;
ACE_OS::memcpy (nsap.atmnsap,
@@ -197,6 +216,9 @@ ACE_ATM_Addr::addr_to_string (ASYS_TCHAR addr[],
ACE_OS::strcpy(addr, buffer);
return 0;
+#else
+ return -1;
+#endif /* ACE_HAS_FORE_ATM_XTI */
}
const ASYS_TCHAR *
@@ -216,7 +238,12 @@ ACE_ATM_Addr::set_addr (void *addr, int len)
{
ACE_TRACE ("ACE_ATM_Addr::set_addr");
- this->ACE_Addr::base_set (AF_ATM, len);
+#if defined (ACE_HAS_FORE_ATM_XTI)
+ this->ACE_Addr::base_set (AF_ATM,
+#else
+ this->ACE_Addr::base_set (AF_UNSPEC,
+#endif /* ACE_HAS_FORE_ATM_XTI */
+ len);
ACE_OS::memcpy ((void *) &this->atm_addr_,
(void *) addr, len);
}
@@ -239,7 +266,11 @@ ACE_ATM_Addr::operator == (const ACE_ATM_Addr &sap) const
return ACE_OS::memcmp (&atm_addr_,
&sap.atm_addr_,
+#if defined (ACE_HAS_FORE_ATM_XTI)
sizeof (struct ATMSAPAddress)) == 0;
+#else
+ sizeof (ATMSAPAddress)) == 0;
+#endif /* ACE_HAS_FORE_ATM_XTI */
}
void
@@ -271,6 +302,8 @@ int
ACE_ATM_Addr::get_local_address (ACE_HANDLE fd,
u_char addr[])
{
+#if defined (ACE_HAS_FORE_ATM_XTI)
+ sizeof (struct ATMSAPAddress)) == 0;
ATMSAPAddress local_addr;
struct t_bind boundaddr;
@@ -287,6 +320,9 @@ ACE_ATM_Addr::get_local_address (ACE_HANDLE fd,
local_addr.sap.t_atm_sap_addr.address,
ATMNSAP_ADDR_LEN);
return 0;
+#else
+ return -1;
+#endif /* ACE_HAS_FORE_ATM_XTI */
}
char *
@@ -295,6 +331,7 @@ ACE_ATM_Addr::construct_options(ACE_HANDLE fd,
int flags,
long *optsize)
{
+#if defined (ACE_HAS_FORE_ATM_XTI)
struct t_opthdr *popt;
char *buf;
int qos_cells;
@@ -440,4 +477,7 @@ ACE_ATM_Addr::construct_options(ACE_HANDLE fd,
*optsize = (char *) popt - buf;
return buf;
+#else
+ return 0;
+#endif /* ACE_HAS_FORE_ATM_XTI */
}
diff --git a/ace/ATM_Addr.h b/ace/ATM_Addr.h
index de7c5354a30..076fbff550a 100644
--- a/ace/ATM_Addr.h
+++ b/ace/ATM_Addr.h
@@ -25,6 +25,10 @@
#include "ace/Addr.h"
+#if !defined (ACE_HAS_FORE_ATM_XTI)
+typedef int ATMSAPAddress;
+#endif /* ACE_HAS_FORE_ATM_XTI */
+
class ACE_Export ACE_ATM_Addr : public ACE_Addr
{
// = TITLE