blob: 1cca84c8491428d738ea6a72bb88ae809993f42f [file] [log] [blame]
//
// message_impl.hpp
//
// Author: Lutz Bichler
//
// This file is part of the BMW Some/IP implementation.
//
// Copyright © 2013, 2014 Bayerische Motoren Werke AG (BMW).
// All rights reserved.
//
#ifndef VSOMEIP_SERVICE_DISCOVERY_IMPL_MESSAGE_IMPL_HPP
#define VSOMEIP_SERVICE_DISCOVERY_IMPL_MESSAGE_IMPL_HPP
#include <vector>
#include <vsomeip/service_discovery/message.hpp>
#include <vsomeip/impl/message_base_impl.hpp>
namespace vsomeip {
namespace service_discovery {
class entry;
class option;
class message_impl
: virtual public message,
virtual public vsomeip::message_base_impl {
public:
message_impl();
virtual ~message_impl();
length get_length() const;
flags get_flags() const;
void set_flags(flags _flags);
eventgroup_entry & create_eventgroup_entry();
service_entry & create_service_entry();
configuration_option & create_configuration_option();
ipv4_endpoint_option & create_ipv4_endpoint_option();
ipv6_endpoint_option & create_ipv6_endpoint_option();
load_balancing_option & create_load_balancing_option();
protection_option & create_protection_option();
int16_t get_option_index(const option &_option) const;
bool serialize(vsomeip::serializer *_to) const;
bool deserialize(vsomeip::deserializer *_from);
private:
entry * deserialize_entry(vsomeip::deserializer *_from);
option * deserialize_option(vsomeip::deserializer *_from);
private:
flags flags_;
std::vector<entry *> entries_;
std::vector<option *> options_;
};
} // namespace service_discovery
} // namespace vsomeip
#endif // VSOMEIP_SERVICE_DISCOVERY_IMPL_MESSAGE_IMPL_HPP