#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
 
const char * toString (const char *sep="\") 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 167 of file Notes.h.

Member Typedef Documentation

◆ Entries

Definition at line 193 of file Notes.h.

◆ Names

Definition at line 194 of file Notes.h.

◆ Pointer

Definition at line 170 of file Notes.h.

Constructor & Destructor Documentation

◆ NotePairs() [1/2]

NotePairs::NotePairs ( )
inline

◆ NotePairs() [2/2]

NotePairs::NotePairs ( NotePairs const &  )
delete

Member Function Documentation

◆ add() [1/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 280 of file Notes.cc.

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

◆ add() [2/2]

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

Definition at line 274 of file Notes.cc.

◆ 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 327 of file Notes.cc.

References AppendTokens().

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 349 of file Notes.cc.

References entries.

Referenced by Auth::User::absorb(), and ClientHttpRequest::initRequest().

◆ clear()

void NotePairs::clear ( )
inline

Definition at line 250 of file Notes.h.

Referenced by ExternalACLEntry::update().

◆ empty()

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

Definition at line 248 of file Notes.h.

Referenced by Format::Format::assemble(), HttpRequest::hasNotes(), 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 314 of file Notes.cc.

References AppendTokens().

Referenced by ACLNoteStrategy::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 240 of file Notes.cc.

References SBuf::append(), SBuf::clear(), 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 265 of file Notes.cc.

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 333 of file Notes.cc.

References Note::Value::value().

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

◆ operator=()

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

◆ 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 286 of file Notes.cc.

References i.

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

◆ remove() [2/2]

void NotePairs::remove ( const SBuf key)

Definition at line 294 of file Notes.cc.

References i.

◆ 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 368 of file Notes.cc.

References entries.

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 358 of file Notes.cc.

References entries.

◆ toString()

const char * NotePairs::toString ( const char *  sep = "\r\n") const

Convert NotePairs list to a string consist of "Key: Value" entries separated by sep string.

Definition at line 254 of file Notes.cc.

References SBuf::appendf(), SBuf::c_str(), SBuf::clear(), and SBuf::isEmpty().

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

Member Data Documentation

◆ entries

Entries NotePairs::entries
private

Definition at line 257 of file Notes.h.

Referenced by append(), appendNewOnly(), replaceOrAdd(), and replaceOrAddOrAppend().


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

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors