tlds
Transactional Operations for Linked Data Structures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
TransList Class Referenceabstract

#include <translist.h>

Collaboration diagram for TransList:

Classes

struct  Desc
 
struct  HelpStack
 
struct  Node
 
struct  NodeDesc
 
struct  Operator
 

Public Types

enum  OpStatus { ACTIVE = 0, COMMITTED, ABORTED }
 
enum  ReturnCode { OK = 0, SKIP, FAIL }
 
enum  OpType { FIND = 0, INSERT, DELETE }
 

Public Member Functions

 TransList (Allocator< Node > *nodeAllocator, Allocator< Desc > *descAllocator, Allocator< NodeDesc > *nodeDescAllocator)
 
 ~TransList ()
 
bool ExecuteOps (Desc *desc)
 
DescAllocateDesc (uint8_t size)
 

Private Member Functions

ReturnCode Insert (uint32_t key, Desc *desc, uint8_t opid, Node *&inserted, Node *&pred)
 
ReturnCode Delete (uint32_t key, Desc *desc, uint8_t opid, Node *&deleted, Node *&pred)
 
ReturnCode Find (uint32_t key, Desc *desc, uint8_t opid)
 
void HelpOps (Desc *desc, uint8_t opid)
 
bool IsSameOperation (NodeDesc *nodeDesc1, NodeDesc *nodeDesc2)
 
void FinishPendingTxn (NodeDesc *nodeDesc, Desc *desc)
 
bool IsNodeExist (Node *node, uint32_t key)
 
bool IsNodeActive (NodeDesc *nodeDesc)
 
bool IsKeyExist (NodeDesc *nodeDesc)
 
void LocatePred (Node *&pred, Node *&curr, uint32_t key)
 
void MarkForDeletion (const std::vector< Node * > &nodes, const std::vector< Node * > &preds, Desc *desc)
 
void Print ()
 
 ASSERT_CODE (uint32_t g_count=0;uint32_t g_count_ins=0;uint32_t g_count_ins_new=0;uint32_t g_count_del=0;uint32_t g_count_del_new=0;uint32_t g_count_fnd=0;) uint32_t g_count_commit=0
 

Private Attributes

Nodem_tail
 
Nodem_head
 
Allocator< Node > * m_nodeAllocator
 
Allocator< Desc > * m_descAllocator
 
Allocator< NodeDesc > * m_nodeDescAllocator
 
uint32_t g_count_abort = 0
 
uint32_t g_count_fake_abort = 0
 

Member Enumeration Documentation

Enumerator
ACTIVE 
COMMITTED 
ABORTED 
Enumerator
FIND 
INSERT 
DELETE 
Enumerator
OK 
SKIP 
FAIL 

Constructor & Destructor Documentation

TransList::TransList ( Allocator< Node > *  nodeAllocator,
Allocator< Desc > *  descAllocator,
Allocator< NodeDesc > *  nodeDescAllocator 
)
TransList::~TransList ( )

Here is the call graph for this function:

Member Function Documentation

TransList::Desc * TransList::AllocateDesc ( uint8_t  size)

Here is the call graph for this function:

TransList::ASSERT_CODE ( uint32_t  g_count = 0;uint32_t g_count_ins=0;uint32_t g_count_ins_new=0;uint32_t g_count_del=0;uint32_t g_count_del_new=0;uint32_t g_count_fnd=0;)
privatepure virtual

Here is the caller graph for this function:

TransList::ReturnCode TransList::Delete ( uint32_t  key,
Desc desc,
uint8_t  opid,
Node *&  deleted,
Node *&  pred 
)
inlineprivate

Here is the call graph for this function:

Here is the caller graph for this function:

bool TransList::ExecuteOps ( Desc desc)

Here is the call graph for this function:

TransList::ReturnCode TransList::Find ( uint32_t  key,
Desc desc,
uint8_t  opid 
)
inlineprivate

Here is the call graph for this function:

Here is the caller graph for this function:

void TransList::FinishPendingTxn ( NodeDesc nodeDesc,
Desc desc 
)
inlineprivate

Here is the call graph for this function:

Here is the caller graph for this function:

void TransList::HelpOps ( Desc desc,
uint8_t  opid 
)
inlineprivate

Here is the call graph for this function:

Here is the caller graph for this function:

TransList::ReturnCode TransList::Insert ( uint32_t  key,
Desc desc,
uint8_t  opid,
Node *&  inserted,
Node *&  pred 
)
inlineprivate

Here is the call graph for this function:

Here is the caller graph for this function:

bool TransList::IsKeyExist ( NodeDesc nodeDesc)
inlineprivate

Here is the call graph for this function:

Here is the caller graph for this function:

bool TransList::IsNodeActive ( NodeDesc nodeDesc)
inlineprivate

Here is the caller graph for this function:

bool TransList::IsNodeExist ( Node node,
uint32_t  key 
)
inlineprivate

Here is the caller graph for this function:

bool TransList::IsSameOperation ( NodeDesc nodeDesc1,
NodeDesc nodeDesc2 
)
inlineprivate

Here is the caller graph for this function:

void TransList::LocatePred ( Node *&  pred,
Node *&  curr,
uint32_t  key 
)
inlineprivate

Here is the caller graph for this function:

void TransList::MarkForDeletion ( const std::vector< Node * > &  nodes,
const std::vector< Node * > &  preds,
Desc desc 
)
inlineprivate

Here is the caller graph for this function:

void TransList::Print ( )
inlineprivate

Here is the call graph for this function:

Member Data Documentation

uint32_t TransList::g_count_abort = 0
private
uint32_t TransList::g_count_fake_abort = 0
private
Allocator<Desc>* TransList::m_descAllocator
private
Node* TransList::m_head
private
Allocator<Node>* TransList::m_nodeAllocator
private
Allocator<NodeDesc>* TransList::m_nodeDescAllocator
private
Node* TransList::m_tail
private

The documentation for this class was generated from the following files: