#include <Notes.h>

Inheritance diagram for NotePairs:
Collaboration diagram for NotePairs:

Classes

class  Entry
 Used to store a note key/value pair. More...
 

Public Types

typedef RefCount< NotePairsPointer
 
typedef std::vector< Entry::PointerEntries
 The key/value pair entries. More...
 
typedef std::vector< SBufNames
 

Public Member Functions

 NotePairs ()
 
NotePairsoperator= (NotePairs const &)=delete
 
 NotePairs (NotePairs const &)=delete
 
void append (const NotePairs *src)
 Append the entries of the src NotePairs list to our list. More...
 
void replaceOrAddOrAppend (const NotePairs *src, const Names &appendables)
 
void replaceOrAdd (const NotePairs *src)
 
void appendNewOnly (const NotePairs *src)
 
bool find (SBuf &resultNote, const char *noteKey, const char *sep=",") const
 
const char * findFirst (const char *noteKey) const
 
void add (const SBuf &key, const SBuf &value)
 
void add (const char *key, const char *value)
 
void remove (const char *key)
 
void remove (const SBuf &key)
 
void addStrList (const SBuf &key, const SBuf &values, const CharacterSet &delimiters)
 
bool hasPair (const SBuf &key, const SBuf &value) const
 
void print (std::ostream &os, const char *nameValueSeparator, const char *entryTerminator) const
 
bool empty () const
 
void clear ()
 
const EntriesexpandListEntries (const CharacterSet *delimiters) const
 

Private Attributes

Entries entries
 The key/value pair entries. More...
 

Detailed Description

Used to store list of notes

Definition at line 179 of file Notes.h.

Member Typedef Documentation

◆ Entries

Definition at line 205 of file Notes.h.

◆ Names

Definition at line 206 of file Notes.h.

◆ Pointer

Definition at line 182 of file Notes.h.

Constructor & Destructor Documentation

◆ NotePairs() [1/2]

NotePairs::NotePairs ( )
inline

Definition at line 208 of file Notes.h.

◆ NotePairs() [2/2]

NotePairs::NotePairs ( NotePairs const &  )
delete

Member Function Documentation

◆ add() [1/2]

void NotePairs::add ( const char *  key,
const char *  value 
)

Definition at line 311 of file Notes.cc.

References entries.

◆ add() [2/2]

void NotePairs::add ( const SBuf key,
const SBuf value 
)

Adds a note key and value to the notes list. If the key name already exists in the list, add the given value to its set of values.

Definition at line 317 of file Notes.cc.

References entries.

Referenced by ClientHttpRequest::logRequest(), Adaptation::Icap::ModXact::makeRequestHeaders(), redirectHandleReply(), redirectStart(), Adaptation::Ecap::XactionRep::start(), storeIdStart(), Ssl::Helper::Submit(), Note::updateNotePairs(), and UpdateRequestNotes().

◆ addStrList()

void NotePairs::addStrList ( const SBuf key,
const SBuf values,
const CharacterSet delimiters 
)

Adds a note key and values strList to the notes list. If the key name already exists in the list, add the new values to its set of values.

Definition at line 364 of file Notes.cc.

References AppendTokens(), and entries.

Referenced by Note::updateNotePairs().

◆ append()

void NotePairs::append ( const NotePairs src)

◆ appendNewOnly()

void NotePairs::appendNewOnly ( const NotePairs src)

Append any new entries of the src NotePairs list to our list. Entries which already exist in the destination set are ignored.

Definition at line 386 of file Notes.cc.

References entries, and hasPair().

Referenced by ClientHttpRequest::initRequest().

◆ clear()

void NotePairs::clear ( )
inline

Definition at line 262 of file Notes.h.

References entries.

Referenced by ExternalACLEntry::update().

◆ empty()

bool NotePairs::empty ( ) const
inline
Returns
true if there are not entries in the list

Definition at line 260 of file Notes.h.

References entries.

Referenced by HttpRequest::hasNotes(), ConnStateData::hasNotes(), Helper::operator<<(), and Note::updateNotePairs().

◆ expandListEntries()

const NotePairs::Entries & NotePairs::expandListEntries ( const CharacterSet delimiters) const

If delimiters are provided, returns another Entries, converting each single multi-token pair to multiple single-token pairs; returns existing entries otherwise.

Definition at line 351 of file Notes.cc.

References AppendTokens(), and entries.

Referenced by Acl::NoteCheck::matchNotes().

◆ find()

bool NotePairs::find ( SBuf resultNote,
const char *  noteKey,
const char *  sep = "," 
) const
Parameters
resultNotea comma separated list of notes with key 'noteKey'.
Returns
true if there are entries with the given 'noteKey'. Use findFirst() instead when a unique kv-pair is needed.

Definition at line 281 of file Notes.cc.

References SBuf::append(), SBuf::clear(), entries, SBuf::isEmpty(), and SBuf::length().

Referenced by Format::Format::assemble(), and Auth::UserRequest::denyMessageFromHelper().

◆ findFirst()

const char * NotePairs::findFirst ( const char *  noteKey) const
Returns
the first note value for this key or an empty string.

Definition at line 302 of file Notes.cc.

References entries.

Referenced by ClientRequestContext::clientRedirectDone(), ClientRequestContext::clientStoreIdDone(), externalAclHandleReply(), and UpdateRequestNotes().

◆ hasPair()

bool NotePairs::hasPair ( const SBuf key,
const SBuf value 
) const
Returns
true if the key/value pair is already stored

Definition at line 370 of file Notes.cc.

References entries.

Referenced by appendNewOnly(), Adaptation::Icap::ModXact::makeRequestHeaders(), and Adaptation::Ecap::XactionRep::start().

◆ operator=()

NotePairs& NotePairs::operator= ( NotePairs const &  )
delete

◆ print()

void NotePairs::print ( std::ostream &  os,
const char *  nameValueSeparator,
const char *  entryTerminator 
) const

Reports all entries (if any), printing exactly four items for each: entry name, nameValueSeparator, entry value, and entry terminator.

Definition at line 295 of file Notes.cc.

References entries.

Referenced by Format::Format::assemble(), and Helper::operator<<().

◆ remove() [1/2]

void NotePairs::remove ( const char *  key)

Remove all notes with a given key. If keyLen is not provided, the key is assumed null-terminated.

Definition at line 323 of file Notes.cc.

References entries.

Referenced by replaceOrAdd(), replaceOrAddOrAppend(), Note::updateNotePairs(), and UpdateRequestNotes().

◆ remove() [2/2]

void NotePairs::remove ( const SBuf key)

Definition at line 331 of file Notes.cc.

References entries.

◆ replaceOrAdd()

void NotePairs::replaceOrAdd ( const NotePairs src)

Replace existing list entries with the src NotePairs entries. Entries which do not exist in the destination set are added.

Definition at line 405 of file Notes.cc.

References append(), entries, and remove().

Referenced by UpdateRequestNotes().

◆ replaceOrAddOrAppend()

void NotePairs::replaceOrAddOrAppend ( const NotePairs src,
const Names appendables 
)

Replace existing list entries with the src NotePairs entries. Do not replace but append entries named in the appendables Entries which do not exist in the destination set are added.

Definition at line 395 of file Notes.cc.

References append(), entries, and remove().

Member Data Documentation

◆ entries


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

 

Introduction

Documentation

Support

Miscellaneous