alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Scala example source code file (RemoteLongRef.scala)

This example Scala source code file (RemoteLongRef.scala) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Scala tags/keywords

long, long, longref, remotelongref, remotelongref, remotelongrefimpl, remotelongrefimpl, string, unicastremoteobject, unicastremoteobject, unreferenced

The Scala RemoteLongRef.scala source code

/*                     __                                               *\
**     ________ ___   / /  ___     Scala API                            **
**    / __/ __// _ | / /  / _ |    (c) 2002-2011, LAMP/EPFL             **
**  __\ \/ /__/ __ |/ /__/ __ |    http://scala-lang.org/               **
** /____/\___/_/ |_/____/_/ | |                                         **
**                          |/                                          **
\*                                                                      */

// $Id: RemoteLongRef.scala 18398 2009-07-28 14:26:36Z michelou $

package scala.runtime.remoting

import java.rmi.server.{UnicastRemoteObject, Unreferenced}
import scala.runtime.{LongRef, RemoteRef}

/**
 * The trait Remote<code>RemoteLongRef provides a remote interface
 * for manipulating long integer references.
 *
 * @author Stephane Micheloud
 * @version 1.0
 */
@remote
trait RemoteLongRef {
  def elem_=(value: Long)
  def elem: Long
}

/**
 * The class <code>RemoteLongRefImpl implements a remote (global)
 * long integer reference by inheriting from the class
 * <code>UnicastRemoteObject.
 *
 * In particular, it forwards method invocations to the <code>elem
 * accessors of class <code>runtime.LongRef and implements the
 * <code>java.rmi.server.Unreferenced interface to automatically
 * remove the no more referenced binding from the registry.
 *
 * @author Stephane Micheloud
 * @version 1.0
 */
class RemoteLongRefImpl(name: String, x: LongRef)
extends UnicastRemoteObject with RemoteLongRef with Unreferenced {
  def elem_=(value: Long) { x.elem = value }
  def elem: Long = x.elem
  override def toString() = x.elem.toString
  def unreferenced() {
    Debug.info("[RemoteLongRefImpl] unreferenced: "+this)
    RemoteRef.unbind(name)
  }
}

Other Scala examples (source code examples)

Here is a short list of links related to this Scala RemoteLongRef.scala source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.