57 lines
1.7 KiB
C#
57 lines
1.7 KiB
C#
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Microsoft Research Singularity
|
||
|
//
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
/**
|
||
|
* Microsoft Research, Cambridge
|
||
|
* author: Yaron Weinsberg, Richard Black
|
||
|
*/
|
||
|
|
||
|
using System;
|
||
|
|
||
|
namespace NetStack
|
||
|
{
|
||
|
namespace Runtime
|
||
|
{
|
||
|
/**
|
||
|
* All the networking stack modules must implement
|
||
|
* this interface. The runtime uses this interface
|
||
|
* to manage the different modules.
|
||
|
*/
|
||
|
public interface INetModule
|
||
|
{
|
||
|
// get the module's name
|
||
|
string ModuleName { get; }
|
||
|
|
||
|
// get the modules version
|
||
|
ushort ModuleVersion { get; }
|
||
|
|
||
|
// an initializer for new protocols.
|
||
|
// the protocol receives the parameters
|
||
|
// from the configuration file (string based)
|
||
|
// NOTICE: should not rely on a specific initialization
|
||
|
// order, wait to StartModule invocation for inter-module
|
||
|
// operations!
|
||
|
bool Initialize(ProtocolParams parameters);
|
||
|
|
||
|
|
||
|
// start module activity, module specific.
|
||
|
// it is called by the runtime after ALL protocols
|
||
|
// are initialized and the host configuration is valid!
|
||
|
bool StartModule();
|
||
|
|
||
|
// stop module activity, module specific.
|
||
|
// it is called by the runtime
|
||
|
bool StopModule();
|
||
|
|
||
|
// destroy module, free unmanaged resources if any.
|
||
|
// it is called by the runtime
|
||
|
bool DestroyModule();
|
||
|
}
|
||
|
}
|
||
|
}
|