53 TSubscribersVector::iterator itToBeDetached;
55 if (subscriber != *itToBeDetached)
66 subscriber->Update(*
this);
73 m_Args.push_back(argument);
110 TSubscribersVector::iterator itToBeDetached;
112 if (subscriber != *itToBeDetached)
123 (*subscriber)(*
this, arg);
void Notify(CArgument &arg)
TSubscribersVector m_Subscribers
void Attach(FOnArgumentChanged subscriber) const
map< string, CRef< CArgument > > m_ArgsNew
Same information as m_Args, used for fast searching.
CArgument & operator[](const string &arg_name)
void Detach(FOnArgumentChanged subscriber) const
void Add(const macro::SArgMetaData &arg, bool enabled, bool shown)
size_t count(const string &arg_name) const
CArgument(const macro::SArgMetaData &arg, bool enabled=true, bool shown=true)
TSubscribersVector m_Subscribers
void Attach(IArgumentSubscriber *subscriber) const
void Detach(IArgumentSubscriber *subscriber) const
const_iterator end() const
const_iterator find(const key_type &key) const
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
void(* FOnArgumentChanged)(CArgumentList &, CArgument &)