package io.v.v23.discovery;

import java.util.UUID;

/**
 * VAdvertisement holds a set of service properties to advertise.
 */
public class VAdvertisement {
    private Service mService;

    private UUID mServiceUUID;

    private boolean mLost;

    public VAdvertisement(Service service, UUID serviceUUID, boolean lost) {
        mService = service;
        mServiceUUID = serviceUUID;
        mLost = lost;
    }

    public Service getService() {
        return mService;
    }

    public UUID getmServiceUUID() {
        return mServiceUUID;
    }

    public boolean getLost() {
        return mLost;
    }
}
