1// ConnectionFactory.cpp
2
3#include <string.h>
4
5#include "ConnectionFactory.h"
6#include "InsecureConnection.h"
7#include "PortConnection.h"
8
9// constructor
10ConnectionFactory::ConnectionFactory()
11{
12}
13
14// destructor
15ConnectionFactory::~ConnectionFactory()
16{
17}
18
19// CreateConnection
20status_t
21ConnectionFactory::CreateConnection(const char* type, const char* parameters,
22	Connection** _connection)
23{
24	if (!type)
25		return B_BAD_VALUE;
26	// create the connection
27	Connection* connection = NULL;
28	if (strcmp(type, "insecure") == 0)
29		connection = new(std::nothrow) InsecureConnection;
30	else if (strcmp(type, "port") == 0)
31		connection = new(std::nothrow) PortConnection;
32	else
33		return B_BAD_VALUE;
34	if (!connection)
35		return B_NO_MEMORY;
36	// init it
37	status_t error = connection->Init(parameters);
38	if (error != B_OK) {
39		delete connection;
40		return error;
41	}
42	*_connection = connection;
43	return B_OK;
44}
45
46