1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//
// copyright : (C) 2014 The CodeLite Team
// file name : LLDBSettings.h
//
// -------------------------------------------------------------------------
// A
// _____ _ _ _ _
// / __ \ | | | | (_) |
// | / \/ ___ __| | ___| | _| |_ ___
// | | / _ \ / _ |/ _ \ | | | __/ _ )
// | \__/\ (_) | (_| | __/ |___| | || __/
// \____/\___/ \__,_|\___\_____/_|\__\___|
//
// F i l e
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
#ifndef LLDBSETTINGS_H
#define LLDBSETTINGS_H
#include "LLDBEnums.h"
#include <wx/string.h>
#include "json_node.h"
class LLDBSettings
{
size_t m_arrItems;
size_t m_stackFrames;
size_t m_flags;
wxString m_types;
wxString m_proxyIp;
int m_proxyPort;
wxString m_lastLocalFolder;
wxString m_lastRemoteFolder;
public:
LLDBSettings();
virtual ~LLDBSettings();
void SetLastLocalFolder(const wxString& lastLocalFolder) {
this->m_lastLocalFolder = lastLocalFolder;
}
void SetLastRemoteFolder(const wxString& lastRemoteFolder) {
this->m_lastRemoteFolder = lastRemoteFolder;
}
const wxString& GetLastLocalFolder() const {
return m_lastLocalFolder;
}
const wxString& GetLastRemoteFolder() const {
return m_lastRemoteFolder;
}
bool IsRaiseWhenBreakpointHit() const {
return m_flags & kLLDBOptionRaiseCodeLite;
}
bool HasFlag(int flag) const {
return m_flags & flag;
}
void EnableFlag(int flag, bool enable) {
if ( enable ) {
m_flags |= flag;
} else {
m_flags &= ~flag;
}
}
void SetMaxArrayElements(size_t maxArrayElements) {
this->m_arrItems = maxArrayElements;
}
void SetMaxCallstackFrames(size_t maxCallstackFrames) {
this->m_stackFrames = maxCallstackFrames;
}
void SetTypes(const wxString& types) {
this->m_types = types;
}
size_t GetMaxArrayElements() const {
return m_arrItems;
}
size_t GetMaxCallstackFrames() const {
return m_stackFrames;
}
const wxString& GetTypes() const {
return m_types;
}
bool IsUsingRemoteProxy() const {
return HasFlag( kLLDBOptionUseRemoteProxy );
}
void SetUseRemoteProxy( bool b ) {
EnableFlag( kLLDBOptionUseRemoteProxy, b );
}
void SetProxyIp(const wxString& proxyIp) {
this->m_proxyIp = proxyIp;
}
void SetProxyPort(int proxyPort) {
this->m_proxyPort = proxyPort;
}
const wxString& GetProxyIp() const {
return m_proxyIp;
}
int GetProxyPort() const {
return m_proxyPort;
}
LLDBSettings& Load();
LLDBSettings& Save();
wxString GetTcpConnectString() const {
return (wxString() << m_proxyIp << ":" << m_proxyPort);
}
// Helpers
static wxString LoadPerspective();
static void SavePerspective(const wxString &perspective);
// Serialization API
JSONElement ToJSON() const;
void FromJSON( const JSONElement &json );
};
#endif // LLDBSETTINGS_H
|