~holger-seelig/titania/3.0

« back to all changes in this revision

Viewing changes to libtitania-x3d/Titania/X3D/Components/Networking/X3DUrlObject.h

  • Committer: Holger Seelig
  • Date: 2013-08-05 19:51:24 UTC
  • Revision ID: holger.seelig@yahoo.de-20130805195124-weg56pajdi69mt1j
Test implementation of parallel load of images.

Show diffs side-by-side

added added

removed removed

Lines of Context:
60
60
#include <Titania/Stream/InputFileStream.h>
61
61
#include <map>
62
62
#include <memory>
 
63
#include <mutex>
63
64
 
64
65
namespace titania {
65
66
namespace X3D {
81
82
        url () const
82
83
        { return *fields .url; }
83
84
 
84
 
        SFTime &
85
 
        loadTime ()
86
 
        { return *fields .loadTime; }
87
 
 
88
 
        const SFTime &
89
 
        loadTime () const
90
 
        { return *fields .loadTime; }
91
 
 
92
85
        MFString &
93
86
        urlError ()
94
 
        { return *fields .urlError; }
 
87
        { return fields .urlError; }
95
88
 
96
89
        const MFString &
97
90
        urlError () const
98
 
        { return *fields .urlError; }
 
91
        { return fields .urlError; }
 
92
 
 
93
        ///  @name Element access
99
94
 
100
95
        virtual
101
96
        const basic::uri &
102
97
        getWorldURL () const
 
98
        throw (Error <INVALID_OPERATION_TIMING>,
 
99
               Error <DISPOSED>)
103
100
        { return worldURL; }
104
101
 
105
 
        LoadState
 
102
        const X3DScalar <LoadState> &
106
103
        checkLoadState () const
107
 
        { return loadState; }
 
104
        { return loadState (); }
108
105
 
109
 
        ///  @name File operations
 
106
        ///  @name Operations
110
107
 
111
108
        virtual
112
109
        void
208
205
        getReferer () const
209
206
        { return getExecutionContext () -> getWorldURL (); }
210
207
 
211
 
        virtual
212
 
        void
213
 
        setWorldURL (const basic::uri & value)
214
 
        { worldURL = value; }
215
 
 
216
 
        void
217
 
        setLoadState (LoadState);
 
208
        void
 
209
        setLoadState (LoadState value)
 
210
        { loadState () = value; }
218
211
 
219
212
        void
220
213
        parseIntoScene (X3DScene* const, const MFString &)
228
221
 
229
222
private:
230
223
 
 
224
        X3DScalar <LoadState> &
 
225
        loadState ()
 
226
        { return fields .loadState; }
 
227
 
 
228
        const X3DScalar <LoadState> &
 
229
        loadState () const
 
230
        { return fields .loadState; }
 
231
 
 
232
        virtual
 
233
        void
 
234
        setWorldURL (const basic::uri & value)
 
235
        { worldURL = value; }
 
236
 
231
237
        struct Fields
232
238
        {
233
239
                Fields ();
234
240
 
235
241
                MFString* const url;
236
 
                SFTime* const loadTime;
237
 
                MFString* const urlError;
 
242
                X3DScalar <LoadState> loadState;
 
243
                MFString urlError;
238
244
        };
239
245
 
240
246
        Fields fields;
241
247
 
242
 
        LoadState   loadState;
243
248
        std::string userAgent;
244
249
        basic::uri  worldURL;
245
250
 
 
251
        mutable std::mutex mutex;
 
252
 
246
253
};
247
254
 
248
255
} // X3D