A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/doxyhtml/stack_8h_source.html below:

NCBI C++ ToolKit: include/misc/jsonwrapp/rapidjson11/internal/stack.h Source File

15 #ifndef RAPIDJSON_INTERNAL_STACK_H_ 16 #define RAPIDJSON_INTERNAL_STACK_H_ 18 #include "../allocators.h" 21 #if defined(__clang__) 23

RAPIDJSON_DIAG_OFF(c++98-compat)

35 template

<

typename

Allocator>

40  Stack

(

Allocator

* allocator,

size_t

stackCapacity) : allocator_(allocator), ownAllocator_(0), stack_(0), stackTop_(0), stackEnd_(0), initialCapacity_(stackCapacity) {

43 #if RAPIDJSON_HAS_CXX11_RVALUE_REFS 45

: allocator_(rhs.allocator_),

46

ownAllocator_(rhs.ownAllocator_),

48

stackTop_(rhs.stackTop_),

49

stackEnd_(rhs.stackEnd_),

50

initialCapacity_(rhs.initialCapacity_)

53

rhs.ownAllocator_ = 0;

57

rhs.initialCapacity_ = 0;

65 #if RAPIDJSON_HAS_CXX11_RVALUE_REFS 71

allocator_ = rhs.allocator_;

72

ownAllocator_ = rhs.ownAllocator_;

74

stackTop_ = rhs.stackTop_;

75

stackEnd_ = rhs.stackEnd_;

76

initialCapacity_ = rhs.initialCapacity_;

79

rhs.ownAllocator_ = 0;

83

rhs.initialCapacity_ = 0;

98  void Clear

() { stackTop_ = stack_; }

114  template

<

typename

T>

121  template

<

typename

T>

124  return

PushUnsafe<T>(

count

);

127  template

<

typename

T>

131  T

* ret =

reinterpret_cast<T

*

>

(stackTop_);

132

stackTop_ +=

sizeof

(

T

) *

count

;

136  template

<

typename

T>

139

stackTop_ -=

count

*

sizeof

(

T

);

140  return reinterpret_cast<T

*

>

(stackTop_);

143  template

<

typename

T>

146  return reinterpret_cast<T

*

>

(stackTop_ -

sizeof

(

T

));

149  template

<

typename

T>

152  return reinterpret_cast<T

*

>

(stackTop_ -

sizeof

(

T

));

155  template

<

typename

T>

156  T

*

End

() {

return reinterpret_cast<T

*

>

(stackTop_); }

158  template

<

typename

T>

159  const T

*

End

()

const

{

return reinterpret_cast<T

*

>

(stackTop_); }

161  template

<

typename

T>

162  T

*

Bottom

() {

return reinterpret_cast<T

*

>

(stack_); }

164  template

<

typename

T>

165  const T

*

Bottom

()

const

{

return reinterpret_cast<T

*

>

(stack_); }

168  return

allocator_ != 0;

176  bool Empty

()

const

{

return

stackTop_ == stack_; }

177  size_t GetSize

()

const

{

return static_cast<size_t>

(stackTop_ - stack_); }

178  size_t GetCapacity

()

const

{

return static_cast<size_t>

(stackEnd_ - stack_); }

181  template

<

typename

T>

188

newCapacity = initialCapacity_;

190

newCapacity = GetCapacity();

191

newCapacity += (newCapacity + 1) / 2;

193  size_t

newSize = GetSize() +

sizeof

(

T

) *

count

;

194  if

(newCapacity < newSize)

195

newCapacity = newSize;

201  const size_t size

= GetSize();

202

stack_ =

static_cast<char

*

>

(allocator_->Realloc(stack_, GetCapacity(), newCapacity));

203

stackTop_ = stack_ +

size

;

204

stackEnd_ = stack_ + newCapacity;

227 #if defined(__clang__)

Concept for allocating, resizing and freeing memory block.

A type-unsafe stack for storing different types of data.

bool HasAllocator() const

size_t GetCapacity() const

void Expand(size_t count)

RAPIDJSON_FORCEINLINE void Reserve(size_t count=1)

Allocator * ownAllocator_

Stack & operator=(const Stack &)

RAPIDJSON_FORCEINLINE T * Push(size_t count=1)

void Resize(size_t newCapacity)

Stack(Allocator *allocator, size_t stackCapacity)

Allocator & GetAllocator()

void Swap(Stack &rhs) RAPIDJSON_NOEXCEPT

RAPIDJSON_FORCEINLINE T * PushUnsafe(size_t count=1)

bool Empty(const CNcbiOstrstream &src)

#define RAPIDJSON_UNLIKELY(x)

Compiler branching hint for expression with low probability to be true.

#define RAPIDJSON_ASSERT(x)

Assertion.

#define RAPIDJSON_NAMESPACE_BEGIN

provide custom rapidjson namespace (opening expression)

#define RAPIDJSON_NAMESPACE_END

provide custom rapidjson namespace (closing expression)

const struct ncbi::grid::netcache::search::fields::SIZE size

void Swap(T &a, T &b) RAPIDJSON_NOEXCEPT

Custom swap() to avoid dependency on C++ <algorithm> header.

#define RAPIDJSON_DELETE(x)

! customization point for global delete

#define RAPIDJSON_NEW(TypeName)

! customization point for global new


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4