summaryrefslogtreecommitdiff
path: root/ace/FILE.cpp
blob: a6928173f98019559bc2e6f0b07337c8bcbefaa2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// FILE.cpp
// $Id$

/* Defines the member functions for the base class of the ACE_IO_SAP
   ACE_FILE abstraction. */ 

#define ACE_BUILD_DLL
#include "ace/FILE.h"

ACE_ALLOC_HOOK_DEFINE(ACE_FILE)

void
ACE_FILE::dump (void) const
{
  ACE_TRACE ("ACE_FILE::dump");
  ACE_IO_SAP::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 = ACE_OS::close (this->get_handle ());
  this->set_handle (ACE_INVALID_HANDLE);
  return result;
}

int
ACE_FILE::get_info (ACE_FILE_Info *finfo)
{
  ACE_TRACE ("ACE_FILE::get_info");
  struct stat filestatus;
  int 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::truncate (off_t length)
{
  ACE_TRACE ("ACE_FILE::truncate");
  return ACE_OS::ftruncate (this->get_handle(), length);
}

off_t
ACE_FILE::position (long offset, int startpos)
{
  ACE_TRACE ("ACE_FILE::position");
  return ACE_OS::lseek (this->get_handle (), offset, startpos);
}

off_t
ACE_FILE::position (void)
{
  ACE_TRACE ("ACE_FILE::position");
  return ACE_OS::lseek (this->get_handle (), 0, SEEK_CUR);
}