HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DEP_ContextOptions.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: DEP_ContextOptions.h (DEP Library, C++)
7  */
8 
9 #ifndef __DEP_CONTEXTOPTIONS_H__
10 #define __DEP_CONTEXTOPTIONS_H__
11 
12 #include "DEP_API.h"
13 #include "DEP_ContextOptionsFwd.h"
14 #include <UT/UT_COW.h>
15 #include <UT/UT_ConcurrentSet.h>
16 #include <UT/UT_Options.h>
17 #include <UT/UT_StringHolder.h>
18 #include <UT/UT_StringSet.h>
19 #include <UT/UT_TBBSpinLock.h>
20 #include <UT/UT_UniquePtr.h>
21 #include <SYS/SYS_Types.h>
22 
27 
29 {
30 public:
32 
34  {
36  OPTION_SOURCE_EXPLICIT
37  };
38 
39  int getNumOptions() const;
40  bool hasOption(const UT_StringRef &opt) const;
41  const UT_OptionEntry *getOptionEntry(
42  const UT_StringRef &opt) const;
43  bool isOptionAtDefault(
44  const UT_StringRef &opt) const;
45  OptionSource getOptionSource(
46  const UT_StringRef &opt) const;
47 
49  UT_Options::iterator end() const;
50 
51  float getOptionF(const UT_StringHolder& opt,
52  float def) const;
53 
54  void setOption(const UT_StringHolder &opt,
56  OptionSource source);
57  void setOptionS(const UT_StringHolder &opt,
58  const UT_StringHolder &value,
59  OptionSource source);
60  void setOptionF(const UT_StringHolder &opt,
62  OptionSource source);
63  void removeOption(const UT_StringHolder &opt);
64  void clear();
65 
66  void cloneOptions(const UT_Options &options);
67  void cloneOptionsInto(UT_Options &options) const;
68 
69 private:
70  void setOptionIsAtDefault(
71  const UT_StringHolder &opt,
72  bool is_default);
73 
74  UT_Options myOptions;
75  UT_StringSet myOptionsAtDefaults;
76 };
77 
78 DEP_API extern const DEP_ContextOptionDeps &
84  DEP_ContextOptionDepsLock *lock = nullptr);
85 
86 #endif // __DEP_CONTEXTOPTIONS_H__
87 
UT_UniquePtr< DEP_ContextOptionDeps > DEP_ContextOptionDepsPtr
UT_TBBSpinLock::Scope DEP_ContextOptionDepsLockScope
GLsizei const GLfloat * value
Definition: glcorearb.h:824
DEP_API const DEP_ContextOptionDeps & DEPgetContextOptionDepsFromPtr(const DEP_ContextOptionDepsPtr &ptr)
UT_ConcurrentSet< UT_StringHolder > DEP_ContextOptionDeps
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
Definition: UT_UniquePtr.h:39
double fpreal64
Definition: SYS_Types.h:201
GLuint GLuint end
Definition: glcorearb.h:475
GLsizei GLsizei GLchar * source
Definition: glcorearb.h:803
UT_TBBSpinLock DEP_ContextOptionDepsLock
A map of string to various well defined value types.
Definition: UT_Options.h:84
auto ptr(T p) -> const void *
Definition: format.h:4331
DEP_API DEP_ContextOptionDeps & DEPcreateContextOptionDepsFromPtr(DEP_ContextOptionDepsPtr &ptr, DEP_ContextOptionDepsLock *lock=nullptr)
#define DEP_API
Definition: DEP_API.h:10
tbb::concurrent_unordered_set< K, H, P, A > UT_ConcurrentSet
UT_UniquePtr< UT_OptionEntry > UT_OptionEntryPtr
PcpNodeRef_ChildrenIterator begin(const PcpNodeRef::child_const_range &r)
Support for range-based for loops for PcpNodeRef children ranges.
Definition: node.h:566