Also use Objects as part of an operation but as a result don't generate Any operation...
[ACE_TAO.git] / ACE / ace / Obchunk.h
blob3a2fddc260ae66e72dbc67ae176dbd3f71837726
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file Obchunk.h
7 * @author Doug Schmidt
8 */
9 //=============================================================================
11 #ifndef ACE_OBCHUNK_H
12 #define ACE_OBCHUNK_H
13 #include /**/ "ace/pre.h"
15 #include "ace/Malloc.h"
17 #if !defined (ACE_LACKS_PRAGMA_ONCE)
18 # pragma once
19 #endif /* ACE_LACKS_PRAGMA_ONCE */
21 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
23 /**
24 * @class ACE_Obchunk
26 * @brief Defines the state that represents a "chunk" of memory.
27 * Evenything in this class is public because it is designed
28 * as an internal structure of Obstack_T and users are
29 * not supposed to use this class directly.
30 * @sa ACE_Obstack_T
32 class ACE_Export ACE_Obchunk
34 public:
35 /// Constructor.
36 ACE_Obchunk (size_t size);
38 /// Dtor.
39 ~ACE_Obchunk (void);
41 /// Dump the state of an object.
42 void dump (void) const;
44 /// Declare the dynamic allocation hooks.
45 ACE_ALLOC_HOOK_DECLARE;
47 /// Pointer to the end of the chunk.
48 char *end_;
50 /// Pointer to the head of the current building block.
51 char *block_;
53 /// Pointer to the current location in the chunk.
54 char *cur_;
56 /// Next chunk in the chain.
57 ACE_Obchunk *next_;
59 /**
60 * Pointer to the beginning contents of this chunk. This field is
61 * actually overlayed by the memory allocated by
62 * <ACE_Obstack::new_chunk>. Therefore, it *must* come last.
64 char contents_[4];
67 ACE_END_VERSIONED_NAMESPACE_DECL
69 #if defined (__ACE_INLINE__)
70 #include "ace/Obchunk.inl"
71 #endif /* __ACE_INLINE__ */
73 #include /**/ "ace/post.h"
74 #endif /* ACE_OBCHUNK_H */