Caffa  1.1.0
C++ Application Framework for Embedded Systems with introspection
Classes | Functions | Variables
caffa Namespace Reference

Main Caffa namespace. More...

Classes

class  AbstractSignal
 
class  AppEnum
 
struct  AppInfo
 Basic Application Information. More...
 
class  Application
 
class  ChildArrayField
 Field class to handle a collection of Object derived pointers The ChildArrayField will take over ownership of any object assigned to it. More...
 
class  ChildArrayFieldAccessor
 
class  ChildArrayFieldDirectStorageAccessor
 
class  ChildArrayFieldHandle
 A non-templated base interface for ChildArrayField<DataType*> Used so we can have pointers to any ChildArrayField. More...
 
class  ChildField
 Field class to handle a pointer to a caffa Object. More...
 
class  ChildFieldAccessor
 
class  ChildFieldBaseHandle
 
class  ChildFieldDirectStorageAccessor
 
class  ChildFieldHandle
 
class  ConstObjectCollector
 
class  ConstSessionMaintainer
 
class  DataField
 
class  DataFieldAccessor
 Abstract but typed data field accessor. Inherit to create different storage mechanisms. More...
 
class  DataFieldAccessorInterface
 Basic non-typed interface which exists only to allow non-typed pointers. More...
 
class  DataFieldDirectStorageAccessor
 Direct storage accessor, which stores data values in local memory. More...
 
class  DefaultObjectFactory
 
class  Document
 
class  Editor
 
class  Factory
 
class  Field
 
class  FieldCapability
 
class  FieldDocumentationCapability
 
class  FieldHandle
 Base class for all fields, making it possible to handle them generically. More...
 
class  FieldInitHelper
 
class  FieldJsonCap
 
class  FieldJsonCap< ChildArrayField< DataType * > >
 
class  FieldJsonCap< ChildField< DataType * > >
 
class  FieldJsonCapability
 
class  FieldProxyAccessor
 
class  FieldScriptingCapability
 
class  FieldValidator
 Used to validate the value of data fields Implementations need the the validate method as well as readFromJson and writeToJson. More...
 
class  FieldValidatorInterface
 An abstract field validator interface for validating field values. More...
 
class  GetterMethodCB
 
class  GetValueInterface
 
class  Inspector
 
struct  is_shared_ptr
 
struct  is_shared_ptr< std::shared_ptr< T > >
 
struct  is_vector
 
struct  is_vector< std::vector< T, A > >
 
class  JsonSerializer
 
class  Method
 
class  Method< Result(ArgTypes...)>
 
class  MethodAccessorInterface
 
class  MethodHandle
 
class  Object
 
class  ObjectAttribute
 
class  ObjectCapability
 
class  ObjectCollector
 
class  ObjectFactory
 
class  ObjectHandle
 
class  ObjectPerformer
 
struct  PortableDataType
 
struct  PortableDataType< AppEnum< EnumType > >
 
struct  PortableDataType< bool >
 
struct  PortableDataType< DataType >
 
struct  PortableDataType< double >
 
struct  PortableDataType< float >
 
struct  PortableDataType< std::chrono::microseconds >
 
struct  PortableDataType< std::chrono::milliseconds >
 
struct  PortableDataType< std::chrono::nanoseconds >
 
struct  PortableDataType< std::chrono::seconds >
 
struct  PortableDataType< std::chrono::steady_clock::time_point >
 
struct  PortableDataType< std::string >
 
struct  PortableDataType< std::vector< DataType > >
 
struct  PortableDataType< void >
 
class  RangeValidator
 Simple range validator. More...
 
class  Serializer
 
class  Session
 Abstract class representing an application session. More...
 
class  SessionMaintainer
 
class  SetterMethodCB
 
class  SetValueInterface
 
class  Signal
 
class  SignalEmitter
 
class  SignalObserver
 
class  TypedField
 
class  UuidGenerator
 

Functions

template<typename Enum >
std::istream & operator>> (std::istream &str, caffa::AppEnum< Enum > &appEnum)
 
template<typename Enum >
std::ostream & operator<< (std::ostream &str, const caffa::AppEnum< Enum > &appEnum)
 
template<typename Enum >
void to_json (nlohmann::json &jsonValue, const AppEnum< Enum > &appEnum)
 
template<typename Enum >
void from_json (const nlohmann::json &jsonValue, AppEnum< Enum > &appEnum)
 
void to_json (nlohmann::json &jsonValue, const AppInfo &appInfo)
 
void from_json (const nlohmann::json &jsonValue, AppInfo &appInfo)
 
template<typename FieldType >
void AddIoCapabilityToField (FieldType *field)
 
void to_json (nlohmann::json &jsonValue, const ObjectHandle &object)
 
void from_json (const nlohmann::json &jsonValue, ObjectHandle &object)
 
void to_json (nlohmann::json &jsonValue, std::shared_ptr< const ObjectHandle > object)
 
void from_json (const nlohmann::json &jsonValue, std::shared_ptr< ObjectHandle > object)
 

Variables

template<typename T >
concept enum_type = std::is_enum<T>::value
 
template<typename DataTypePtr >
concept is_pointer = std::is_pointer<DataTypePtr>::value
 
template<typename T >
concept DerivesFromObjectHandle = std::is_base_of<ObjectHandle, T>::value
 
template<typename T >
concept IsSharedPtr = is_shared_ptr<T>::value
 
template<typename T >
concept IsVector = is_vector<T>::value
 

Detailed Description

Main Caffa namespace.

Function Documentation

◆ operator>>()

template<typename Enum >
std::istream& caffa::operator>> ( std::istream &  str,
caffa::AppEnum< Enum > &  appEnum 
)

Implementation of stream operators to make Field<AppEnum<> > work smoothly Assumes that the stream ends at the end of the enum label