Пример #1
0
 /// <summary>
 /// The endpoint to which this endpoint is connected.
 /// </summary>
 public static Allocation * /*EndpointCore* opt(ExHeap) */ GetPeer(ref EndpointCore ep,
                                                                   out bool marshall)
 {
     // kernel methods always access the shadowed copy in deliveryImpl
     // not the user accessable copy in EndpointCore
     return(GetPeerABI(ref ep, out marshall));
 }
Пример #2
0
        public static bool PeerClosedABI(ref EndpointCore endpoint)
        {
            fixed(EndpointCore *ep = &endpoint)
            {
                EndpointCoreImplementation *epimp = (EndpointCoreImplementation *)ep;

                return(epimp->PeerClosed());
            }
        }
Пример #3
0
        public static void Close(ref EndpointCore endpoint)
        {
            fixed(EndpointCore *ep = &endpoint)
            {
                EndpointCoreImplementation *epimp = (EndpointCoreImplementation *)ep;

                epimp->Close();
            }
        }
Пример #4
0
        public static void TransferBlockOwnership(Allocation *ptr, ref EndpointCore target)
        {
            fixed(EndpointCore *ep = &target)
            {
                EndpointCoreImplementation *epimp = (EndpointCoreImplementation *)ep;

                EndpointCoreImplementation.TransferBlockOwnership((SharedHeap.Allocation *)ptr, ref *epimp);
            }
        }
Пример #5
0
        public static void NotifyPeer(ref EndpointCore endpoint)
        {
            fixed(EndpointCore *ep = &endpoint)
            {
                EndpointCoreImplementation *epimp = (EndpointCoreImplementation *)ep;

                epimp->NotifyPeer();
            }
        }
Пример #6
0
        public static int GetPeerProcessIDABI(ref EndpointCore endpoint)
        {
            fixed(EndpointCore *ep = &endpoint)
            {
                EndpointCoreImplementation *epimp = (EndpointCoreImplementation *)ep;

                return(epimp->PeerProcessId);
            }
        }
Пример #7
0
        public static void EnableDelegation(ref EndpointCore endpoint, bool allowMediation)
        {
            fixed(EndpointCore *ep = &endpoint)
            {
                EndpointCoreImplementation *epimp = (EndpointCoreImplementation *)ep;

                epimp->EnableDelegation(allowMediation);
            }
        }
Пример #8
0
        public static PrincipalHandle GetOwnerPrincipalHandle(ref EndpointCore endpoint)
        {
            fixed(EndpointCore *ep = &endpoint)
            {
                EndpointCoreImplementation *epimp = (EndpointCoreImplementation *)ep;

                return(epimp->OwnerPrincipalHandle);
            }
        }
Пример #9
0
        public static bool Dispose(ref EndpointCore endpoint)
        {
            fixed(EndpointCore *ep = &endpoint)
            {
                EndpointCoreImplementation *epimp = (EndpointCoreImplementation *)ep;

                return(epimp->Dispose());
            }
        }
Пример #10
0
        public static void MarshallPointer(ref EndpointCore endpoint, byte *basep, byte **target, SystemType type, byte *parent, int offset)
        {
            fixed(EndpointCore *ep = &endpoint)
            {
                EndpointCoreImplementation *epimp = (EndpointCoreImplementation *)ep;

                epimp->MarshallPointer(basep, target, type, parent, offset);
            }
        }
Пример #11
0
        public static Allocation * /*EndpointCore* opt(ExHeap) */ GetPeerABI(ref EndpointCore endpoint,
                                                                             out bool marshall)
        {
            fixed(EndpointCore *ep = &endpoint)
            {
                EndpointCoreImplementation *epimp = (EndpointCoreImplementation *)ep;

                return((Allocation *)epimp->Peer(out marshall));
            }
        }
Пример #12
0
        /// <summary>
        /// The event to wait for messages on this endpoint. Used by Select.
        /// </summary>
        public static SyncHandle GetWaitHandle(ref EndpointCore endpoint)
        {
            // kernel methods always access the shadowed copy in deliveryImpl
            // not the user accessable copy in EndpointCore
            fixed(EndpointCore *ep = &endpoint)
            {
                EndpointCoreImplementation *epimp = (EndpointCoreImplementation *)ep;

                return(epimp->GetWaitHandle());
            }
        }
Пример #13
0
        public static int GetOwnerProcessID(ref EndpointCore endpoint)
        {
            // kernel methods always access the shadowed copy in deliveryImpl
            // not the user accessable copy in EndpointCore
            fixed(EndpointCore *ep = &endpoint)
            {
                EndpointCoreImplementation *epimp = (EndpointCoreImplementation *)ep;

                return(epimp->ProcessId);
            }
        }
