proxygen
UnionBasedStatic.h File Reference

Go to the source code of this file.

Macros

#define DECLARE_UNION_STATIC_UNION_IMPL(type, name)
 
#define DECLARE_UNION_STATIC_UNION_ARRAY_IMPL(type, size, name)
 
#define DEFINE_UNION_STATIC_UNION_IMPL(type, name, var)   DECLARE_UNION_STATIC_UNION_IMPL(type, name) var;
 
#define DEFINE_UNION_STATIC_UNION_CONST_IMPL(type, name, var)   DECLARE_UNION_STATIC_UNION_IMPL(type, name) const var;
 
#define DEFINE_UNION_STATIC_UNION_CONST_ARRAY_IMPL(type, size, name, var)   DECLARE_UNION_STATIC_UNION_ARRAY_IMPL(type, size, name) const var;
 
#define DEFINE_UNION_STATIC_CONSTRUCTOR_IMPL(type, name, var)
 
#define DEFINE_UNION_STATIC_CONSTRUCTOR_ARG_IMPL(type, name, var, ...)
 
#define DEFINE_UNION_STATIC(type, name, var)
 
#define DEFINE_UNION_STATIC_ARGS(type, name, var, ...)
 
#define DEFINE_UNION_STATIC_NO_INIT(type, name, var)   DEFINE_UNION_STATIC_UNION_IMPL(type, name, var)
 
#define DEFINE_UNION_STATIC_CONST(type, name, var)
 
#define DEFINE_UNION_STATIC_CONST_ARGS(type, name, var, ...)
 
#define DEFINE_UNION_STATIC_CONST_NO_INIT(type, name, var)   DEFINE_UNION_STATIC_UNION_CONST_IMPL(type, name, var)
 
#define DEFINE_UNION_STATIC_CONST_ARRAY_NO_INIT(type, size, name, var)   DEFINE_UNION_STATIC_UNION_CONST_ARRAY_IMPL(type, size, name, var)
 
#define DECLARE_UNION_STATIC(type, name)   DECLARE_UNION_STATIC_UNION_IMPL(type, name)
 
#define IMPLEMENT_DECLARED_UNION_STATIC(type, unionName, name, var)
 
#define IMPLEMENT_DECLARED_UNION_STATIC_ARGS(type, unionName, name, var, ...)
 

Macro Definition Documentation

#define DECLARE_UNION_STATIC (   type,
  name 
)    DECLARE_UNION_STATIC_UNION_IMPL(type, name)

Definition at line 99 of file UnionBasedStatic.h.

#define DECLARE_UNION_STATIC_UNION_ARRAY_IMPL (   type,
  size,
  name 
)
Value:
union name##Union { \
name##Union() {} \
~name##Union() {} \
}
PskType type
const char * name
Definition: http_parser.c:437
constexpr auto size(C const &c) -> decltype(c.size())
Definition: Access.h:45
static constexpr uint64_t data[1]
Definition: Fingerprint.cpp:43

Definition at line 27 of file UnionBasedStatic.h.

#define DECLARE_UNION_STATIC_UNION_IMPL (   type,
  name 
)
Value:
union name##Union { \
name##Union() {} \
~name##Union() {} \
}
PskType type
const char * name
Definition: http_parser.c:437
static constexpr uint64_t data[1]
Definition: Fingerprint.cpp:43

Definition at line 20 of file UnionBasedStatic.h.

#define DEFINE_UNION_STATIC (   type,
  name,
  var 
)
Value:
#define DEFINE_UNION_STATIC_CONSTRUCTOR_IMPL(type, name, var)
#define DEFINE_UNION_STATIC_UNION_IMPL(type, name, var)
PskType type
const char * name
Definition: http_parser.c:437

Definition at line 62 of file UnionBasedStatic.h.

#define DEFINE_UNION_STATIC_ARGS (   type,
  name,
  var,
  ... 
)
Value:
#define DEFINE_UNION_STATIC_UNION_IMPL(type, name, var)
PskType type
const char * name
Definition: http_parser.c:437
#define DEFINE_UNION_STATIC_CONSTRUCTOR_ARG_IMPL(type, name, var,...)

Definition at line 66 of file UnionBasedStatic.h.

