File: LLDBSettings.h

package info (click to toggle)
codelite 6.1.1%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 48,992 kB
  • ctags: 43,502
  • sloc: cpp: 334,263; ansic: 18,441; xml: 4,713; yacc: 2,653; lex: 2,449; python: 1,188; sh: 385; makefile: 40
file content (131 lines) | stat: -rw-r--r-- 3,774 bytes parent folder | download
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