Cleanup ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE, all platforms support it so far as I can...
[ACE_TAO.git] / ACE / apps / JAWS / clients / Blobby / Blob.cpp
blobcfb40893908b8fae1d706cb39fdae2c48360f8e6
1 #include "Blob.h"
2 #include "Blob_Handler.h"
3 #include "ace/OS_NS_string.h"
5 ACE_Blob::ACE_Blob ()
9 ACE_Blob::~ACE_Blob ()
11 this->close ();
14 // initialize address and filename. No network i/o in open
16 int
17 ACE_Blob::open (const ACE_TCHAR *filename, const ACE_TCHAR *hostname , u_short port)
19 filename_ = ACE_OS::strdup (filename);
20 inet_addr_.set (port, hostname);
21 return 0;
24 // read from connection length bytes from offset, into Message block
26 int
27 ACE_Blob::read (ACE_Message_Block *mb, size_t length, size_t offset)
29 // Create a Blob Reader
30 ACE_Blob_Reader blob_reader (mb, length, offset, filename_);
31 ACE_Blob_Handler *brp = &blob_reader;
33 // Connect to the server
34 if (connector_.connect (brp, inet_addr_) == -1)
35 ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Blob::read():Connector error"), -1);
37 return blob_reader.byte_count ();
40 // write to connection length bytes from offset, into Message block
42 int
43 ACE_Blob::write (ACE_Message_Block *mb, size_t length, size_t offset)
45 // Create a Blob Writer
46 ACE_Blob_Writer blob_writer (mb, length, offset, filename_);
47 ACE_Blob_Handler *bwp = &blob_writer;
49 // Connect to the server
50 if (connector_.connect (bwp, inet_addr_) == -1)
51 ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Blob::write():Connector error"), -1);
53 return blob_writer.byte_count ();
56 // close down the blob
58 int
59 ACE_Blob::close ()
61 if (filename_)
63 ACE_OS::free ((void *) filename_);
64 filename_ = 0;
66 return 0;