#define DEFINE_UNION_STATIC_CONST (   type,
  name,
  var 
)
Value:
#define DEFINE_UNION_STATIC_CONSTRUCTOR_IMPL(type, name, var)
PskType type
const char * name
Definition: http_parser.c:437
#define DEFINE_UNION_STATIC_UNION_CONST_IMPL(type, name, var)

Definition at line 74 of file UnionBasedStatic.h.

#define DEFINE_UNION_STATIC_CONST_ARGS (   type,
  name,
  var,
  ... 
)
Value:
PskType type
const char * name
Definition: http_parser.c:437
#define DEFINE_UNION_STATIC_CONSTRUCTOR_ARG_IMPL(type, name, var,...)
#define DEFINE_UNION_STATIC_UNION_CONST_IMPL(type, name, var)

Definition at line 78 of file UnionBasedStatic.h.

#define DEFINE_UNION_STATIC_CONST_ARRAY_NO_INIT (   type,
  size,
  name,
  var 
)    DEFINE_UNION_STATIC_UNION_CONST_ARRAY_IMPL(type, size, name, var)

Definition at line 85 of file UnionBasedStatic.h.

#define DEFINE_UNION_STATIC_CONST_NO_INIT (   type,
  name,
  var 
)    DEFINE_UNION_STATIC_UNION_CONST_IMPL(type, name, var)

Definition at line 82 of file UnionBasedStatic.h.

#define DEFINE_UNION_STATIC_CONSTRUCTOR_ARG_IMPL (   type,
  name,
  var,
  ... 
)
Value:
__attribute__((__constructor__)) \
void init##name##Union() { \
new (const_cast<type*>(&var.data)) type(__VA_ARGS__); \
}
PskType type
void init()
const char * name
Definition: http_parser.c:437
__attribute__((noinline, noclone)) VirtualBase *makeVirtual()

Definition at line 51 of file UnionBasedStatic.h.

#define DEFINE_UNION_STATIC_CONSTRUCTOR_IMPL (   type,
  name,
  var 
)
Value:
__attribute__((__constructor__)) \
void init##name##Union() { \
new (const_cast<type*>(&var.data)) type(); \
}
PskType type
void init()
const char * name
Definition: http_parser.c:437
__attribute__((noinline, noclone)) VirtualBase *makeVirtual()

Definition at line 45 of file UnionBasedStatic.h.

#define DEFINE_UNION_STATIC_NO_INIT (   type,
  name,
  var 
)    DEFINE_UNION_STATIC_UNION_IMPL(type, name, var)

Definition at line 70 of file UnionBasedStatic.h.

#define DEFINE_UNION_STATIC_UNION_CONST_ARRAY_IMPL (   type,
  size,
  name,
  var 
)    DECLARE_UNION_STATIC_UNION_ARRAY_IMPL(type, size, name) const var;

Definition at line 40 of file UnionBasedStatic.h.

#define DEFINE_UNION_STATIC_UNION_CONST_IMPL (   type,
  name,
  var 
)    DECLARE_UNION_STATIC_UNION_IMPL(type, name) const var;

Definition at line 37 of file UnionBasedStatic.h.

#define DEFINE_UNION_STATIC_UNION_IMPL (   type,
  name,
  var 
)    DECLARE_UNION_STATIC_UNION_IMPL(type, name) var;

Definition at line 34 of file UnionBasedStatic.h.

#define IMPLEMENT_DECLARED_UNION_STATIC (   type,
  unionName,
  name,
  var 
)
Value:
unionName##Union var; \
PskType type
const char * name
Definition: http_parser.c:437
#define DEFINE_UNION_STATIC_CONSTRUCTOR_ARG_IMPL(type, name, var,...)

Definition at line 102 of file UnionBasedStatic.h.

#define IMPLEMENT_DECLARED_UNION_STATIC_ARGS (   type,
  unionName,
  name,
  var,
  ... 
)
Value:
unionName##Union var; \
PskType type
const char * name
Definition: http_parser.c:437
#define DEFINE_UNION_STATIC_CONSTRUCTOR_ARG_IMPL(type, name, var,...)

Definition at line 106 of file UnionBasedStatic.h.