diff options
author | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:30 +0000 |
---|---|---|
committer | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:30 +0000 |
commit | c44379cc7d9c7aa113989237ab0f56db12aa5219 (patch) | |
tree | 66a84b20d47f2269d8bdc6e0323f338763424d3a /ACE/apps/JAWS/clients/Blobby/Blob.cpp | |
parent | 3aff90f4a822fcf5d902bbfbcc9fa931d6191a8c (diff) | |
download | ATCD-c44379cc7d9c7aa113989237ab0f56db12aa5219.tar.gz |
Repo restructuring
Diffstat (limited to 'ACE/apps/JAWS/clients/Blobby/Blob.cpp')
-rw-r--r-- | ACE/apps/JAWS/clients/Blobby/Blob.cpp | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/ACE/apps/JAWS/clients/Blobby/Blob.cpp b/ACE/apps/JAWS/clients/Blobby/Blob.cpp new file mode 100644 index 00000000000..3bd237c7a9c --- /dev/null +++ b/ACE/apps/JAWS/clients/Blobby/Blob.cpp @@ -0,0 +1,77 @@ +// $Id$ + +#include "Blob.h" +#include "Blob_Handler.h" +#include "ace/OS_NS_string.h" + +ACE_RCSID(Blobby, Blob, "$Id$") + +ACE_Blob::ACE_Blob (void) +{ +} + +ACE_Blob::~ACE_Blob (void) +{ + this->close (); +} + +// initialize address and filename. No network i/o in open + +int +ACE_Blob::open (const ACE_TCHAR *filename, const ACE_TCHAR *hostname , u_short port) +{ + filename_ = ACE_OS::strdup (filename); + inet_addr_.set (port, hostname); + return 0; +} + +// read from connection length bytes from offset, into Message block + +int +ACE_Blob::read (ACE_Message_Block *mb, size_t length, size_t offset) +{ + + // Create a Blob Reader + ACE_Blob_Reader blob_reader (mb, length, offset, filename_); + ACE_Blob_Handler *brp = &blob_reader; + + // Connect to the server + if (connector_.connect (brp, inet_addr_) == -1) + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Blob::read():Connector error"), -1); + + return blob_reader.byte_count (); + +} + +// write to connection length bytes from offset, into Message block + +int +ACE_Blob::write (ACE_Message_Block *mb, size_t length, size_t offset) +{ + + // Create a Blob Writer + ACE_Blob_Writer blob_writer (mb, length, offset, filename_); + ACE_Blob_Handler *bwp = &blob_writer; + + // Connect to the server + if (connector_.connect (bwp, inet_addr_) == -1) + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Blob::write():Connector error"), -1); + + return blob_writer.byte_count (); +} + +// close down the blob + +int +ACE_Blob::close (void) +{ + + if (filename_) + { + ACE_OS::free ((void *) filename_); + filename_ = 0; + } + return 0; + +} + |