Gnash  0.8.11dev
NetConnection_as.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
3 // Free Software Foundation, Inc
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 
19 #ifndef GNASH_NETCONNECTION_H
20 #define GNASH_NETCONNECTION_H
21 
22 
23 #include <vector>
24 #include <string>
25 #include <list>
26 #include <memory>
27 #include <boost/shared_ptr.hpp>
28 
29 #include "Relay.h"
30 
31 // Forward declarations
32 namespace gnash {
33  class Connection;
34  class as_object;
35  class as_value;
36  class IOChannel;
37  struct ObjectURI;
38 }
39 
40 namespace gnash {
41 
43 //
47 {
48 public:
49 
51  {
59  };
60 
62 
63  virtual ~NetConnection_as();
64 
66  virtual void update();
67 
69  std::string validateURL() const;
70 
71  void call(as_object* asCallback, const std::string& methodName,
72  const std::vector<as_value>& args);
73 
75  void close();
76 
78  //
81  bool connect(const std::string& uri);
82 
84  //
87  void connect();
88 
89  void setConnected() {
90  _isConnected = true;
91  }
92 
93  bool isConnected() const {
94  return _isConnected;
95  }
96 
97  void setURI(const std::string& uri);
98 
99  const std::string& getURI() const {
100  return _uri;
101  }
102 
105 
107  std::auto_ptr<IOChannel> getStream(const std::string& name);
108 
110  void markReachableResources() const;
111 
112 private:
113 
115  void addToURL(const std::string& url);
116 
117  typedef std::list<boost::shared_ptr<Connection> > Connections;
118 
120  //
125  Connections _oldConnections;
126 
128  std::auto_ptr<Connection> _currentConnection;
129 
131  std::string _uri;
132 
133  bool _isConnected;
134 
135  void startAdvanceTimer();
136 
137  void stopAdvanceTimer();
138 };
139 
140 void netconnection_class_init(as_object& global, const ObjectURI& uri);
141 
142 } // end of gnash namespace
143 
144 #endif
145 
146 // local Variables:
147 // mode: C++
148 // indent-tabs-mode: nil
149 // End:
Definition: NetConnection_as.h:57
Definition: NetConnection_as.h:53
const std::string & getURI() const
Definition: NetConnection_as.h:99
void setURI(const std::string &uri)
Definition: NetConnection_as.cpp:557
Definition: NetConnection_as.h:56
The base class for all ActionScript objects.
Definition: as_object.h:161
Definition: NetConnection_as.h:55
virtual void update()
Process connection stuff.
Definition: NetConnection_as.cpp:612
NetConnection ActionScript class.
Definition: NetConnection_as.h:46
void netconnection_class_init(as_object &where, const ObjectURI &uri)
Definition: NetConnection_as.cpp:410
code
Definition: GnashKey.h:43
void notifyStatus(StatusCode code)
Notify the NetConnection onStatus handler of a change.
Definition: NetConnection_as.cpp:450
as_object & owner() const
Return the as_object that this Relay is attached to.
Definition: Relay.h:108
StatusCode
Definition: NetConnection_as.h:50
std::string validateURL() const
Make the stored URI into a valid and checked URL.
Definition: NetConnection_as.cpp:430
Definition: NetConnection_as.h:54
std::string url
Definition: gnash.cpp:58
Definition: NetConnection_as.h:52
void markReachableResources() const
Mark responders associated with remoting calls.
Definition: NetConnection_as.cpp:417
void setConnected()
Definition: NetConnection_as.h:89
void connect()
Carry out the connect(null) method.
Definition: NetConnection_as.cpp:470
A native type that requires periodic updates from the core (movie_root).
Definition: Relay.h:79
NetConnection_as(as_object *owner)
Definition: NetConnection_as.cpp:396
Definition: NetConnection_as.h:58
std::auto_ptr< IOChannel > getStream(const std::string &name)
Get an stream by name.
Definition: NetConnection_as.cpp:580
void call(as_object *asCallback, const std::string &methodName, const std::vector< as_value > &args)
Definition: NetConnection_as.cpp:564
virtual ~NetConnection_as()
Definition: NetConnection_as.cpp:404
std::string name
Definition: LocalConnection_as.cpp:151
bool isConnected() const
Definition: NetConnection_as.h:93
void close()
Process the close() method.
Definition: NetConnection_as.cpp:535