~ubuntu-branches/ubuntu/raring/virtualbox-ose/raring

« back to all changes in this revision

Viewing changes to src/VBox/Main/src-server/win/svchlp.h

  • Committer: Bazaar Package Importer
  • Author(s): Felix Geyer
  • Date: 2011-01-30 23:27:25 UTC
  • mfrom: (0.3.12 upstream)
  • Revision ID: james.westby@ubuntu.com-20110130232725-2ouajjd2ggdet0zd
Tags: 4.0.2-dfsg-1ubuntu1
* Merge from Debian unstable, remaining changes:
  - Add Apport hook.
    - debian/virtualbox-ose.files/source_virtualbox-ose.py
    - debian/virtualbox-ose.install
  - Drop *-source packages.
* Drop ubuntu-01-fix-build-gcc45.patch, fixed upstream.
* Drop ubuntu-02-as-needed.patch, added to the Debian package.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/** @file
 
2
 *
 
3
 *  Declaration of SVC Helper Process control routines.
 
4
 */
 
5
 
 
6
/*
 
7
 * Copyright (C) 2006-2007 Oracle Corporation
 
8
 *
 
9
 * This file is part of VirtualBox Open Source Edition (OSE), as
 
10
 * available from http://www.virtualbox.org. This file is free software;
 
11
 * you can redistribute it and/or modify it under the terms of the GNU
 
12
 * General Public License (GPL) as published by the Free Software
 
13
 * Foundation, in version 2 as it comes in the "COPYING" file of the
 
14
 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
 
15
 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
 
16
 */
 
17
 
 
18
#ifndef __VBox_svchlp_h__
 
19
#define __VBox_svchlp_h__
 
20
 
 
21
#include "VBox/com/string.h"
 
22
#include "VBox/com/guid.h"
 
23
 
 
24
#include <VBox/err.h>
 
25
 
 
26
#include <windows.h>
 
27
 
 
28
struct SVCHlpMsg
 
29
{
 
30
    enum Code
 
31
    {
 
32
        Null = 0, /* no parameters */
 
33
        OK, /* no parameters */
 
34
        Error, /* Utf8Str string (may be null but must present) */
 
35
 
 
36
        CreateHostOnlyNetworkInterface = 100, /* see usage in code */
 
37
        CreateHostOnlyNetworkInterface_OK, /* see usage in code */
 
38
        RemoveHostOnlyNetworkInterface, /* see usage in code */
 
39
        EnableDynamicIpConfig, /* see usage in code */
 
40
        EnableStaticIpConfig, /* see usage in code */
 
41
        EnableStaticIpConfigV6, /* see usage in code */
 
42
        DhcpRediscover, /* see usage in code */
 
43
    };
 
44
};
 
45
 
 
46
class SVCHlpClient
 
47
{
 
48
public:
 
49
 
 
50
    SVCHlpClient();
 
51
    virtual ~SVCHlpClient();
 
52
 
 
53
    int create (const char *aName);
 
54
    int connect();
 
55
    int open (const char *aName);
 
56
    int close();
 
57
 
 
58
    bool isOpen() const { return mIsOpen; }
 
59
    bool isServer() const { return mIsServer; }
 
60
    const com::Utf8Str &name() const { return mName; }
 
61
 
 
62
    int write (const void *aVal, size_t aLen);
 
63
    template <typename Scalar>
 
64
    int write (Scalar aVal) { return write (&aVal, sizeof (aVal)); }
 
65
    int write (const com::Utf8Str &aVal);
 
66
    int write (const com::Guid &aGuid);
 
67
 
 
68
    int read (void *aVal, size_t aLen);
 
69
    template <typename Scalar>
 
70
    int read (Scalar &aVal) { return read (&aVal, sizeof (aVal)); }
 
71
    int read (com::Utf8Str &aVal);
 
72
    int read (com::Guid &aGuid);
 
73
 
 
74
private:
 
75
 
 
76
    bool mIsOpen : 1;
 
77
    bool mIsServer : 1;
 
78
 
 
79
    HANDLE mReadEnd;
 
80
    HANDLE mWriteEnd;
 
81
    com::Utf8Str mName;
 
82
};
 
83
 
 
84
class SVCHlpServer : public SVCHlpClient
 
85
{
 
86
public:
 
87
 
 
88
    SVCHlpServer();
 
89
 
 
90
    int run();
 
91
};
 
92
 
 
93
#endif /* __VBox_svchlp_h__ */
 
94