OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
process::Flag Class Reference

#include <feature_flags.h>

Collaboration diagram for process::Flag:

Public Types

typedef boost::function< void()> FlagStateCb
 

Public Member Functions

 Flag (FlagManager *manager, const std::string &name, const std::string &description, bool enabled, ContextVec &context_infos)
 
 Flag (const Flag &flag, FlagStateCb callback)
 
 Flag ()
 
 ~Flag ()
 
void InvokeCb ()
 
void set_name (const std::string &val)
 
const std::string & name () const
 
void set_description (const std::string &val)
 
const std::string & description () const
 
void set_enabled (const bool val)
 
const bool enabled () const
 
void set_context_infos (const ContextVec &val)
 
const ContextVeccontext_infos () const
 
bool operator== (const Flag &rhs) const
 
bool operator!= (const Flag &rhs) const
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (Flag)
 

Private Attributes

std::string name_
 
std::string description_
 
bool enabled_
 
ContextVec context_infos_
 
FlagStateCb flag_state_cb_
 
FlagManagermanager_
 

Detailed Description


Class representing a feature flag

Modules can use this class to define flags they are interested in. Data provided by module includes

  1. Flag name
  2. Description
  3. Context Info (optional)
  4. Callback for run-time updates (optional) The Flag class will in turn register this Flag with the Flag Manager.

Definition at line 258 of file feature_flags.h.

Member Typedef Documentation

typedef boost::function<void ()> process::Flag::FlagStateCb

Callback provided by module to track run-time updates to feature

flag configuration.

Definition at line 267 of file feature_flags.h.

Constructor & Destructor Documentation

process::Flag::Flag ( FlagManager manager,
const std::string &  name,
const std::string &  description,
bool  enabled,
ContextVec context_infos 
)

This constructor is used to create a feature flag with basic information; name, description, default behavior and optional context information.

process::Flag::Flag ( const Flag flag,
FlagStateCb  callback 
)

This constructor takes a Flag object with basic information with provision for components to act on run-time updates through a callback

Add flag to FlagManager's interest list

Definition at line 49 of file feature_flags.cc.

Here is the call graph for this function:

process::Flag::Flag ( )
inline

Default Constructor

Definition at line 287 of file feature_flags.h.

process::Flag::~Flag ( )

Definition at line 63 of file feature_flags.cc.

Here is the call graph for this function:

Member Function Documentation

const ContextVec& process::Flag::context_infos ( ) const
inline

Definition at line 308 of file feature_flags.h.

const std::string& process::Flag::description ( ) const
inline

Definition at line 302 of file feature_flags.h.

process::Flag::DISALLOW_COPY_AND_ASSIGN ( Flag  )
private
const bool process::Flag::enabled ( ) const
inline

Definition at line 305 of file feature_flags.h.

void process::Flag::InvokeCb ( )

Method to invoke callback provided by modules for this flag

Member Functions

Definition at line 73 of file feature_flags.cc.

const std::string& process::Flag::name ( ) const
inline

Definition at line 299 of file feature_flags.h.

bool process::Flag::operator!= ( const Flag rhs) const

Definition at line 91 of file feature_flags.cc.

bool process::Flag::operator== ( const Flag rhs) const

Definition at line 79 of file feature_flags.cc.

void process::Flag::set_context_infos ( const ContextVec val)
inline

Definition at line 307 of file feature_flags.h.

void process::Flag::set_description ( const std::string &  val)
inline

Definition at line 301 of file feature_flags.h.

void process::Flag::set_enabled ( const bool  val)
inline

Definition at line 304 of file feature_flags.h.

void process::Flag::set_name ( const std::string &  val)
inline

Getter/Setter functions for members

Definition at line 298 of file feature_flags.h.

Member Data Documentation

ContextVec process::Flag::context_infos_
private

Definition at line 316 of file feature_flags.h.

std::string process::Flag::description_
private

Definition at line 314 of file feature_flags.h.

bool process::Flag::enabled_
private

Definition at line 315 of file feature_flags.h.

FlagStateCb process::Flag::flag_state_cb_
private

Definition at line 318 of file feature_flags.h.

FlagManager* process::Flag::manager_
private

Definition at line 319 of file feature_flags.h.

std::string process::Flag::name_
private

Definition at line 313 of file feature_flags.h.


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