summaryrefslogtreecommitdiff
path: root/ace/String_Base.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ace/String_Base.cpp')
-rw-r--r--ace/String_Base.cpp183
1 files changed, 0 insertions, 183 deletions
diff --git a/ace/String_Base.cpp b/ace/String_Base.cpp
deleted file mode 100644
index e5e8bec0e67..00000000000
--- a/ace/String_Base.cpp
+++ /dev/null
@@ -1,183 +0,0 @@
-// $Id$
-
-#include "ace/Malloc.h"
-#include "ace/String_Base.h"
-#include "ace/Auto_Ptr.h"
-
-#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
-# include "ace/streams.h"
-#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/String_Base.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, String_Base, "String_Base.cpp,v 4.61 2001/03/04 00:55:30 brunsch Exp")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_String_Base)
-
-template <class CHAR>
-CHAR ACE_String_Base<CHAR>::NULL_String_ = '\0';
-
-// this method might benefit from a little restructuring.
-template <class CHAR> void
-ACE_String_Base<CHAR>::set (const CHAR *s,
- size_t len,
- int release)
-{
- // Case 1. Going from memory to more memory
- size_t new_buf_len = len + 1;
- if (s != 0 && len != 0 && release && this->buf_len_ < new_buf_len)
- {
- CHAR *temp;
- ACE_ALLOCATOR (temp,
- (CHAR *) this->allocator_->malloc (new_buf_len * sizeof (CHAR)));
-
- if (this->release_)
- this->allocator_->free (this->rep_);
-
- this->rep_ = temp;
- this->buf_len_ = new_buf_len;
- this->release_ = 1;
- this->len_ = len;
- ACE_OS::memcpy (this->rep_, s, len * sizeof (CHAR));
- // NUL terminate.
- this->rep_[len] = '\0';
- }
-
- // Case 2. No memory allocation is necessary.
- else
- {
- // Free memory if necessary and figure out future ownership
- if (!release || s == 0 || len == 0)
- {
- if (this->release_)
- {
- this->allocator_->free (this->rep_);
- this->release_ = 0;
- }
- }
- // else - stay with whatever value for release_ we have.
-
- // Populate data.
- if (s == 0 || len == 0)
- {
- this->buf_len_ = 0;
- this->len_ = 0;
- this->rep_ = &ACE_String_Base<CHAR>::NULL_String_;
- }
- else if (!release)
- {
- this->buf_len_ = len;
- this->len_ = len;
- this->rep_ = (CHAR *) s;
- }
- else
- {
- ACE_OS::memcpy (this->rep_, s, len * sizeof (CHAR));
- // NUL terminate.
- this->rep_[len] = 0;
- this->len_ = len;
- }
- }
-}
-
-// Return substring.
-template <class CHAR> ACE_String_Base<CHAR>
-ACE_String_Base<CHAR>::substring (size_t offset,
- ssize_t length) const
-{
- ACE_String_Base<CHAR> nill;
- size_t count = length;
-
- // case 1. empty string
- if (this->len_ == 0)
- return nill;
-
- // case 2. start pos past our end
- if (offset >= this->len_)
- return nill;
- // No length == empty string.
- else if (length == 0)
- return nill;
- // Get all remaining bytes.
- else if (length == -1 || count > (this->len_ - offset))
- count = this->len_ - offset;
-
- return ACE_String_Base<CHAR> (&this->rep_[offset],
- count,
- this->allocator_);
-}
-
-// Concat operator (does copy memory).
-
-template <class CHAR> ACE_String_Base<CHAR> &
-ACE_String_Base<CHAR>::operator+= (const ACE_String_Base<CHAR> &s)
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator+=");
-
- if (s.len_ > 0)
- {
- size_t new_buf_len = this->len_ + s.len_ + 1;
-
- // case 1. No memory allocation needed.
- if (this->buf_len_ >= new_buf_len)
- // Copy in data from new string.
- ACE_OS::memcpy (this->rep_ + this->len_,
- s.rep_,
- s.len_ * sizeof (CHAR));
- // case 2. Memory reallocation is needed
- else
- {
- CHAR *t = 0;
-
- ACE_ALLOCATOR_RETURN (t,
- (CHAR *) this->allocator_->malloc (new_buf_len *
- sizeof (CHAR)),
- *this);
-
- // Copy memory from old string into new string.
- ACE_OS::memcpy (t,
- this->rep_,
- this->len_ * sizeof (CHAR));
-
- ACE_OS::memcpy (t + this->len_,
- s.rep_,
- s.len_ * sizeof (CHAR));
-
- if (this->release_)
- this->allocator_->free (this->rep_);
-
- this->release_ = 1;
- this->rep_ = t;
- this->buf_len_ = new_buf_len;
- }
-
- this->len_ += s.len_;
- this->rep_[this->len_] = '\0';
- }
-
- return *this;
-}
-
-template <class CHAR> void
-ACE_String_Base<CHAR>::resize (size_t len, CHAR c)
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::resize");
-
- // Only reallocate if we don't have enough space...
- if (this->buf_len_ <= len)
- {
- if (this->buf_len_ != 0)
- this->allocator_->free (this->rep_);
-
- this->rep_ = (CHAR *)
- this->allocator_->malloc ((len + 1) * sizeof (CHAR));
- this->buf_len_ = len + 1;
- }
-
- this->len_ = 0;
- ACE_OS::memset (this->rep_,
- c,
- this->buf_len_ * sizeof (CHAR));
-}