Line data Source code
1 : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* vim: set ts=2 et sw=2 tw=80: */
3 : /* This Source Code Form is subject to the terms of the Mozilla Public
4 : * License, v. 2.0. If a copy of the MPL was not distributed with this file,
5 : * You can obtain one at http://mozilla.org/MPL/2.0/. */
6 :
7 : // Original author: ekr@rtfm.com
8 : #include "logging.h"
9 : #include "transportflow.h"
10 : #include "transportlayer.h"
11 : #include "nsThreadUtils.h"
12 :
13 : // Logging context
14 : namespace mozilla {
15 :
16 0 : MOZ_MTLOG_MODULE("mtransport")
17 :
18 0 : nsresult TransportLayer::Init() {
19 0 : if (state_ != TS_NONE)
20 0 : return state_ == TS_ERROR ? NS_ERROR_FAILURE : NS_OK;
21 :
22 0 : nsresult rv = InitInternal();
23 :
24 0 : if (!NS_SUCCEEDED(rv)) {
25 0 : state_ = TS_ERROR;
26 0 : return rv;
27 : }
28 0 : state_ = TS_INIT;
29 :
30 0 : return NS_OK;
31 : }
32 :
33 0 : void TransportLayer::Inserted(TransportFlow *flow, TransportLayer *downward) {
34 0 : downward_ = downward;
35 0 : flow_id_ = flow->id();
36 0 : MOZ_MTLOG(ML_DEBUG, LAYER_INFO << "Inserted: downward='" <<
37 : (downward ? downward->id(): "none") << "'");
38 :
39 0 : WasInserted();
40 0 : }
41 :
42 0 : void TransportLayer::SetState(State state, const char *file, unsigned line) {
43 0 : if (state != state_) {
44 0 : MOZ_MTLOG(state == TS_ERROR ? ML_ERROR : ML_DEBUG,
45 : file << ":" << line << ": " <<
46 : LAYER_INFO << "state " << state_ << "->" << state);
47 0 : state_ = state;
48 0 : SignalStateChange(this, state);
49 : }
50 0 : }
51 :
52 : } // close namespace
|