aboutsummaryrefslogtreecommitdiff
path: root/dep/ACE_wrappers/ace/FILE.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'dep/ACE_wrappers/ace/FILE.cpp')
-rw-r--r--dep/ACE_wrappers/ace/FILE.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/dep/ACE_wrappers/ace/FILE.cpp b/dep/ACE_wrappers/ace/FILE.cpp
index 3f4c02b6dcf..50b6342bc89 100644
--- a/dep/ACE_wrappers/ace/FILE.cpp
+++ b/dep/ACE_wrappers/ace/FILE.cpp
@@ -1,15 +1,23 @@
// $Id: FILE.cpp 80826 2008-03-04 14:51:23Z wotte $
+
/* Defines the member functions for the base class of the ACE_IO_SAP
ACE_FILE abstraction. */
+
#include "ace/FILE.h"
+
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_sys_stat.h"
+
#if !defined (__ACE_INLINE__)
#include "ace/FILE.inl"
#endif /* __ACE_INLINE__ */
+
ACE_RCSID(ace, FILE, "$Id: FILE.cpp 80826 2008-03-04 14:51:23Z wotte $")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
ACE_ALLOC_HOOK_DEFINE(ACE_FILE)
+
void
ACE_FILE::dump (void) const
{
@@ -18,17 +26,22 @@ ACE_FILE::dump (void) const
ACE_IO_SAP::dump ();
#endif /* ACE_HAS_DUMP */
}
+
// This is the do-nothing constructor.
+
ACE_FILE::ACE_FILE (void)
{
ACE_TRACE ("ACE_FILE::ACE_FILE");
}
+
// Close the file
+
int
ACE_FILE::close (void)
{
ACE_TRACE ("ACE_FILE::close");
int result = 0;
+
if (this->get_handle () != ACE_INVALID_HANDLE)
{
result = ACE_OS::close (this->get_handle ());
@@ -36,52 +49,65 @@ ACE_FILE::close (void)
}
return result;
}
+
int
ACE_FILE::get_info (ACE_FILE_Info *finfo)
{
ACE_TRACE ("ACE_FILE::get_info");
ACE_stat filestatus;
+
int const result = ACE_OS::fstat (this->get_handle (), &filestatus);
+
if (result == 0)
{
finfo->mode_ = filestatus.st_mode;
finfo->nlink_ = filestatus.st_nlink;
finfo->size_ = filestatus.st_size;
}
+
return result;
}
+
int
ACE_FILE::get_info (ACE_FILE_Info &finfo)
{
ACE_TRACE ("ACE_FILE::get_info");
+
return this->get_info (&finfo);
}
+
int
ACE_FILE::truncate (ACE_OFF_T length)
{
ACE_TRACE ("ACE_FILE::truncate");
return ACE_OS::ftruncate (this->get_handle (), length);
}
+
ACE_OFF_T
ACE_FILE::seek (ACE_OFF_T offset, int startpos)
{
return ACE_OS::lseek (this->get_handle (), offset, startpos);
}
+
ACE_OFF_T
ACE_FILE::tell (void)
{
ACE_TRACE ("ACE_FILE::tell");
return ACE_OS::lseek (this->get_handle (), 0, SEEK_CUR);
}
+
// Return the local endpoint address.
+
int
ACE_FILE::get_local_addr (ACE_Addr &addr) const
{
ACE_TRACE ("ACE_FILE::get_local_addr");
+
// Perform the downcast since <addr> had better be an
// <ACE_FILE_Addr>.
ACE_FILE_Addr *file_addr =
dynamic_cast<ACE_FILE_Addr *> (&addr);
+
if (file_addr == 0)
return -1;
else
@@ -90,25 +116,33 @@ ACE_FILE::get_local_addr (ACE_Addr &addr) const
return 0;
}
}
+
// Return the same result as <get_local_addr>.
+
int
ACE_FILE::get_remote_addr (ACE_Addr &addr) const
{
ACE_TRACE ("ACE_FILE::get_remote_addr");
+
return this->get_local_addr (addr);
}
+
int
ACE_FILE::remove (void)
{
ACE_TRACE ("ACE_FILE::remove");
+
this->close ();
return ACE_OS::unlink (this->addr_.get_path_name ());
}
+
int
ACE_FILE::unlink (void)
{
ACE_TRACE ("ACE_FILE::unlink");
+
return ACE_OS::unlink (this->addr_.get_path_name ());
}
+
ACE_END_VERSIONED_NAMESPACE_DECL