Program Listing for File memory_tools_service.hpp
↰ Return to documentation for file (/tmp/ws/src/osrf_testing_tools_cpp/osrf_testing_tools_cpp/include/osrf_testing_tools_cpp/memory_tools/memory_tools_service.hpp
)
// Copyright 2018 Open Source Robotics Foundation, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef OSRF_TESTING_TOOLS_CPP__MEMORY_TOOLS__MEMORY_TOOLS_SERVICE_HPP_
#define OSRF_TESTING_TOOLS_CPP__MEMORY_TOOLS__MEMORY_TOOLS_SERVICE_HPP_
#include "./stack_trace.hpp"
#include "./visibility_control.hpp"
namespace osrf_testing_tools_cpp
{
namespace memory_tools
{
class MemoryToolsServiceFactory;
class MemoryToolsServiceImpl;
enum class MemoryFunctionType
{
Malloc,
Realloc,
Calloc,
Free,
};
struct MemoryToolsService
{
OSRF_TESTING_TOOLS_CPP_MEMORY_TOOLS_PUBLIC
virtual ~MemoryToolsService();
OSRF_TESTING_TOOLS_CPP_MEMORY_TOOLS_PUBLIC
MemoryFunctionType
get_memory_function_type() const;
OSRF_TESTING_TOOLS_CPP_MEMORY_TOOLS_PUBLIC
const char *
get_memory_function_type_str() const;
OSRF_TESTING_TOOLS_CPP_MEMORY_TOOLS_PUBLIC
void
ignore();
OSRF_TESTING_TOOLS_CPP_MEMORY_TOOLS_PUBLIC
void
unignore();
OSRF_TESTING_TOOLS_CPP_MEMORY_TOOLS_PUBLIC
void
print_backtrace();
OSRF_TESTING_TOOLS_CPP_MEMORY_TOOLS_PUBLIC
StackTrace *
get_stack_trace();
OSRF_TESTING_TOOLS_CPP_MEMORY_TOOLS_PUBLIC
const char *
get_source_function_name() const;
protected:
explicit MemoryToolsService(
MemoryFunctionType memory_function_type,
const char * source_function_name);
std::shared_ptr<MemoryToolsServiceImpl> impl_;
friend MemoryToolsServiceFactory;
};
} // namespace memory_tools
} // namespace osrf_testing_tools_cpp
#endif // OSRF_TESTING_TOOLS_CPP__MEMORY_TOOLS__MEMORY_TOOLS_SERVICE_HPP_