Apache Mesos
|
Namespaces | |
firewall | |
grpc | |
http | |
http_parsing | |
ID | |
inject | |
internal | |
io | |
metrics | |
mime | |
network | |
windows | |
Classes | |
struct | _Deferred |
class | AsyncExecutor |
class | Clock |
Provides timers. More... | |
class | ClockTestEventListener |
struct | Continue |
class | ControlFlow |
class | CountDownLatch |
class | DataDecoder |
class | DataEncoder |
struct | Deferred |
struct | DispatchEvent |
class | Encoder |
struct | ErrnoFailure |
struct | Event |
struct | EventConsumer |
class | EventLoop |
class | EventQueue |
struct | EventVisitor |
class | Executor |
struct | ExitedEvent |
struct | Failure |
class | FileEncoder |
class | Filter |
class | FilterTestEventListener |
class | Future |
class | Gate |
class | Help |
struct | HttpEvent |
class | HttpProxy |
class | HttpResponseEncoder |
class | Latch |
class | Logging |
struct | LoopIndex |
class | MemoryProfiler |
struct | Message |
class | MessageEncoder |
struct | MessageEvent |
class | MockFilter |
class | MpscLinkedQueue |
class | Mutex |
class | Once |
class | Owned |
struct | PID |
A "process identifier" used to uniquely identify a process when dispatching messages. More... | |
class | Process |
class | ProcessBase |
class | ProcessReference |
class | Profiler |
class | Promise |
class | Queue |
class | RateLimiter |
class | RateLimiterProcess |
class | ReadWriteLock |
ReadWriteLock is a lock that allows concurrent reads and exclusive writes. More... | |
class | ResponseDecoder |
class | RFC1123 |
class | RFC3339 |
class | RunQueue |
class | Sequence |
class | SequenceProcess |
class | Shared |
class | SocketManager |
class | StateMachine |
struct | Statistics |
class | StreamingRequestDecoder |
class | StreamingResponseDecoder |
class | Subprocess |
Represents a fork() exec()ed subprocess. More... | |
class | System |
struct | TerminateEvent |
class | TestsFilter |
class | Time |
class | Timeout |
class | Timer |
struct | TimeSeries |
struct | UndiscardableDecorator |
struct | UPID |
An "untyped" PID , used to encapsulate the process ID for lower-layer abstractions (eg, when receiving incoming requests) in the dispatching mechanism. More... | |
class | WeakFuture |
Typedefs | |
using | InputFileDescriptors = Subprocess::IO::InputFileDescriptors |
using | OutputFileDescriptors = Subprocess::IO::OutputFileDescriptors |
Enumerations | |
enum | EventLoopLogicFlow { ALLOW_SHORT_CIRCUIT, DISALLOW_SHORT_CIRCUIT } |
Functions | |
Future< Nothing > | after (const Duration &duration) |
template<typename F > | |
Future< typename result_of< F()>::type > | async (const F &f, typename std::enable_if<!std::is_void< typename result_of< F()>::type >::value >::type *=nullptr) |
template<typename F > | |
Future< Nothing > | async (const F &f, typename std::enable_if< std::is_void< typename result_of< F()>::type >::value >::type *=nullptr) |
REPEAT_FROM_TO (1, 13, TEMPLATE, _) class AsyncExecutorProcess | |
template<typename T > | |
Future< std::vector< T > > | collect (const std::vector< Future< T >> &futures) |
template<typename... Ts> | |
Future< std::tuple< Ts... > > | collect (const Future< Ts > &...futures) |
template<typename T > | |
Future< std::vector< Future< T > > > | await (const std::vector< Future< T >> &futures) |
template<typename... Ts> | |
Future< std::tuple< Future< Ts >... > > | await (const Future< Ts > &...futures) |
template<typename T > | |
Future< Future< T > > | await (const Future< T > &future) |
template<typename T > | |
Deferred< void()> | defer (const PID< T > &pid, void(T::*method)()) |
template<typename T > | |
Deferred< void()> | defer (const Process< T > &process, void(T::*method)()) |
template<typename T > | |
Deferred< void()> | defer (const Process< T > *process, void(T::*method)()) |
T Deferred< Future< R >)> | defer (const PID< T > &pid, Future< R >(T::*method)()) |
template<typename R , typename T > | |
Deferred< Future< R >)> | defer (const Process< T > &process, Future< R >(T::*method)()) |
template<typename R , typename T > | |
Deferred< Future< R >)> | defer (const Process< T > *process, Future< R >(T::*method)()) |
T Deferred< Future< R >)> | defer (const PID< T > &pid, R(T::*method)()) |
template<typename R , typename T > | |
Deferred< Future< R >)> | defer (const Process< T > &process, R(T::*method)()) |
template<typename R , typename T > | |
Deferred< Future< R >)> | defer (const Process< T > *process, R(T::*method)()) |
template<typename F > | |
_Deferred< F > | defer (F &&f) |
template<typename T > | |
Timer | delay (const Duration &duration, const PID< T > &pid, void(T::*method)()) |
template<typename T > | |
Timer | delay (const Duration &duration, const Process< T > &process, void(T::*method)()) |
template<typename T > | |
Timer | delay (const Duration &duration, const Process< T > *process, void(T::*method)()) |
template<typename T > | |
void | dispatch (const PID< T > &pid, void(T::*method)()) |
template<typename T > | |
void | dispatch (const Process< T > &process, void(T::*method)()) |
template<typename T > | |
void | dispatch (const Process< T > *process, void(T::*method)()) |
T Future< R > | dispatch (const PID< T > &pid, Future< R >(T::*method)()) |
template<typename R , typename T > | |
Future< R > | dispatch (const Process< T > &process, Future< R >(T::*method)()) |
template<typename R , typename T > | |
Future< R > | dispatch (const Process< T > *process, Future< R >(T::*method)()) |
T Future< R > | dispatch (const PID< T > &pid, R(T::*method)()) |
template<typename R , typename T > | |
Future< R > | dispatch (const Process< T > &process, R(T::*method)()) |
template<typename R , typename T > | |
Future< R > | dispatch (const Process< T > *process, R(T::*method)()) |
void | filter (Filter *filter) |
template<typename T > | |
Future< Future< T > > | select (const std::set< Future< T >> &futures) |
template<typename Futures > | |
void | discard (const Futures &futures) |
template<typename T > | |
std::ostream & | operator<< (std::ostream &stream, const Future< T > &future) |
template<typename T > | |
void | setPromises (std::set< Promise< T > * > *promises, const T &t) |
template<typename T > | |
void | failPromises (std::set< Promise< T > * > *promises, const std::string &failure) |
template<typename T > | |
void | discardPromises (std::set< Promise< T > * > *promises) |
template<typename T > | |
void | discardPromises (std::set< Promise< T > * > *promises, const Future< T > &future) |
template<typename T > | |
Future< T > | undiscardable (const Future< T > &future) |
template<typename F , typename std::enable_if< !is_specialization_of< typename std::decay< F >::type, Future >::value, int >::type = 0> | |
UndiscardableDecorator< typename std::decay< F >::type > | undiscardable (F &&f) |
MATCHER_P2 (MessageMatcher, name, from,"") | |
MATCHER_P3 (UnionMessageMatcher, message, unionType, from,"") | |
MATCHER_P (DispatchMatcher, method,"") | |
MATCHER_P (ExitedMatcher, from,"") | |
MATCHER_P3 (HttpMatcher, message, path, deserializer,"") | |
MATCHER_P4 (UnionHttpMatcher, message, unionType, path, deserializer,"") | |
template<typename Message , typename Path , typename Deserializer > | |
Future< http::Request > | FutureHttpRequest (Message message, Path path, Deserializer deserializer, bool drop=false) |
template<typename Message , typename UnionType , typename Path , typename Deserializer > | |
Future< http::Request > | FutureUnionHttpRequest (Message message, UnionType unionType, Path path, Deserializer deserializer, bool drop=false) |
template<typename Name , typename From , typename To > | |
Future< Message > | FutureMessage (Name name, From from, To to, bool drop=false) |
template<typename Message , typename UnionType , typename From , typename To > | |
Future< process::Message > | FutureUnionMessage (Message message, UnionType unionType, From from, To to, bool drop=false) |
template<typename PID , typename Method > | |
Future< Nothing > | FutureDispatch (PID pid, Method method, bool drop=false) |
template<typename Name , typename From , typename To > | |
void | DropMessages (Name name, From from, To to) |
template<typename Message , typename UnionType , typename From , typename To > | |
void | DropUnionMessages (Message message, UnionType unionType, From from, To to) |
template<typename Message , typename Path , typename Deserializer > | |
void | DropHttpRequests (Message message, Path path, Deserializer deserializer, bool drop=false) |
template<typename Message , typename UnionType , typename Path , typename Deserializer > | |
void | DropUnionHttpRequests (Message message, UnionType unionType, Path path, Deserializer deserializer, bool drop=false) |
template<typename Message , typename Path , typename Deserializer > | |
void | ExpectNoFutureHttpRequests (Message message, Path path, Deserializer deserializer, bool drop=false) |
template<typename Message , typename UnionType , typename Path , typename Deserializer > | |
void | ExpectNoFutureUnionHttpRequests (Message message, UnionType unionType, Path path, Deserializer deserializer, bool drop=false) |
template<typename Name , typename From , typename To > | |
void | ExpectNoFutureMessages (Name name, From from, To to) |
template<typename Message , typename UnionType , typename From , typename To > | |
void | ExpectNoFutureUnionMessages (Message message, UnionType unionType, From from, To to) |
template<typename PID , typename Method > | |
void | DropDispatches (PID pid, Method method) |
template<typename PID , typename Method > | |
void | ExpectNoFutureDispatches (PID pid, Method method) |
template<typename From , typename To > | |
Future< Nothing > | FutureExited (From from, To to, bool drop=false) |
std::string | HELP (const std::string &tldr, const Option< std::string > &description=None(), const Option< std::string > &authentication=None(), const Option< std::string > &authorization=None(), const Option< std::string > &references=None()) |
std::string | USAGE (const std::string &usage) |
std::string | TLDR (const std::string &tldr) |
template<typename... T> | |
std::string | DESCRIPTION (T &&...args) |
std::string | AUTHENTICATION (bool required) |
template<typename... T> | |
std::string | AUTHORIZATION (T &&...args) |
template<typename... T> | |
std::string | REFERENCES (T &&...args) |
template<typename Iterate , typename Body , typename T = typename internal::unwrap<typename result_of<Iterate()>::type>::type, typename CF = typename internal::unwrap<typename result_of<Body(T)>::type>::type, typename V = typename CF::ValueType> | |
Future< V > | loop (const Option< UPID > &pid, Iterate &&iterate, Body &&body) |
template<typename Iterate , typename Body , typename T = typename internal::unwrap<typename result_of<Iterate()>::type>::type, typename CF = typename internal::unwrap<typename result_of<Body(T)>::type>::type, typename V = typename CF::ValueType> | |
Future< V > | loop (Iterate &&iterate, Body &&body) |
template<typename T > | |
ControlFlow< typename std::decay< T >::type >::Break | Break (T &&t) |
ControlFlow< Nothing >::Break | Break () |
std::ostream & | operator<< (std::ostream &stream, const UPID::ID &id) |
bool | operator== (const std::string &s, const UPID::ID &id) |
bool | operator!= (const std::string &s, const UPID::ID &id) |
std::string | operator+ (const UPID::ID &id, const std::string &s) |
std::string | operator+ (const UPID::ID &id, std::string &&s) |
std::string | operator+ (const std::string &s, const UPID::ID &id) |
std::string | operator+ (std::string &&s, const UPID::ID &id) |
std::ostream & | operator<< (std::ostream &, const UPID &) |
std::istream & | operator>> (std::istream &, UPID &) |
bool | initialize (const Option< std::string > &delegate=None(), const Option< std::string > &readwriteAuthenticationRealm=None(), const Option< std::string > &readonlyAuthenticationRealm=None()) |
Initialize the library. More... | |
void | finalize (bool finalize_wsa=false) |
Clean up the library. More... | |
std::string | absolutePath (const std::string &path) |
Get the request absolutePath path with delegate prefix. More... | |
network::inet::Address | address () |
Returns the socket address associated with this instance of the library. More... | |
PID< Logging > | logging () |
Return the PID associated with the global logging process. More... | |
long | workers () |
Returns the number of worker threads the library has created. More... | |
UPID | spawn (ProcessBase *process, bool manage=false) |
Spawn a new process. More... | |
UPID | spawn (ProcessBase &process, bool manage=false) |
template<typename T > | |
PID< T > | spawn (T *t, bool manage=false) |
template<typename T > | |
PID< T > | spawn (T &t, bool manage=false) |
void | terminate (const UPID &pid, bool inject=true) |
Sends a TerminateEvent to the given process. More... | |
void | terminate (const ProcessBase &process, bool inject) |
Sends a TerminateEvent to the given process. More... | |
void | terminate (const ProcessBase *process, bool inject) |
Sends a TerminateEvent to the given process. More... | |
bool | wait (const UPID &pid, const Duration &duration=Seconds(-1)) |
Wait for the process to exit for no more than the specified seconds. More... | |
bool | wait (const ProcessBase &process, const Duration &duration) |
Wait for the process to exit for no more than the specified seconds. More... | |
bool | wait (const ProcessBase *process, const Duration &duration) |
Wait for the process to exit for no more than the specified seconds. More... | |
void | post (const UPID &to, const std::string &name, const char *data=nullptr, size_t length=0) |
Sends a message with data without a return address. More... | |
void | post (const UPID &from, const UPID &to, const std::string &name, const char *data=nullptr, size_t length=0) |
void | post (const process::UPID &to, const google::protobuf::Message &message) |
void | post (const process::UPID &from, const process::UPID &to, const google::protobuf::Message &message) |
Duration | MAX_REAP_INTERVAL () |
Future< Option< int > > | reap (pid_t pid) |
template<typename R > | |
Future< R > | run (R(*method)()) |
Try< Subprocess > | subprocess (const std::string &path, std::vector< std::string > argv, const Subprocess::IO &in=Subprocess::FD(STDIN_FILENO), const Subprocess::IO &out=Subprocess::FD(STDOUT_FILENO), const Subprocess::IO &err=Subprocess::FD(STDERR_FILENO), const flags::FlagsBase *flags=nullptr, const Option< std::map< std::string, std::string >> &environment=None(), const Option< lambda::function< pid_t(const lambda::function< int()> &)>> &clone=None(), const std::vector< Subprocess::ParentHook > &parent_hooks={}, const std::vector< Subprocess::ChildHook > &child_hooks={}, const std::vector< int_fd > &whitelist_fds={}) |
Forks a subprocess and execs the specified 'path' with the specified 'argv', redirecting stdin, stdout, and stderr as specified by 'in', 'out', and 'err' respectively. More... | |
Try< Subprocess > | subprocess (const std::string &command, const Subprocess::IO &in=Subprocess::FD(STDIN_FILENO), const Subprocess::IO &out=Subprocess::FD(STDOUT_FILENO), const Subprocess::IO &err=Subprocess::FD(STDERR_FILENO), const Option< std::map< std::string, std::string >> &environment=None(), const Option< lambda::function< pid_t(const lambda::function< int()> &)>> &clone=None(), const std::vector< Subprocess::ParentHook > &parent_hooks={}, const std::vector< Subprocess::ChildHook > &child_hooks={}, const std::vector< int_fd > &whitelist_fds={}) |
Overload of 'subprocess' for launching a shell command, i.e., 'sh -c command'. More... | |
std::ostream & | operator<< (std::ostream &stream, const RFC1123 &formatter) |
std::ostream & | operator<< (std::ostream &stream, const RFC3339 &formatter) |
std::ostream & | operator<< (std::ostream &stream, const Time &time) |
LoopIndex | get_loop (int_fd fd) |
template<typename T > | |
void | _run_in_event_loop (struct ev_loop *loop, const lambda::function< Future< T >(struct ev_loop *)> &f, const Owned< Promise< T >> &promise) |
template<typename T > | |
Future< T > | run_in_event_loop (const LoopIndex loop_index, const lambda::function< Future< T >(struct ev_loop *)> &f) |
void | run_in_event_loop (const lambda::function< void()> &f, EventLoopLogicFlow event_loop_logic_flow=ALLOW_SHORT_CIRCUIT) |
Variables | |
F && | f |
thread_local Executor * | _executor_ |
constexpr char | READONLY_HTTP_AUTHENTICATION_REALM [] = "libprocess-readonly" |
constexpr char | READWRITE_HTTP_AUTHENTICATION_REALM [] = "libprocess-readwrite" |
Duration | TEST_AWAIT_TIMEOUT |
thread_local ProcessBase * | __process__ |
constexpr Duration | TIME_SERIES_WINDOW = Weeks(2) |
constexpr size_t | TIME_SERIES_CAPACITY = 1000 |
const uint32_t | GZIP_MINIMUM_BODY_LENGTH = 1024 |
struct ev_loop ** | loops |
ev_async * | async_watchers |
std::mutex * | functions_mutexes |
std::queue< lambda::function< void()> > * | functions |
thread_local struct ev_loop * | _in_event_loop_ |
event_base * | base |
SocketManager * | socket_manager |
windows::EventLoop * | libwinio_loop |
using process::InputFileDescriptors = typedef Subprocess::IO::InputFileDescriptors |
using process::OutputFileDescriptors = typedef Subprocess::IO::OutputFileDescriptors |
void process::_run_in_event_loop | ( | struct ev_loop * | loop, |
const lambda::function< Future< T >(struct ev_loop *)> & | f, | ||
const Owned< Promise< T >> & | promise | ||
) |
std::string process::absolutePath | ( | const std::string & | path | ) |
Get the request absolutePath path with delegate prefix.
network::inet::Address process::address | ( | ) |
Returns the socket address associated with this instance of the library.
Future< typename result_of< F()>::type > process::async | ( | const F & | f, |
typename std::enable_if<!std::is_void< typename result_of< F()>::type >::value >::type * | = nullptr |
||
) |
Future< Nothing > process::async | ( | const F & | f, |
typename std::enable_if< std::is_void< typename result_of< F()>::type >::value >::type * | = nullptr |
||
) |
|
inline |
|
inline |
|
inline |
Future< std::tuple< Future< Ts >... > > process::await | ( | const Future< Ts > &... | futures | ) |
ControlFlow<typename std::decay<T>::type>::Break process::Break | ( | T && | t | ) |
|
inline |
|
inline |
Future< std::tuple< Ts... > > process::collect | ( | const Future< Ts > &... | futures | ) |
Deferred<void()> process::defer | ( | const Process< T > & | process, |
void(T::*)() | method | ||
) |
Deferred<void()> process::defer | ( | const Process< T > * | process, |
void(T::*)() | method | ||
) |
Deferred<Future<R>)> process::defer | ( | const Process< T > & | process, |
Future< R >(T::*)() | method | ||
) |
Deferred<Future<R>)> process::defer | ( | const Process< T > * | process, |
Future< R >(T::*)() | method | ||
) |
Deferred<Future<R>)> process::defer | ( | const Process< T > & | process, |
R(T::*)() | method | ||
) |
Deferred<Future<R>)> process::defer | ( | const Process< T > * | process, |
R(T::*)() | method | ||
) |
_Deferred<F> process::defer | ( | F && | f | ) |
Timer process::delay | ( | const Duration & | duration, |
const PID< T > & | pid, | ||
void(T::*)() | method | ||
) |
Timer process::delay | ( | const Duration & | duration, |
const Process< T > & | process, | ||
void(T::*)() | method | ||
) |
Timer process::delay | ( | const Duration & | duration, |
const Process< T > * | process, | ||
void(T::*)() | method | ||
) |
|
inline |
void process::discard | ( | const Futures & | futures | ) |
void process::discardPromises | ( | std::set< Promise< T > * > * | promises | ) |
void process::discardPromises | ( | std::set< Promise< T > * > * | promises, |
const Future< T > & | future | ||
) |
void process::dispatch | ( | const PID< T > & | pid, |
void(T::*)() | method | ||
) |
void process::dispatch | ( | const Process< T > & | process, |
void(T::*)() | method | ||
) |
void process::dispatch | ( | const Process< T > * | process, |
void(T::*)() | method | ||
) |
Future<R> process::dispatch | ( | const Process< T > & | process, |
Future< R >(T::*)() | method | ||
) |
Future<R> process::dispatch | ( | const Process< T > * | process, |
Future< R >(T::*)() | method | ||
) |
Future<R> process::dispatch | ( | const Process< T > & | process, |
R(T::*)() | method | ||
) |
Future<R> process::dispatch | ( | const Process< T > * | process, |
R(T::*)() | method | ||
) |
void process::DropDispatches | ( | PID | pid, |
Method | method | ||
) |
void process::DropHttpRequests | ( | Message | message, |
Path | path, | ||
Deserializer | deserializer, | ||
bool | drop = false |
||
) |
void process::DropMessages | ( | Name | name, |
From | from, | ||
To | to | ||
) |
void process::DropUnionHttpRequests | ( | Message | message, |
UnionType | unionType, | ||
Path | path, | ||
Deserializer | deserializer, | ||
bool | drop = false |
||
) |
void process::DropUnionMessages | ( | Message | message, |
UnionType | unionType, | ||
From | from, | ||
To | to | ||
) |
void process::ExpectNoFutureDispatches | ( | PID | pid, |
Method | method | ||
) |
void process::ExpectNoFutureHttpRequests | ( | Message | message, |
Path | path, | ||
Deserializer | deserializer, | ||
bool | drop = false |
||
) |
void process::ExpectNoFutureMessages | ( | Name | name, |
From | from, | ||
To | to | ||
) |
void process::ExpectNoFutureUnionHttpRequests | ( | Message | message, |
UnionType | unionType, | ||
Path | path, | ||
Deserializer | deserializer, | ||
bool | drop = false |
||
) |
void process::ExpectNoFutureUnionMessages | ( | Message | message, |
UnionType | unionType, | ||
From | from, | ||
To | to | ||
) |
void process::failPromises | ( | std::set< Promise< T > * > * | promises, |
const std::string & | failure | ||
) |
void process::filter | ( | Filter * | filter | ) |
void process::finalize | ( | bool | finalize_wsa = false | ) |
Clean up the library.
finalize_wsa | Whether the Windows socket stack should be cleaned up for the entire process. Has no effect outside of Windows. |
Future<Nothing> process::FutureDispatch | ( | PID | pid, |
Method | method, | ||
bool | drop = false |
||
) |
Future<Nothing> process::FutureExited | ( | From | from, |
To | to, | ||
bool | drop = false |
||
) |
Future<http::Request> process::FutureHttpRequest | ( | Message | message, |
Path | path, | ||
Deserializer | deserializer, | ||
bool | drop = false |
||
) |
Future<Message> process::FutureMessage | ( | Name | name, |
From | from, | ||
To | to, | ||
bool | drop = false |
||
) |
Future<http::Request> process::FutureUnionHttpRequest | ( | Message | message, |
UnionType | unionType, | ||
Path | path, | ||
Deserializer | deserializer, | ||
bool | drop = false |
||
) |
Future<process::Message> process::FutureUnionMessage | ( | Message | message, |
UnionType | unionType, | ||
From | from, | ||
To | to, | ||
bool | drop = false |
||
) |
std::string process::HELP | ( | const std::string & | tldr, |
const Option< std::string > & | description = None() , |
||
const Option< std::string > & | authentication = None() , |
||
const Option< std::string > & | authorization = None() , |
||
const Option< std::string > & | references = None() |
||
) |
bool process::initialize | ( | const Option< std::string > & | delegate = None() , |
const Option< std::string > & | readwriteAuthenticationRealm = None() , |
||
const Option< std::string > & | readonlyAuthenticationRealm = None() |
||
) |
Initialize the library.
NOTE: libprocess
uses Google's glog
and you can specify options for it (e.g., a logging directory) via environment variables.
delegate | Process to receive root HTTP requests. |
readwriteAuthenticationRealm | The authentication realm that read-write libprocess-level HTTP endpoints will be installed under, if any. If this realm is not specified, read-write endpoints will be installed without authentication. |
readonlyAuthenticationRealm | The authentication realm that read-only libprocess-level HTTP endpoints will be installed under, if any. If this realm is not specified, read-only endpoints will be installed without authentication. |
true
if this was the first invocation of process::initialize()
, or false
if it was not the first invocation.Future< V > process::loop | ( | const Option< UPID > & | pid, |
Iterate && | iterate, | ||
Body && | body | ||
) |
Future<V> process::loop | ( | Iterate && | iterate, |
Body && | body | ||
) |
process::MATCHER_P | ( | DispatchMatcher | , |
method | , | ||
"" | |||
) |
process::MATCHER_P | ( | ExitedMatcher | , |
from | , | ||
"" | |||
) |
process::MATCHER_P2 | ( | MessageMatcher | , |
name | , | ||
from | , | ||
"" | |||
) |
process::MATCHER_P3 | ( | UnionMessageMatcher | , |
message | , | ||
unionType | , | ||
from | , | ||
"" | |||
) |
process::MATCHER_P3 | ( | HttpMatcher | , |
message | , | ||
path | , | ||
deserializer | , | ||
"" | |||
) |
process::MATCHER_P4 | ( | UnionHttpMatcher | , |
message | , | ||
unionType | , | ||
path | , | ||
deserializer | , | ||
"" | |||
) |
Duration process::MAX_REAP_INTERVAL | ( | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
std::ostream& process::operator<< | ( | std::ostream & | stream, |
const RFC1123 & | formatter | ||
) |
std::ostream& process::operator<< | ( | std::ostream & | stream, |
const RFC3339 & | formatter | ||
) |
|
inline |
|
inline |
std::ostream& process::operator<< | ( | std::ostream & | , |
const UPID & | |||
) |
std::ostream& process::operator<< | ( | std::ostream & | stream, |
const Future< T > & | future | ||
) |
|
inline |
std::istream& process::operator>> | ( | std::istream & | , |
UPID & | |||
) |
|
inline |
|
inline |
void process::post | ( | const UPID & | to, |
const std::string & | name, | ||
const char * | data = nullptr , |
||
size_t | length = 0 |
||
) |
Sends a message with data without a return address.
to | Receiver of the message. |
name | Name of the message. |
data | Data to send (gets copied). |
length | Length of data. |
void process::post | ( | const UPID & | from, |
const UPID & | to, | ||
const std::string & | name, | ||
const char * | data = nullptr , |
||
size_t | length = 0 |
||
) |
|
inline |
process::REPEAT_FROM_TO | ( | 1 | , |
13 | , | ||
TEMPLATE | , | ||
_ | |||
) |
Future<R> process::run | ( | R(*)() | method | ) |
void process::run_in_event_loop | ( | const lambda::function< void()> & | f, |
EventLoopLogicFlow | event_loop_logic_flow = ALLOW_SHORT_CIRCUIT |
||
) |
Future<T> process::run_in_event_loop | ( | const LoopIndex | loop_index, |
const lambda::function< Future< T >(struct ev_loop *)> & | f | ||
) |
void process::setPromises | ( | std::set< Promise< T > * > * | promises, |
const T & | t | ||
) |
UPID process::spawn | ( | ProcessBase * | process, |
bool | manage = false |
||
) |
Spawn a new process.
process | Process to be spawned. |
manage | Whether process should get deleted by the runtime after terminating. |
|
inline |
PID<T> process::spawn | ( | T * | t, |
bool | manage = false |
||
) |
PID<T> process::spawn | ( | T & | t, |
bool | manage = false |
||
) |
Try<Subprocess> process::subprocess | ( | const std::string & | path, |
std::vector< std::string > | argv, | ||
const Subprocess::IO & | in = Subprocess::FD(STDIN_FILENO) , |
||
const Subprocess::IO & | out = Subprocess::FD(STDOUT_FILENO) , |
||
const Subprocess::IO & | err = Subprocess::FD(STDERR_FILENO) , |
||
const flags::FlagsBase * | flags = nullptr , |
||
const Option< std::map< std::string, std::string >> & | environment = None() , |
||
const Option< lambda::function< pid_t(const lambda::function< int()> &)>> & | clone = None() , |
||
const std::vector< Subprocess::ParentHook > & | parent_hooks = {} , |
||
const std::vector< Subprocess::ChildHook > & | child_hooks = {} , |
||
const std::vector< int_fd > & | whitelist_fds = {} |
||
) |
Forks a subprocess and execs the specified 'path' with the specified 'argv', redirecting stdin, stdout, and stderr as specified by 'in', 'out', and 'err' respectively.
path | Relative or absolute path in the filesytem to the executable. |
argv | Argument vector to pass to exec. |
in | Redirection specification for stdin. |
out | Redirection specification for stdout. |
err | Redirection specification for stderr. |
flags | Flags to be stringified and appended to 'argv'. |
environment | Environment variables to use for the new subprocess or if None (the default) then the new subprocess will inherit the environment of the current process. |
clone | Function to be invoked in order to fork/clone the subprocess. |
parent_hooks | Hooks that will be executed in the parent before the child execs. |
child_hooks | Hooks that will be executed in the child before the child execs but after parent_hooks have executed. |
|
inline |
Overload of 'subprocess' for launching a shell command, i.e., 'sh -c command'.
Currently, we do not support flags for shell command variants due to the complexity involved in escaping quotes in flags.
command | Shell command to execute. |
in | Redirection specification for stdin. |
out | Redirection specification for stdout. |
err | Redirection specification for stderr. |
environment | Environment variables to use for the new subprocess or if None (the default) then the new subprocess will inherit the environment of the current process. |
clone | Function to be invoked in order to fork/clone the subprocess. |
parent_hooks | Hooks that will be executed in the parent before the child execs. |
child_hooks | Hooks that will be executed in the child before the child execs but after parent_hooks have executed. |
void process::terminate | ( | const UPID & | pid, |
bool | inject = true |
||
) |
Sends a TerminateEvent
to the given process.
NOTE: currently, terminate only works for local processes (in the future we plan to make this more explicit via the use of a PID
instead of a UPID
).
pid | The process to terminate. |
inject | Whether the message should be injected ahead of all other messages queued up for that process. |
|
inline |
Sends a TerminateEvent
to the given process.
NOTE: currently, terminate only works for local processes (in the future we plan to make this more explicit via the use of a PID
instead of a UPID
).
pid | The process to terminate. |
inject | Whether the message should be injected ahead of all other messages queued up for that process. |
|
inline |
Sends a TerminateEvent
to the given process.
NOTE: currently, terminate only works for local processes (in the future we plan to make this more explicit via the use of a PID
instead of a UPID
).
pid | The process to terminate. |
inject | Whether the message should be injected ahead of all other messages queued up for that process. |
|
inline |
UndiscardableDecorator<typename std::decay<F>::type> process::undiscardable | ( | F && | f | ) |
|
inline |
|
inline |
|
inline |
long process::workers | ( | ) |
Returns the number of worker threads the library has created.
A worker thread is a thread that runs a process (i.e., calls ProcessBase::serve
).
thread_local ProcessBase* process::__process__ |
thread_local Executor* process::_executor_ |
thread_local bool * process::_in_event_loop_ |
ev_async* process::async_watchers |
event_base* process::base |
F&& process::f |
std::queue<lambda::function<void()> >* process::functions |
std::mutex* process::functions_mutexes |
const uint32_t process::GZIP_MINIMUM_BODY_LENGTH = 1024 |
windows::EventLoop* process::libwinio_loop |
struct ev_loop** process::loops |
constexpr char process::READONLY_HTTP_AUTHENTICATION_REALM[] = "libprocess-readonly" |
constexpr char process::READWRITE_HTTP_AUTHENTICATION_REALM[] = "libprocess-readwrite" |
SocketManager* process::socket_manager |
Duration process::TEST_AWAIT_TIMEOUT |
constexpr size_t process::TIME_SERIES_CAPACITY = 1000 |