root/ossiedev/branches/jeongo9/components/liquid-components-uhd/include/complexShort2Float.h @ 10718

Revision 10718, 3.2 KB (checked in by jeongo9, 2 years ago)

committing Flexframe components for UHD

Line 
1/****************************************************************************
2
3Copyright 2010 Virginia Polytechnic Institute and State University
4
5This file is part of the OSSIE complexShort2Float.
6
7OSSIE complexShort2Float 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 complexShort2Float 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 complexShort2Float; if not, write to the Free Software
19Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20
21****************************************************************************/
22
23
24#ifndef COMPLEXSHORT2FLOAT_IMPL_H
25#define COMPLEXSHORT2FLOAT_IMPL_H
26
27#include <stdlib.h>
28#include "ossie/cf.h"
29#include "ossie/PortTypes.h"
30#include "ossie/Resource_impl.h"
31#include "ossie/debug.h"
32
33
34#include "standardinterfaces/complexFloat.h"
35#include "standardinterfaces/complexShort.h"
36#include "standardinterfaces/complexFloat_u.h"
37#include "standardinterfaces/complexShort_p.h"
38
39/** \brief
40 *
41 *
42 */
43class complexShort2Float_i : public virtual Resource_impl
44{
45  public:
46    /// Initializing constructor
47    complexShort2Float_i(const char *uuid, omni_condition *sem);
48
49    /// Destructor
50    ~complexShort2Float_i(void);
51
52    /// Static function for omni thread
53    static void Run( void * data );
54
55    ///
56    void start() throw (CF::Resource::StartError, CORBA::SystemException);
57
58    ///
59    void stop() throw (CF::Resource::StopError, CORBA::SystemException);
60
61    ///
62    CORBA::Object_ptr getPort( const char* portName )
63        throw (CF::PortSupplier::UnknownPort, CORBA::SystemException);
64
65    ///
66    void releaseObject() throw (CF::LifeCycle::ReleaseError, CORBA::SystemException);
67
68    ///
69    void initialize() throw (CF::LifeCycle::InitializeError, CORBA::SystemException);
70
71    /// Query properties from .prf.xml
72    void query(CF::Properties&)
73        throw (CORBA::SystemException,
74                CF::UnknownProperties);
75
76    /// Configures properties read from .prf.xml
77    void configure(const CF::Properties&)
78        throw (CORBA::SystemException,
79            CF::PropertySet::InvalidConfiguration,
80            CF::PropertySet::PartialConfiguration);
81
82
83  private:
84    /// Disallow default constructor
85    complexShort2Float_i();
86
87    /// Disallow copy constructor
88    complexShort2Float_i(complexShort2Float_i&);
89
90    /// Main signal processing method
91    void ProcessData();
92    bool continue_processing();
93    volatile bool thread_started;
94    omni_mutex processing_mutex;
95   
96    omni_condition *component_running;  ///< for component shutdown
97    omni_thread *processing_thread;     ///< for component writer function
98       
99    CORBA::Short simple_0_value;
100    float gain;
101   
102    // list components provides and uses ports
103    standardInterfaces_i::complexFloat_u *dataOut_0;
104    standardInterfaces_i::complexShort_p *dataIn_0;
105   
106};
107#endif
Note: See TracBrowser for help on using the browser.