blob: 2b563c64d65aef1bf0e2729be3abcd96267de8c6 [file] [log] [blame]
Deepak Panickal6f9c4682014-05-16 10:51:01 +00001//===-- MICmnLLDBBroadcaster.cpp --------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10//++
Zachary Turner1d6af022014-11-17 18:06:21 +000011// File: MICmnLLDBBroadcaster.cpp
Deepak Panickal6f9c4682014-05-16 10:51:01 +000012//
Zachary Turner1d6af022014-11-17 18:06:21 +000013// Overview: CMICmnLLDBBroadcaster implementation.
Deepak Panickal6f9c4682014-05-16 10:51:01 +000014//
Zachary Turner1d6af022014-11-17 18:06:21 +000015// Environment: Compilers: Visual C++ 12.
16// gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
17// Libraries: See MIReadmetxt.
Deepak Panickal6f9c4682014-05-16 10:51:01 +000018//
Zachary Turner1d6af022014-11-17 18:06:21 +000019// Copyright: None.
Deepak Panickal6f9c4682014-05-16 10:51:01 +000020//--
21
22// In-house headers:
23#include "MICmnLLDBBroadcaster.h"
24
25//++ ------------------------------------------------------------------------------------
Zachary Turner1d6af022014-11-17 18:06:21 +000026// Details: CMICmnLLDBBroadcaster constructor.
27// Type: Method.
28// Args: None.
29// Return: None.
30// Throws: None.
Deepak Panickal6f9c4682014-05-16 10:51:01 +000031//--
Zachary Turner1d6af022014-11-17 18:06:21 +000032CMICmnLLDBBroadcaster::CMICmnLLDBBroadcaster(void)
33 : lldb::SBBroadcaster("MI driver")
Deepak Panickal6f9c4682014-05-16 10:51:01 +000034{
35}
36
37//++ ------------------------------------------------------------------------------------
Zachary Turner1d6af022014-11-17 18:06:21 +000038// Details: CMICmnLLDBBroadcaster destructor.
39// Type: Overridable.
40// Args: None.
41// Return: None.
42// Throws: None.
Deepak Panickal6f9c4682014-05-16 10:51:01 +000043//--
Zachary Turner1d6af022014-11-17 18:06:21 +000044CMICmnLLDBBroadcaster::~CMICmnLLDBBroadcaster(void)
Deepak Panickal6f9c4682014-05-16 10:51:01 +000045{
Zachary Turner1d6af022014-11-17 18:06:21 +000046 Shutdown();
Deepak Panickal6f9c4682014-05-16 10:51:01 +000047}
48
49//++ ------------------------------------------------------------------------------------
Zachary Turner1d6af022014-11-17 18:06:21 +000050// Details: Initialize resources for *this broardcaster object.
51// Type: Method.
52// Args: None.
53// Return: MIstatus::success - Functionality succeeded.
54// MIstatus::failure - Functionality failed.
55// Throws: None.
Deepak Panickal6f9c4682014-05-16 10:51:01 +000056//--
Zachary Turner1d6af022014-11-17 18:06:21 +000057bool
58CMICmnLLDBBroadcaster::Initialize(void)
Deepak Panickal6f9c4682014-05-16 10:51:01 +000059{
Zachary Turner1d6af022014-11-17 18:06:21 +000060 m_clientUsageRefCnt++;
Deepak Panickal6f9c4682014-05-16 10:51:01 +000061
Zachary Turner1d6af022014-11-17 18:06:21 +000062 if (m_bInitialized)
63 return MIstatus::success;
Deepak Panickal6f9c4682014-05-16 10:51:01 +000064
Zachary Turner1d6af022014-11-17 18:06:21 +000065 m_bInitialized = MIstatus::success;
66
67 return m_bInitialized;
Deepak Panickal6f9c4682014-05-16 10:51:01 +000068}
69
70//++ ------------------------------------------------------------------------------------
Zachary Turner1d6af022014-11-17 18:06:21 +000071// Details: Release resources for *this broardcaster object.
72// Type: Method.
73// Args: None.
74// Return: MIstatus::success - Functionality succeeded.
75// MIstatus::failure - Functionality failed.
76// Throws: None.
Deepak Panickal6f9c4682014-05-16 10:51:01 +000077//--
Zachary Turner1d6af022014-11-17 18:06:21 +000078bool
79CMICmnLLDBBroadcaster::Shutdown(void)
Deepak Panickal6f9c4682014-05-16 10:51:01 +000080{
Zachary Turner1d6af022014-11-17 18:06:21 +000081 if (--m_clientUsageRefCnt > 0)
82 return MIstatus::success;
Deepak Panickal6f9c4682014-05-16 10:51:01 +000083
Zachary Turner1d6af022014-11-17 18:06:21 +000084 if (!m_bInitialized)
85 return MIstatus::success;
Deepak Panickal6f9c4682014-05-16 10:51:01 +000086
Zachary Turner1d6af022014-11-17 18:06:21 +000087 m_bInitialized = false;
Deepak Panickal6f9c4682014-05-16 10:51:01 +000088
Zachary Turner1d6af022014-11-17 18:06:21 +000089 return MIstatus::success;
90}