/*
 Bookmark model abstraction

 Copyright 2013 Thincast Technologies GmbH, Authors: Dorian Johnson

 This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
 If a copy of the MPL was not distributed with this file, You can obtain one at
 http://mozilla.org/MPL/2.0/.
 */

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "ConnectionParams.h"

@interface ComputerBookmark : NSObject <NSCoding>
{
  @protected
	ComputerBookmark *_parent;
	NSString *_uuid, *_label;
	UIImage *_image;
	ConnectionParams *_connection_params;
	BOOL _connected_via_wlan;
}

@property(nonatomic, assign) ComputerBookmark *parent;
@property(nonatomic, readonly) NSString *uuid;
@property(nonatomic, copy) NSString *label;
@property(nonatomic, retain) UIImage *image;
@property(readonly, nonatomic) ConnectionParams *params;
@property(nonatomic, assign) BOOL conntectedViaWLAN;

// Creates a copy of this object, with a new UUID
- (id)copy;
- (id)copyWithUUID;

// Whether user can delete, move, or rename this entry
- (BOOL)isDeletable;
- (BOOL)isMovable;
- (BOOL)isRenamable;
- (BOOL)hasImmutableHost;

- (id)initWithConnectionParameters:(ConnectionParams *)params;
- (id)initWithBaseDefaultParameters;

// A copy of @params, with _bookmark_uuid set.
- (ConnectionParams *)copyMarkedParams;

@end
