All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jlibs.wamp4j.router.MetaProcedures Maven / Gradle / Ivy

/**
 * Copyright 2015 Santhosh Kumar Tekuri
 *
 * The JLibs authors license this file to you under the Apache License,
 * version 2.0 (the "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at:
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */

package jlibs.wamp4j.router;

import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import jlibs.wamp4j.msg.CallMessage;
import jlibs.wamp4j.msg.ResultMessage;

import java.util.HashMap;
import java.util.Map;

/**
 * @author Santhosh Kumar Tekuri
 */
public class MetaProcedures{
    private static final Map metaProcedures = new HashMap();
    static{
        register("wamp.session.count", new MetaProcedure(){
            @Override
            public void reply(Session session, CallMessage call){
                ArrayNode args = JsonNodeFactory.instance.arrayNode();
                args.add(session.realm().sessionCount());
                session.send(new ResultMessage(call.requestID, call.options, args));
            }
        });
        register("wamp.session.list", new MetaProcedure(){
            @Override
            public void reply(Session session, CallMessage call){
                ArrayNode args = JsonNodeFactory.instance.arrayNode();
                args.add(session.realm().sessionIDs());
                session.send(new ResultMessage(call.requestID, call.options, args));
            }
        });
    }

    public static void register(String uri, MetaProcedure procedure){
        metaProcedures.put(uri, procedure);
    }

    public static MetaProcedure get(String uri){
        return metaProcedures.get(uri);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy