/*
Copyright (c) Microsoft Open Technologies, Inc.
All Rights Reserved
See License.txt in the project root for license information.
*/
package microsoft.aspnet.signalr.client;
import java.util.Locale;
import microsoft.aspnet.signalr.client.http.HttpConnection;
import microsoft.aspnet.signalr.client.http.java.JavaHttpConnection;
/**
* Platform specific classes and operations
*/
public class Platform {
static boolean mPlatformVerified = false;
static boolean mIsAndroid = false;
static PlatformComponent mPlatformComponent = null;
public static void loadPlatformComponent(PlatformComponent platformComponent) {
mPlatformComponent = platformComponent;
}
/**
* Creates an adequate HttpConnection for the current platform
*
* @param logger
* Logger to use with the connection
* @return An HttpConnection
*/
public static HttpConnection createHttpConnection(Logger logger) {
if (mPlatformComponent != null) {
return mPlatformComponent.createHttpConnection(logger);
} else {
return createDefaultHttpConnection(logger);
}
}
public static HttpConnection createDefaultHttpConnection(Logger logger) {
return new JavaHttpConnection(logger);
}
/**
* Generates the User-Agent
*/
public static String getUserAgent() {
String osName;
if (mPlatformComponent != null) {
osName = mPlatformComponent.getOSName();
} else {
osName = System.getProperty("os.name").toLowerCase(Locale.getDefault());
}
String userAgent = String.format("SignalR (lang=Java; os=%s; version=2.0)", osName);
return userAgent;
}
}