root/experimental/components/Demodulator/src/main.cpp @ 4474

Revision 4474, 2.3 KB (checked in by jgaeddert, 6 years ago)

updating Demodulator?: main.cpp, documentation, 4-PAM figure

  • Property svn:eol-style set to native
Line 
1/****************************************************************************
2
3Copyright 2007 Virginia Polytechnic Institute and State University
4
5This file is part of the OSSIE Demodulator.
6
7OSSIE Demodulator is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 2 of the License, or
10(at your option) any later version.
11
12OSSIE Demodulator is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with OSSIE Demodulator; if not, write to the Free Software
19Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20
21****************************************************************************/
22
23#include <iostream>
24
25#include "ossie/ossieSupport.h"
26#include "ossie/debug.h"
27
28#include "Demodulator.h"
29
30
31int main(int argc, char* argv[])
32
33{
34    ossieDebugLevel = 3;
35
36    ossieSupport::ORB *orb = new ossieSupport::ORB;
37    omni_mutex component_running_mutex;
38    omni_condition *component_running = new omni_condition(&component_running_mutex);
39
40    ossieSupport::ossieComponent demodulator(orb, argc, argv);
41
42    Demodulator_i* demodulator_servant;
43    CF::Resource_var demodulator_var;
44
45    // Create the demodulator component servant and object reference
46
47    demodulator_servant = new Demodulator_i(demodulator.getUuid(), component_running);
48    demodulator_var = demodulator_servant->_this();
49
50    PortableServer::ObjectId_var servantId = orb->poa->reference_to_id(demodulator_var);
51
52    demodulator.bind(demodulator_var);
53
54    // This bit is ORB specific
55    // omniorb is threaded and the servants are running at this point
56    // so we block on the condition
57    // The releaseObject method clear the condition and the component exits
58
59    component_running->wait();
60
61    demodulator.unbind();
62
63    DEBUG(4, Demodulator, "Deactivate object.");
64    orb->poa->deactivate_object(servantId);
65
66    DEBUG(4, Demodulator, "Destroy POA.");
67    orb->poa->destroy(false, false);
68
69    DEBUG(4, Demodulator, "Shutdown orb.");
70    orb->orb->shutdown(0);
71
72}
Note: See TracBrowser for help on using the browser.