Skip to content

Commit

Permalink
[Actions] Adding a MacOS build workflow, fixing several MacOS specifi…
Browse files Browse the repository at this point in the history
…c compilation errors and warnings (#1788)

* Create MacOS build template

* Add a condition to trigger this workflow on pushes to the development branch

* Removing the gcc multilib and building 32 bits in macOS for now

* Replacing the Linux package instalation steps with its equivalents for MacOS

* Updating the commands with pipx instead of pip3

* No need to install pipx as it is already present

* Simplify the packages instalation

* Install jsonref within a virtual environment instead

* Making sure to activate the python virtual environemtn before building

* Make sure #pragma clang system_header will be used in portability for apple builds

* See if ignoring -Wgnu-zero-variadic-macro-arguments works

* Looks like for AppleClang the system header doesn't suppress warnings like in regular clang or gcc

* Adding VARIABLE_IS_NOT_USED macro for length in MACAddress

* Commenting some more unused params

* Make sure the condition order is correct

* No need to redefine __APPLE_USE_RFC_3542 macro as it is already defined in the cmake

And having it redefined here caused warnings treated as errors:

/Users/runner/work/Thunder/Thunder/Thunder/Source/core/Portability.h:440:9: error: '__APPLE_USE_RFC_3542' macro redefined [-Werror,-Wmacro-redefined]
#define __APPLE_USE_RFC_3542
        ^
<command line>:7:9: note: previous definition is here
#define __APPLE_USE_RFC_3542 1
        ^

* Removing unnecessary extern keyword on methods which already have extern "C"

* Commenting some unused parameters

We could also use the macro, but since we are not even using these params in Debug, this seems a bit cleaner

* Adding a VARIABLE_IS_NOT_USED macro to the AdapterObserver private member

* Commenting some more unused params in Protability.cpp

* Add VARIABLE_IS_NOT_USED macro to the Iterator in ProcessInfo

Here we are using the macro as these params are in fact used on Linux

* Some more unused params in ProcessInfo.cpp

* Adding VARIABLE_IS_NOT_USED macro to SystemInfo SetTime method

* m_lastUpdateCpuStats is not used on MacOS

* Params of Thread::GetCallstack() can also be unused

* Variable used only in an ASSERT in StreamText

* Marking Id() method from IPCChannelType as an override

as it is indeed an override of method from IPCChannel

* Index in CreateFactory is only used in an ASSERT

* Mark Deinitialize in RunCContainerAdministrator as an override

* whole-archive flags are specific to GNU, changing to force_load for Apple instead

* Linking Messaging for ProcessContainers for Apple

* We need to link Messaging for Linux as well

This was not causing any errors in Actions probably as we are also building warning reporting, which publicly links core and messaging

* Removing the unnecessary local fillCount variable which is not used

* Bringing base class's overloaded methods into the derived class

In file included from /Users/runner/work/Thunder/Thunder/Thunder/Source/websocket/WebSerializer.cpp:20:
/Users/runner/work/Thunder/Thunder/Thunder/Source/websocket/WebSerializer.h:336:18: error: 'Thunder::Web::JSONBodyType<Thunder::Core::JSONRPC::Message>::Serialize' hides overloaded virtual functions [-Werror,-Woverloaded-virtual]
        uint32_t Serialize() const override
                 ^
/Users/runner/work/Thunder/Thunder/Thunder/Source/websocket/WebSerializer.h:436:29: note: in instantiation of template class 'Thunder::Web::JSONBodyType<Thunder::Core::JSONRPC::Message>' requested here
        class Body : public JSONBodyType<Core::JSONRPC::Message> {
                            ^
/Users/runner/work/Thunder/Thunder/Thunder/Source/websocket/../core/JSON.h:3740:22: note: hidden overloaded virtual function 'Thunder::Core::JSON::Container::Serialize' declared here: different number of parameters (3 vs 0)
            uint16_t Serialize(char stream[], const uint16_t maxLength, uint32_t& offset) const override
                     ^
/Users/runner/work/Thunder/Thunder/Thunder/Source/websocket/../core/JSON.h:3951:22: note: hidden overloaded virtual function 'Thunder::Core::JSON::Container::Serialize' declared here: different number of parameters (3 vs 0)
            uint16_t Serialize(uint8_t stream[], const uint16_t maxLength, uint32_t& offset) const override
                     ^

And the same goes for Deserialize()

* Commenting some unused params

* Commenting some unused params

* Removing the unused param fillCount

* version variable is not used in both Offer and Revoke methods

* VARIABLE_IS_NOT_USED macro has to be used before the default value is assigned

* Comment unused params in WebTransfer.h

* Type param in Initialize from InputHandler is only used in an ASSERT on Windows and MacOS

* Making sure the Invoke does not hide overloaded virtual function 

 In file included from /Users/runner/work/Thunder/Thunder/Thunder/Source/plugins/../com/Communicator.h:30:
/Users/runner/work/Thunder/Thunder/Thunder/Source/plugins/../com/IUnknown.h:491:18: error: 'Thunder::ProxyStub::UnknownProxyType<Thunder::PluginHost::IDispatcher>::Invoke' hides overloaded virtual function [-Werror,-Woverloaded-virtual]
        uint32_t Invoke(Core::ProxyType<RPC::InvokeMessage>& message, const uint32_t waitTime = RPC::CommunicationTimeOut) const
                 ^
/Users/runner/work/Thunder/Thunder/Debug/build/Thunder/Source/plugins/generated/ProxyStubs_Dispatcher.cpp:235:42: note: in instantiation of template class 'Thunder::ProxyStub::UnknownProxyType<Thunder::PluginHost::IDispatcher>' requested here
    class DispatcherProxy final : public ProxyStub::UnknownProxyType<IDispatcher> {
                                         ^
/Users/runner/work/Thunder/Thunder/Thunder/Source/plugins/IDispatcher.h:44:30: note: hidden overloaded virtual function 'Thunder::PluginHost::IDispatcher::Invoke' declared here: different number of parameters (6 vs 2)
            virtual uint32_t Invoke(const uint32_t channelid, const uint32_t id, const string& token, const string& method, const string& parameters, string& response /* @out */) = 0;
                             ^
1 error generated.

* Try the enable_if with is_member_function_pointer to solve the Invoke warning

* Removing the unnecessary using Invoke from earlier

* Try a different approach with SFINEA

* Use a template param when calling the TryBringInvoke method

* Try one last change to handle Invoke situation

* One more idea to try..

* inotify header cannot be used on MacOS

* features.h is also not available on MacOS

* features.h was included in one more space

* Add different includes for Apple

* No reason for these includes, remove them

* Add a -pthread flag

* Add #include <semaphore.h> for MacOS

* Remove the TryBringInvoke method as it is no longer needed

* Remove the pthread flag for now

* Change reinterpret cast to static cast

uintptr_t is usually defined as unsigned long on macOS (64 bits).

Core::instance_id is defined as unsigned long long, which is also 64 bits but technically a different type.

so we have to use static_cast for it to work

* Try reinterpret cast instead of static

* Disable a warning about overloaded virtuals

* Disable the warning of overloaded virtuals on a different method

* Invoke from IUnknown hides Invoke from IDispatcher

But there is nothing wrong with that and we can safely ignore it

* Taking care of some unused params

* One more unsed param to comment

* Removing unncessary std::move on a temp object

 In file included from /Users/runner/work/Thunder/Thunder/Thunder/Source/Thunder/PluginServer.h:24:
/Users/runner/work/Thunder/Thunder/Thunder/Source/Thunder/SystemInfo.h:496:116: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]
                    _provisioning = Core::ServiceType<Provisioning>::Create<PluginHost::ISubSystem::IProvisioning>(std::move(std::list<std::string>()), "");
                                                                                                                   ^
/Users/runner/work/Thunder/Thunder/Thunder/Source/Thunder/SystemInfo.h:496:116: note: remove std::move call here
                    _provisioning = Core::ServiceType<Provisioning>::Create<PluginHost::ISubSystem::IProvisioning>(std::move(std::list<std::string>()), "");

* Adding VARIABLE_IS_NOT_USED macro to _state

Seems state is not used on MacOS

* Changing static to reinterpret cast to allow casting to a point

/Users/runner/work/Thunder/Thunder/Thunder/Source/plugins/Metadata.h:281:20: error: cannot cast from type 'Core::instance_id' (aka 'unsigned long long') to pointer type '_opaque_pthread_t *'
            return static_cast<TYPE>(id);
                   ^~~~~~~~~~~~~~~~~~~~~

* Take care of two unused variable on MacOS

* Update the logic of __SIZEOF_POINTER__ is not defined

* Add errors for debugging

* More debugging

* Remove the diagnostic errors

* Cannot use reinterpret from uint to another uint

* Change is_same to is_convertiable to work with other pointers than void*

* Use is_pointer instead of is_convertible for even greater portability

* More debugging

* Formatting changes

* Remove debugging code

* Removing some unnecessary changes

* Bringing back endif removed by accident

* Make the template callable

* Make sure to build with this branch in other repos on calls

* Add a build workflow

* Correct an else instead of an elif

* Add debugging

* Formatting changes, removing the debugging code

* Change the runner version to be static

* Prep for merging to master

* No need for iterator local variable as it is only used in an assert

* Change the venv path to match the Linux templates
  • Loading branch information
VeithMetro authored Nov 7, 2024
1 parent e780911 commit 1ecc540
Show file tree
Hide file tree
Showing 29 changed files with 263 additions and 76 deletions.
40 changes: 40 additions & 0 deletions .github/workflows/Build Thunder on MacOS.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Build Thunder on MacOS

on:
workflow_dispatch:
push:
branches: ["master"]
paths-ignore:
- 'doc/**'
- 'docs/**'
- 'ReleaseNotes/**'
pull_request:
branches: ["master"]
paths-ignore:
- 'doc/**'
- 'docs/**'
- 'ReleaseNotes/**'

jobs:
Thunder:
uses: rdkcentral/Thunder/.github/workflows/MacOS build template.yml@master

# ThunderInterfaces:
# needs: Thunder
# uses: rdkcentral/ThunderInterfaces/.github/workflows/Linux build template.yml@master

# ThunderLibraries:
# needs: Thunder
# uses: WebPlatformForEmbedded/ThunderLibraries/.github/workflows/Linux build template.yml@main

# ThunderClientLibraries:
# needs: ThunderInterfaces
# uses: rdkcentral/ThunderClientLibraries/.github/workflows/Linux build template.yml@master

# ThunderNanoServices:
# needs: ThunderInterfaces
# uses: rdkcentral/ThunderNanoServices/.github/workflows/Linux build template.yml@master

# ThunderNanoServicesRDK:
# needs: ThunderInterfaces
# uses: WebPlatformForEmbedded/ThunderNanoServicesRDK/.github/workflows/Linux build template.yml@master
131 changes: 131 additions & 0 deletions .github/workflows/MacOS build template.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
name: MacOS build template

on:
workflow_call:

jobs:
Thunder:
runs-on: macos-14

strategy:
matrix:
build_type: [Debug, Release, MinSizeRel]
shared_libs: [ON, OFF]

name: Build type - ${{matrix.shared_libs == 'OFF' && 'Static ' || ''}}${{matrix.build_type}}
steps:
# --------- Installing packages ---------
- name: Install necessary packages
run: |
brew update
brew upgrade
brew install ninja zlib
python3 -m venv venv
source venv/bin/activate
pip install jsonref
# ----- Checkout & DependsOn regex -----
# --------- Thunder ----------
- name: Checkout Thunder - default
if: ${{ !contains(github.event.pull_request.body, '[DependsOn=Thunder:') }}
uses: actions/checkout@v4
with:
path: Thunder
repository: rdkcentral/Thunder

- name: Regex Thunder
if: contains(github.event.pull_request.body, '[DependsOn=Thunder:')
id: thunder
uses: AsasInnab/regex-action@v1
with:
regex_pattern: '(?<=\[DependsOn=Thunder:).*(?=\])'
regex_flags: 'gim'
search_string: ${{github.event.pull_request.body}}

- name: Checkout Thunder - ${{steps.thunder.outputs.first_match}}
if: contains(github.event.pull_request.body, '[DependsOn=Thunder:')
uses: actions/checkout@v4
with:
path: Thunder
repository: rdkcentral/Thunder
ref: ${{steps.thunder.outputs.first_match}}

# ------- ThunderTools -------
- name: Checkout ThunderTools - default
if: ${{ !contains(github.event.pull_request.body, '[DependsOn=ThunderTools:') }}
uses: actions/checkout@v4
with:
path: ThunderTools
repository: rdkcentral/ThunderTools

- name: Regex ThunderTools
if: contains(github.event.pull_request.body, '[DependsOn=ThunderTools:')
id: tools
uses: AsasInnab/regex-action@v1
with:
regex_pattern: '(?<=\[DependsOn=ThunderTools:).*(?=\])'
regex_flags: 'gim'
search_string: ${{github.event.pull_request.body}}

- name: Checkout ThunderTools - ${{steps.tools.outputs.first_match}}
if: contains(github.event.pull_request.body, '[DependsOn=ThunderTools:')
uses: actions/checkout@v4
with:
path: ThunderTools
repository: rdkcentral/ThunderTools
ref: ${{steps.tools.outputs.first_match}}

# ----- Installing generators & Options regex -----
- name: Install generators
run: |
source venv/bin/activate
cmake -G Ninja -S ThunderTools -B ${{matrix.build_type}}/build/ThunderTools \
-DCMAKE_CXX_FLAGS="-Wall -Wextra -Wpedantic -Werror" \
-DCMAKE_C_FLAGS="-Wall -Wextra -Wpedantic -Werror" \
-DCMAKE_INSTALL_PREFIX=${{matrix.build_type}}/install/usr
cmake --build ${{matrix.build_type}}/build/ThunderTools --target install
- name: Regex Thunder
if: contains(github.event.pull_request.body, '[Options:')
id: regexthunder
uses: AsasInnab/regex-action@v1
with:
regex_pattern: '(?<=\[Options:).*(?=\])'
regex_flags: 'gim'
search_string: ${{github.event.pull_request.body}}

# ----- Building & uploading artifacts -----
- name: Build Thunder
run: |
source venv/bin/activate
cmake -G Ninja -S Thunder -B ${{matrix.build_type}}/build/Thunder \
-DCMAKE_CXX_FLAGS="-Wall -Wextra -Wpedantic -Werror" \
-DCMAKE_C_FLAGS="-Wall -Wextra -Wpedantic -Werror" \
-DBUILD_SHARED_LIBS=${{matrix.shared_libs}} \
-DBINDING="127.0.0.1" \
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
-DCMAKE_INSTALL_PREFIX="${{matrix.build_type}}/install/usr" \
-DCMAKE_MODULE_PATH="${PWD}/${{matrix.build_type}}/install/usr/include/WPEFramework/Modules" \
-DDATA_PATH="${PWD}/${{matrix.build_type}}/install/usr/share/WPEFramework" \
-DPERSISTENT_PATH="${PWD}/${{matrix.build_type}}/install/var/wpeframework" \
-DPORT="55555" \
-DPROXYSTUB_PATH="${PWD}/${{matrix.build_type}}/install/usr/lib/wpeframework/proxystubs" \
-DSYSTEM_PATH="${PWD}/${{matrix.build_type}}/install/usr/lib/wpeframework/plugins" \
-DVOLATILE_PATH="tmp" \
-DLOCALTRACER=ON \
-DWARNING_REPORTING=ON \
-DPROCESSCONTAINERS=ON \
-DPROCESSCONTAINERS_RUNC=ON \
${{steps.regexthunder.outputs.first_match}}
cmake --build ${{matrix.build_type}}/build/Thunder --target install
- name: Tar files
if: matrix.shared_libs == 'ON'
run: tar -czvf ${{matrix.build_type}}.tar.gz ${{matrix.build_type}}

- name: Upload
if: matrix.shared_libs == 'ON'
uses: actions/upload-artifact@v4
with:
name: Thunder-${{matrix.build_type}}-artifact
path: ${{matrix.build_type}}.tar.gz
6 changes: 3 additions & 3 deletions Source/Thunder/PluginServer.h
Original file line number Diff line number Diff line change
Expand Up @@ -752,7 +752,7 @@ namespace PluginHost {
private:
bool _isExtended;
uint32_t _maxRequests;
uint8_t _state;
VARIABLE_IS_NOT_USED uint8_t _state;
uint8_t _major;
uint8_t _minor;
uint8_t _patch;
Expand Down Expand Up @@ -1622,7 +1622,7 @@ namespace PluginHost {
}

private:
const mode _mode;
VARIABLE_IS_NOT_USED const mode _mode;
mutable Core::CriticalSection _pluginHandling;

// The handlers that implement the actual logic behind the service
Expand All @@ -1642,7 +1642,7 @@ namespace PluginHost {
uint32_t _lastId;
ControlData _metadata;
Core::Library _library;
void* _hibernateStorage;
VARIABLE_IS_NOT_USED void* _hibernateStorage;
ExternalAccess _external;
ServiceMap& _administrator;
Core::SinkType<Composit> _composit;
Expand Down
2 changes: 1 addition & 1 deletion Source/Thunder/SystemInfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -493,7 +493,7 @@ namespace PluginHost {
_provisioning = nullptr;
}

_provisioning = Core::ServiceType<Provisioning>::Create<PluginHost::ISubSystem::IProvisioning>(std::move(std::list<std::string>()), "");
_provisioning = Core::ServiceType<Provisioning>::Create<PluginHost::ISubSystem::IProvisioning>(std::list<std::string>(), "");

_adminLock.Unlock();
} else {
Expand Down
4 changes: 2 additions & 2 deletions Source/com/Communicator.h
Original file line number Diff line number Diff line change
Expand Up @@ -1867,7 +1867,7 @@ POP_WARNING()
return (result);
}
template <typename INTERFACE>
inline uint32_t Offer(INTERFACE* offer, const uint32_t version = static_cast<uint32_t>(~0), const uint32_t waitTime = CommunicationTimeOut)
inline uint32_t Offer(INTERFACE* offer, const uint32_t version VARIABLE_IS_NOT_USED = static_cast<uint32_t>(~0), const uint32_t waitTime = CommunicationTimeOut)
{
uint32_t result(Core::ERROR_NONE);

Expand Down Expand Up @@ -1906,7 +1906,7 @@ POP_WARNING()
return (result);
}
template <typename INTERFACE>
inline uint32_t Revoke(INTERFACE* offer, const uint32_t version = static_cast<uint32_t>(~0), const uint32_t waitTime = CommunicationTimeOut)
inline uint32_t Revoke(INTERFACE* offer, const uint32_t version VARIABLE_IS_NOT_USED = static_cast<uint32_t>(~0), const uint32_t waitTime = CommunicationTimeOut)
{
uint32_t result(Core::ERROR_NONE);

Expand Down
2 changes: 2 additions & 0 deletions Source/com/IUnknown.h
Original file line number Diff line number Diff line change
Expand Up @@ -488,10 +488,12 @@ namespace ProxyStub {
{
return (_unknown.Message(methodId));
}
PUSH_WARNING(DISABLE_WARNING_OVERLOADED_VIRTUALS)
uint32_t Invoke(Core::ProxyType<RPC::InvokeMessage>& message, const uint32_t waitTime = RPC::CommunicationTimeOut) const
{
return (_unknown.Invoke(message, waitTime));
}
POP_WARNING()
void* Interface(const Core::instance_id& implementation, const uint32_t id) const
{
return (_unknown.Interface(implementation, id));
Expand Down
3 changes: 1 addition & 2 deletions Source/core/Factory.h
Original file line number Diff line number Diff line change
Expand Up @@ -191,10 +191,9 @@ namespace Core {
void CreateFactory(const uint32_t initialQueueSize)
{
IDENTIFIER label(ACTUALELEMENT::Id());
typename std::map<IDENTIFIER, IFactory*>::iterator index(_receptors.find(label));

// Do not insert the same identifier twice !!!!
ASSERT(index == _receptors.end());
ASSERT(_receptors.find(label) == _receptors.end());

_receptors.insert(std::pair<IDENTIFIER, IFactory*>(label, new InternalFactoryType<ACTUALELEMENT>(initialQueueSize)));
}
Expand Down
2 changes: 1 addition & 1 deletion Source/core/IPCConnector.h
Original file line number Diff line number Diff line change
Expand Up @@ -920,7 +920,7 @@ POP_WARNING()
{
return (_administration.InProgress());
}
uint32_t Id() const {
uint32_t Id() const override {
return (__Id());
}
uint32_t ReportResponse(Core::ProxyType<IIPC>& inbound) override
Expand Down
8 changes: 4 additions & 4 deletions Source/core/JSONRPC.h
Original file line number Diff line number Diff line change
Expand Up @@ -1063,7 +1063,7 @@ namespace Core {
template <typename INBOUND, typename OUTBOUND, typename METHOD> // context
void InternalRegister(const ::TemplateIntToType<1>&, const ::TemplateIntToType<1>&, const ::TemplateIntToType<1>&, const string& methodName, const METHOD& method)
{
Register(methodName, [method](const Context& context, const string&, const string& parameters, string& result) -> uint32_t {
Register(methodName, [method](const Context& context, const string&, const string& /* parameters */, string& /* result */) -> uint32_t {
return (InternalRegisterImpl<METHOD>(method, context));
});
}
Expand Down Expand Up @@ -1139,7 +1139,7 @@ namespace Core {
template <typename INBOUND, typename OUTBOUND, typename METHOD> // id
void InternalRegister(const ::TemplateIntToType<4>&, const ::TemplateIntToType<1>&, const ::TemplateIntToType<1>&, const string& methodName, const METHOD& method)
{
Register(methodName, [method](const Context&, const string& methodName, const string& parameters, string& result) -> uint32_t {
Register(methodName, [method](const Context&, const string& methodName, const string& /* parameters */, string& /* result */) -> uint32_t {
return (InternalRegisterImpl<METHOD>(method, Message::InstanceId(methodName)));
});
}
Expand Down Expand Up @@ -1222,7 +1222,7 @@ namespace Core {
template <typename INBOUND, typename OUTBOUND, typename METHOD, typename REALOBJECT> // context
void InternalRegister(const ::TemplateIntToType<1>&, const ::TemplateIntToType<1>&, const ::TemplateIntToType<1>&, const string& methodName, const METHOD& method, REALOBJECT* objectPtr)
{
Register(methodName, [method, objectPtr](const Context& context, const string&, const string& parameters, string& result) -> uint32_t {
Register(methodName, [method, objectPtr](const Context& context, const string&, const string& /* parameters */, string& /* result */) -> uint32_t {
return (InternalRegisterImpl(std::bind(method, objectPtr, std::placeholders::_1), context));
});
}
Expand Down Expand Up @@ -1298,7 +1298,7 @@ namespace Core {
template <typename INBOUND, typename OUTBOUND, typename METHOD, typename REALOBJECT> // id
void InternalRegister(const ::TemplateIntToType<4>&, const ::TemplateIntToType<1>&, const ::TemplateIntToType<1>&, const string& methodName, const METHOD& method, REALOBJECT* objectPtr)
{
Register(methodName, [method, objectPtr](const Context&, const string& methodName, const string& parameters, string& result) -> uint32_t {
Register(methodName, [method, objectPtr](const Context&, const string& methodName, const string& /* parameters */, string& /* result */) -> uint32_t {
return (InternalRegisterImpl(std::bind(method, objectPtr, std::placeholders::_1), Message::InstanceId(methodName)));
});
}
Expand Down
13 changes: 5 additions & 8 deletions Source/core/NetworkInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -653,7 +653,7 @@ namespace Core {
return (result);
}

void AdapterIterator::MACAddress(uint8_t buffer[], const uint8_t length) const
void AdapterIterator::MACAddress(uint8_t buffer[], const uint8_t /* length */) const
{
ASSERT(IsValid());
AdapterAddresses addresses;
Expand Down Expand Up @@ -693,31 +693,28 @@ namespace Core {
return (Core::ERROR_NOT_SUPPORTED);
}

uint32_t AdapterIterator::Add(const IPNode& address)
uint32_t AdapterIterator::Add(const IPNode& /* address */)
{
uint32_t result = Core::ERROR_NONE;
return (result);
}

uint32_t AdapterIterator::Delete(const IPNode& address)
uint32_t AdapterIterator::Delete(const IPNode& /* address */)
{

uint32_t result = Core::ERROR_NONE;
return (result);
}

uint32_t AdapterIterator::Gateway(const IPNode& network, const NodeId& gateway)
uint32_t AdapterIterator::Gateway(const IPNode& /* network */, const NodeId& /* gateway */)
{

//TODO: Needs implementation
ASSERT(false);

return (Core::ERROR_BAD_REQUEST);
}

uint32_t AdapterIterator::Broadcast(const Core::NodeId& address)
uint32_t AdapterIterator::Broadcast(const Core::NodeId& /* address */)
{

//TODO: Needs implementation
ASSERT(false);

Expand Down
2 changes: 1 addition & 1 deletion Source/core/NetworkInfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ namespace Core {
uint32_t Close();

private:
INotification* _callback;
VARIABLE_IS_NOT_USED INotification* _callback;
};

#if defined(__WINDOWS__) || defined(__APPLE__)
Expand Down
2 changes: 1 addition & 1 deletion Source/core/Portability.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ extern "C" {
#ifdef __APPLE__
extern "C" {
//@TODO @Pierre implement mremap
void* mremap(void* old_address, size_t old_size, size_t new_size, int flags)
void* mremap(void* /* old_address */, size_t /* old_size */, size_t /* new_size */, int /* flags */)
{
return (nullptr);
}
Expand Down
Loading

0 comments on commit 1ecc540

Please sign in to comment.