root/ossiedev/branches/jsnyder/c2/c2.h @ 10230

Revision 10230, 2.6 KB (checked in by Snyder.Jason, 3 years ago)
  • Property svn:mime-type set to text/plain
Line 
1/****************************************************************************
2
3Copyright 2007 Virginia Polytechnic Institute and State University
4
5This file is part of the OSSIE c2.
6
7OSSIE c2 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 c2 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 c2; 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 C2_IMPL_H
25#define C2_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
35/** \brief
36 *
37 *
38 */
39class c2_i : public virtual Resource_impl
40{
41  public:
42    /// Initializing constructor
43    c2_i(const char *uuid, omni_condition *sem);
44
45    /// Destructor
46    ~c2_i(void);
47
48    /// Static function for omni thread
49    static void Run( void * data );
50
51    ///
52    void start() throw (CF::Resource::StartError, CORBA::SystemException);
53
54    ///
55    void stop() throw (CF::Resource::StopError, CORBA::SystemException);
56
57    ///
58    CORBA::Object_ptr getPort( const char* portName )
59        throw (CF::PortSupplier::UnknownPort, CORBA::SystemException);
60
61    ///
62    void releaseObject() throw (CF::LifeCycle::ReleaseError, CORBA::SystemException);
63
64    ///
65    void initialize() throw (CF::LifeCycle::InitializeError, CORBA::SystemException);
66
67        /// Query properties from .prf.xml
68        void query(CF::Properties&)
69                throw (CORBA::SystemException,
70                                CF::UnknownProperties);
71
72    /// Configures properties read from .prf.xml
73    void configure(const CF::Properties&)
74        throw (CORBA::SystemException,
75            CF::PropertySet::InvalidConfiguration,
76            CF::PropertySet::PartialConfiguration);
77
78
79  private:
80    /// Disallow default constructor
81    c2_i();
82
83    /// Disallow copy constructor
84    c2_i(c2_i&);
85
86    /// Main signal processing method
87    void ProcessData();
88        bool continue_processing();
89        volatile bool thread_started;
90        omni_mutex processing_mutex;
91   
92    omni_condition *component_running;  ///< for component shutdown
93    omni_thread *processing_thread;     ///< for component writer function
94       
95
96   
97    // list components provides and uses ports
98   
99};
100#endif
Note: See TracBrowser for help on using the browser.