summaryrefslogtreecommitdiff
path: root/TAO/examples/Content_Server/AMI_Observer/Push_Iterator_Factory_i.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/examples/Content_Server/AMI_Observer/Push_Iterator_Factory_i.cpp')
-rw-r--r--TAO/examples/Content_Server/AMI_Observer/Push_Iterator_Factory_i.cpp34
1 files changed, 13 insertions, 21 deletions
diff --git a/TAO/examples/Content_Server/AMI_Observer/Push_Iterator_Factory_i.cpp b/TAO/examples/Content_Server/AMI_Observer/Push_Iterator_Factory_i.cpp
index 73ef258aea8..1667618cf4d 100644
--- a/TAO/examples/Content_Server/AMI_Observer/Push_Iterator_Factory_i.cpp
+++ b/TAO/examples/Content_Server/AMI_Observer/Push_Iterator_Factory_i.cpp
@@ -6,10 +6,10 @@
#include "Push_Iterator_Factory_i.h"
#include "Callback_Handler.h"
-ACE_RCSID (AMI_Observer, Push_Iterator_Factory_i, "$Id$")
+ACE_RCSID(AMI_Observer, Push_Iterator_Factory_i, "$Id$")
Web_Server::Metadata_Type *
-Push_Iterator_Factory_i::register_callback
+Push_Iterator_Factory_i::register_callback
(const char *pathname,
Web_Server::Callback_ptr client_callback,
CORBA::Environment &ACE_TRY_ENV)
@@ -27,7 +27,7 @@ Push_Iterator_Factory_i::register_callback
// content.
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("Received request for file: <%s>\n"),
+ "Received request for file: <%s>\n",
pathname));
// Send the file to the client asynchronously. This allows the
@@ -42,42 +42,34 @@ Push_Iterator_Factory_i::register_callback
// Transfer ownership to the POA.
PortableServer::ServantBase_var tmp (handler);
- // Start sending data to the client callback object.
- handler->run (ACE_TRY_ENV);
+ ACE_HANDLE fd = handler->run (ACE_TRY_ENV);
ACE_CHECK_RETURN (0);
struct stat file_status;
- if (ACE_OS::stat (pathname,
- &file_status) == -1)
+ if (fd == ACE_INVALID_HANDLE
+ || ACE_OS::fstat (fd,
+ &file_status) == -1)
// HTTP 1.1 "Internal Server Error".
ACE_THROW_RETURN (Web_Server::Error_Result (500),
0);
-
- Web_Server::Metadata_Type *meta_tmp = 0;
- ACE_NEW_THROW_EX (meta_tmp,
- Web_Server::Metadata_Type,
- CORBA::NO_MEMORY ());
- ACE_CHECK_RETURN (0);
-
- Web_Server::Metadata_Type_var metadata = meta_tmp;
+ Web_Server::Metadata_Type_var metadata =
+ new Web_Server::Metadata_Type;
if (this->modification_date (&file_status,
metadata.inout ()) != 0)
// HTTP 1.1 "Internal Server Error.
ACE_THROW_RETURN (Web_Server::Error_Result (500),
0);
-
if (this->content_type (pathname,
metadata.inout ()) != 0)
// HTTP 1.1 "Internal Server Error.
ACE_THROW_RETURN (Web_Server::Error_Result (500),
0);
-
return metadata._retn ();
}
int
-Push_Iterator_Factory_i::modification_date
+Push_Iterator_Factory_i::modification_date
(struct stat *file_status,
Web_Server::Metadata_Type & metadata)
{
@@ -162,9 +154,9 @@ Push_Iterator_Factory_i::content_type (const char *filename,
{
metadata.content_type = CORBA::string_dup ("text/html");
ACE_ERROR ((LM_WARNING,
- ACE_TEXT ("\n ")
- ACE_TEXT ("Unknown file type. ")
- ACE_TEXT ("Using \"text/html\" content type.\n")));
+ "\n "
+ "Unknown file type. "
+ "Using \"text/html\" content type.\n"));
}
return 0;