#include <coherence/net/cache/AbstractBundler.hpp>
Inherits Object.
Inherited by AbstractKeyBundler::Bundle.
Public Types | |
typedef spec::Handle | Handle |
Bundle Handle definition. | |
typedef spec::View | View |
Bundle View definition. | |
typedef spec::Holder | Holder |
Bundle Holder definition. | |
Public Member Functions | |
virtual bool | isOpen () const |
Check whether or not this bundle is open for adding request elements. | |
virtual AbstractBundler::Handle | getBundler () |
Return the Bundler. | |
virtual bool | waitForResults (bool fFirst) |
Wait until results of bundled requests are retrieved. | |
virtual void | resetStatistics () |
Reset statistics for this Bundle. | |
Static Public Attributes | |
static const int32_t | status_open |
This Bundle accepting additional items. | |
static const int32_t | status_pending |
This Bundle is closed for accepting additional items and awaiting for the execution results. | |
static const int32_t | status_processed |
This Bundle is in process of returning the result of execution back to the client. | |
static const int32_t | status_exception |
Attempt to bundle encountered and exception; the execution has to be de-optimized and performed by individual threads. | |
Protected Member Functions | |
Bundle (AbstractBundler::Handle hBundler) | |
Default constructor. | |
virtual bool | isPending () const |
Check whether or not this bundle is in the "pending" state - awaiting for the execution results. | |
virtual bool | isProcessed () const |
Check whether or not this bundle is in the "processed" state - ready to return the result of execution back to the client. | |
virtual bool | isException () const |
Check whether or not this bundle is in the "exception" state - bundled execution threw an exception and requests have to be un-bundled. | |
virtual void | setStatus (int32_t iStatus) |
Change the status of this Bundle. | |
virtual int32_t | getBundleSize () const |
Obtain this bundle size. | |
virtual bool | isMaster () const |
Check whether or not this is a "master" Bundle. | |
virtual void | setMaster () |
Designate this Bundle as a "master" bundle. | |
virtual void | ensureResults ()=0 |
Obtain results of the bundled requests. | |
virtual bool | ensureResults (bool fBurst) |
Obtain results of the bundled requests or ensure that the results have already been retrieved. | |
virtual bool | releaseThread () |
Release all bundle resources associated with the current thread. | |
virtual TypedHandle < const String > | toString () const |
Output a human-readable description of this Object to the given stream. Note that when overriding this method the return type must be TypedHandle<const String> rather then String::View. These two types are assignment compatible but not equivalent and declaring the override with String::View will not be a compatible override. coherence::lang::operator<<(std::ostream, Object::View) is defined and will call into the toString method, to output Objects. If a managed String object is desired, the COH_TO_STRING macro can be used to build up a String from streamable contents and is generally how toString() will be implemented.
Object::View vKey = ... Object::View vValue = ... std::cout << vKey << " = " << vValue << std::endl; String::View vs = COH_TO_STRING(vKey << " = " << vValue); The COH_TO_STRING macro is also the most common way to implement the toString method. For example:
virtual TypedHandle<const String> Person::toString() const { return COH_TO_STRING("Name: " << f_sName << " SSN: " << f_nSSN); }
| |
virtual String::View | formatStatusName (int32_t iStatus) const |
Return a human readable name for the specified status value. | |
Protected Attributes | |
Volatile< int64_t > | m_cTotalBundles |
Statistics: the total number of times this Bundle has been used for bundled request processing. | |
Volatile< int64_t > | m_cTotalSize |
Statistics: the total size of individual requests processed by this Bundle expressed in the same units as values returned by the Bundle::getBundleSize() method. | |
int64_t | m_ldtStart |
Statistics: a timestamp of the first thread entering the bundle. | |
Volatile< int64_t > | m_cTotalBurstDuration |
Statistics: a total time duration this Bundle has spent in bundled request processing (burst). | |
Volatile< int64_t > | m_cTotalWaitDuration |
Statistics: a total time duration this Bundle has spent waiting for bundle to be ready for processing. |
Bundle | ( | AbstractBundler::Handle | hBundler | ) | [protected] |
Default constructor.
hBundler | the AbstructBundler |
Reimplemented in AbstractKeyBundler::Bundle.
virtual bool isOpen | ( | ) | const [virtual] |
Check whether or not this bundle is open for adding request elements.
virtual AbstractBundler::Handle getBundler | ( | ) | [virtual] |
Return the Bundler.
virtual bool isPending | ( | ) | const [protected, virtual] |
Check whether or not this bundle is in the "pending" state - awaiting for the execution results.
virtual bool isProcessed | ( | ) | const [protected, virtual] |
Check whether or not this bundle is in the "processed" state - ready to return the result of execution back to the client.
virtual bool isException | ( | ) | const [protected, virtual] |
Check whether or not this bundle is in the "exception" state - bundled execution threw an exception and requests have to be un-bundled.
virtual void setStatus | ( | int32_t | iStatus | ) | [protected, virtual] |
virtual int32_t getBundleSize | ( | ) | const [protected, virtual] |
Obtain this bundle size.
The return value should be expressed in the same units as the value returned by the getSizeThreshold method.
Reimplemented in AbstractKeyBundler::Bundle.
virtual bool isMaster | ( | ) | const [protected, virtual] |
virtual bool waitForResults | ( | bool | fFirst | ) | [virtual] |
Wait until results of bundled requests are retrieved.
Note that calls to this method must be externally synchronized.
fFirst | true if this is the first thread entering the bundle |
virtual void ensureResults | ( | ) | [protected, pure virtual] |
Obtain results of the bundled requests.
This method should be implemented by concrete Bundle implementations using the most efficient mechanism.
Implemented in AbstractKeyBundler::Bundle.
virtual bool ensureResults | ( | bool | fBurst | ) | [protected, virtual] |
Obtain results of the bundled requests or ensure that the results have already been retrieved.
fBurst | specifies whether or not the actual results have to be fetched on this thread; this parameter will be true for one and only one thread per bundle |
virtual bool releaseThread | ( | ) | [protected, virtual] |
Release all bundle resources associated with the current thread.
Reimplemented in AbstractKeyBundler::Bundle.
virtual String::View formatStatusName | ( | int32_t | iStatus | ) | const [protected, virtual] |
Return a human readable name for the specified status value.
iStatus | the status value to format |