mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-27 14:49:31 +00:00
a7b3072cc2
This patch supplements each existing connection type with an new constructor that is meant to replace the original one. The new one takes a reference to the component's environment as argument and thereby does not rely on the presence of the globally accessible 'env()' interface. The original constructors are marked as deprecated. Once we have completely abolished the use of the global 'env()', we will remove them. Fixes #1960
66 lines
1.9 KiB
C++
66 lines
1.9 KiB
C++
/*
|
|
* \brief Connection to TRACE service
|
|
* \author Norman Feske
|
|
* \date 2013-08-11
|
|
*/
|
|
|
|
/*
|
|
* Copyright (C) 2013 Genode Labs GmbH
|
|
*
|
|
* This file is part of the Genode OS framework, which is distributed
|
|
* under the terms of the GNU General Public License version 2.
|
|
*/
|
|
|
|
#ifndef _INCLUDE__TRACE_SESSION__CONNECTION_H_
|
|
#define _INCLUDE__TRACE_SESSION__CONNECTION_H_
|
|
|
|
#include <trace_session/client.h>
|
|
#include <base/connection.h>
|
|
|
|
namespace Genode { namespace Trace { struct Connection; } }
|
|
|
|
|
|
struct Genode::Trace::Connection : Genode::Connection<Genode::Trace::Session>,
|
|
Genode::Trace::Session_client
|
|
{
|
|
Capability<Trace::Session> _session(Parent &parent,
|
|
size_t ram_quota,
|
|
size_t arg_buffer_size,
|
|
unsigned parent_levels)
|
|
{
|
|
return session(parent,
|
|
"ram_quota=%zu, arg_buffer_size=%zu, parent_levels=%u",
|
|
ram_quota, arg_buffer_size, parent_levels);
|
|
}
|
|
|
|
/**
|
|
* Constructor
|
|
*
|
|
* \param ram_quota RAM donated for tracing purposes
|
|
* \param arg_buffer_size session argument-buffer size
|
|
* \param parent_levels number of parent levels to trace
|
|
*/
|
|
Connection(Env &env, size_t ram_quota, size_t arg_buffer_size, unsigned parent_levels)
|
|
:
|
|
Genode::Connection<Session>(env, _session(env.parent(), ram_quota,
|
|
arg_buffer_size, parent_levels)),
|
|
Session_client(cap())
|
|
{ }
|
|
|
|
/**
|
|
* Constructor
|
|
*
|
|
* \noapi
|
|
* \deprecated Use the constructor with 'Env &' as first
|
|
* argument instead
|
|
*/
|
|
Connection(size_t ram_quota, size_t arg_buffer_size, unsigned parent_levels)
|
|
:
|
|
Genode::Connection<Session>(_session(*env()->parent(), ram_quota,
|
|
arg_buffer_size, parent_levels)),
|
|
Session_client(cap())
|
|
{ }
|
|
};
|
|
|
|
#endif /* _INCLUDE__TRACE_SESSION__CONNECTION_H_ */
|