00001 #include "ace_pch.h"
00002
00003
00004
00005 #include "ace/SV_Shared_Memory.h"
00006 #include "ace/Log_Msg.h"
00007
00008 #if !defined (__ACE_INLINE__)
00009 #include "ace/SV_Shared_Memory.i"
00010 #endif
00011
00012 ACE_RCSID(ace, SV_Shared_Memory, "$Id: SV_Shared_Memory.cpp,v 1.1.1.3.40.1 2003/03/13 19:44:22 chad Exp $")
00013
00014 ACE_ALLOC_HOOK_DEFINE(ACE_SV_Shared_Memory)
00015
00016 void
00017 ACE_SV_Shared_Memory::dump (void) const
00018 {
00019 ACE_TRACE ("ACE_SV_Shared_Memory::dump");
00020 }
00021
00022
00023
00024
00025 int
00026 ACE_SV_Shared_Memory::open_and_attach (key_t external_id,
00027 size_t sz,
00028 int create,
00029 int perms,
00030 void *virtual_addr,
00031 int flags)
00032 {
00033 ACE_TRACE ("ACE_SV_Shared_Memory::open_and_attach");
00034 if (this->open (external_id, sz, create, perms) == -1)
00035 return -1;
00036 else if (this->attach (virtual_addr, flags) == -1)
00037 return -1;
00038 else
00039 return 0;
00040 }
00041
00042
00043
00044 ACE_SV_Shared_Memory::ACE_SV_Shared_Memory (key_t external_id,
00045 size_t sz,
00046 int create,
00047 int perms,
00048 void *virtual_addr,
00049 int flags)
00050 {
00051 ACE_TRACE ("ACE_SV_Shared_Memory::ACE_SV_Shared_Memory");
00052 if (this->open_and_attach (external_id, sz, create,
00053 perms, virtual_addr, flags) == -1)
00054 ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"),
00055 ACE_LIB_TEXT ("ACE_SV_Shared_Memory::ACE_SV_Shared_Memory")));
00056 }
00057
00058
00059
00060 ACE_SV_Shared_Memory::ACE_SV_Shared_Memory (void)
00061 : internal_id_ (0),
00062 size_ (0),
00063 segment_ptr_ (0)
00064 {
00065 ACE_TRACE ("ACE_SV_Shared_Memory::ACE_SV_Shared_Memory");
00066 }
00067
00068
00069
00070
00071
00072
00073
00074
00075 ACE_SV_Shared_Memory::ACE_SV_Shared_Memory (ACE_HANDLE int_id,
00076 int flags)
00077 : internal_id_ (int_id),
00078 size_ (0)
00079 {
00080 ACE_TRACE ("ACE_SV_Shared_Memory::ACE_SV_Shared_Memory");
00081 if (this->attach (0, flags) == -1)
00082 ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"),
00083 ACE_LIB_TEXT ("ACE_SV_Shared_Memory::ACE_SV_Shared_Memory")));
00084 }