diff options
Diffstat (limited to 'ACE/examples/DLL/Newsweek.cpp')
-rw-r--r-- | ACE/examples/DLL/Newsweek.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/ACE/examples/DLL/Newsweek.cpp b/ACE/examples/DLL/Newsweek.cpp new file mode 100644 index 00000000000..5a48690b350 --- /dev/null +++ b/ACE/examples/DLL/Newsweek.cpp @@ -0,0 +1,55 @@ +// $Id$ + +#define ACE_BUILD_SVC_DLL + +#include "Newsweek.h" +#include "ace/Log_Msg.h" +#include "ace/svc_export.h" +#include "ace/OS_Memory.h" + +// Implementation of the abstract class method which describes +// the magazine. + +void Newsweek::title (void) +{ + ACE_DEBUG ((LM_DEBUG, + "Newsweek: Vol. 44923 Stardate: 12.3054\n")); +} + +void * +Newsweek::operator new (size_t bytes) +{ + return ::new char[bytes]; +} +#if defined (ACE_HAS_NEW_NOTHROW) +void * +Newsweek::operator new (size_t bytes, const ACE_nothrow_t&) +{ + return ::new (ACE_nothrow) char[bytes]; +} +#if !defined (ACE_LACKS_PLACEMENT_OPERATOR_DELETE) +void +Newsweek::operator delete (void *p, const ACE_nothrow_t&) throw () +{ + delete [] static_cast <char *> (p); +} +#endif /* ACE_LACKS_PLACEMENT_OPERATOR_DELETE */ +#endif +void +Newsweek::operator delete (void *ptr) +{ + delete [] static_cast <char *> (ptr); +} + +// Returns the Newsweek class pointer. +// The ACE_BUILD_SVC_DLL and ACE_Svc_Export directives are necessary to +// take care of exporting the function for Win32 platforms. +extern "C" ACE_Svc_Export Magazine *create_magazine (void); + +Magazine * +create_magazine (void) +{ + Magazine *mag = 0; + ACE_NEW_RETURN (mag, Newsweek, 0); + return mag; +} |