Пример #14
0
        public static void TransferContentOwnership(
            ref EndpointCore transferee,
            ref EndpointCore target)
        {
            fixed(EndpointCore *ep1 = &transferee, ep2 = &target)
            {
                EndpointCoreImplementation *epimp1 = (EndpointCoreImplementation *)ep1;
                EndpointCoreImplementation *epimp2 = (EndpointCoreImplementation *)ep2;

                EndpointCoreImplementation.TransferContentOwnership(ref *epimp1, ref *epimp2);
            }
        }
Пример #15
0
 public static bool PeerClosed(ref EndpointCore ep)
 {
     if (ep.cachedPeer != null)
     {
         EndpointCore *peer = (EndpointCore *)SharedHeapService.GetData(ep.cachedPeer);
         return(peer->cachedClosed);
     }
     else
     {
         return(PeerClosedABI(ref ep));
     }
 }
Пример #16
0
 public static int GetPeerProcessID(ref EndpointCore ep)
 {
     if (ep.peerStateValid)
     {
         EndpointCore *peer = (EndpointCore *)SharedHeapService.GetData(ep.cachedPeer);
         return(peer->cachedOwnerProcessId);
     }
     else
     {
         return(GetPeerProcessIDABI(ref ep));
     }
 }
Пример #17
0
        unsafe public static void MarshallMessage(ref EndpointCore endpoint,
                                                  byte *basep,
                                                  byte *source,
                                                  int *tagAddress,
                                                  int msgSize)
        {
            fixed(EndpointCore *ep = &endpoint)
            {
                EndpointCoreImplementation *epimp = (EndpointCoreImplementation *)ep;

                epimp->BeginUpdate(basep, source, tagAddress, msgSize);
            }
        }
Пример #18
0
 public static Allocation * /*EndpointCore* opt(ExHeap) */ GetPeer(ref EndpointCore ep,
                                                                   out bool marshall)
 {
     if (ep.cachedPeer != null)
     {
         marshall = ep.cachedMarshall;
         return(ep.cachedPeer);
     }
     else
     {
         return(GetPeerABI(ref ep, out marshall));
     }
 }
Пример #19
0
 /// <summary>
 /// Indicates if the peer endpoint is closed
 /// </summary>
 public static bool PeerClosed(ref EndpointCore ep)
 {
     // kernel methods always access the shadowed copy in deliveryImpl
     // not the user accessable copy in EndpointCore
     return(PeerClosedABI(ref ep));
 }
Пример #20
0
 /// <summary>
 /// Instruct the selectable object to stop signalling events on the given
 /// AutoResetEvent.
 /// </summary>
 public static void UnlinkFromCollection(ref EndpointCore ep,
                                         AutoResetEventHandle ev)
 {
     ep.collectionEvent = new AutoResetEventHandle();
 }
Пример #21
0
 /// <summary>
 /// Instruct the selectable object to signal events on the given AutoResetEvent
 /// rather than its normal event in order to aggregate signalling into a set.
 /// A selectable object need only support being part of a single collection at
 /// any point in time.
 /// </summary>
 public static void LinkIntoCollection(ref EndpointCore ep,
                                       AutoResetEventHandle ev)
 {
     ep.collectionEvent = ev;
 }
Пример #22
0
 public static int GetOwnerProcessID(ref EndpointCore ep)
 {
     return(ep.cachedOwnerProcessId);
 }
Пример #23
0
 public static int GetChannelID(ref EndpointCore ep)
 {
     return(ep.cachedChannelId);
 }
Пример #24
0
 public static int GetPeerProcessID(ref EndpointCore ep)
 {
     // kernel methods always access the shadowed copy in deliveryImpl
     // not the user accessable copy in EndpointCore
     return(GetPeerProcessIDABI(ref ep));
 }
Пример #25
0
 unsafe public static extern void MarshallMessage(ref EndpointCore ep,
                                                  byte *basep,
                                                  byte *source,
                                                  int *tagAddress,
                                                  int size);
Пример #26
0
 unsafe public static extern void MarshallPointer(ref EndpointCore ep, byte *basep, byte **target, SystemType type, byte *parent, int offset);
Пример #27
0
 public static extern int GetPeerProcessIDABI(ref EndpointCore ep);
Пример #28
0
 /// <summary>
 /// Wait for a message to arrive on this endpoint.
 /// </summary>
 public static void Wait(ref EndpointCore ep)
 {
     SyncHandle.WaitOne(GetWaitHandle(ref ep));
 }
Пример #29
0
 public static extern void EnableDelegation(ref EndpointCore ep, bool allowMediation);
Пример #30
0
 public static extern PrincipalHandle GetPeerPrincipalHandle(ref EndpointCore ep);