1%% 2%% Licensed to the Apache Software Foundation (ASF) under one 3%% or more contributor license agreements. See the NOTICE file 4%% distributed with this work for additional information 5%% regarding copyright ownership. The ASF licenses this file 6%% to you under the Apache License, Version 2.0 (the 7%% "License"); you may not use this file except in compliance 8%% with the License. You may obtain a copy of the License at 9%% 10%% http://www.apache.org/licenses/LICENSE-2.0 11%% 12%% Unless required by applicable law or agreed to in writing, 13%% software distributed under the License is distributed on an 14%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15%% KIND, either express or implied. See the License for the 16%% specific language governing permissions and limitations 17%% under the License. 18%% 19 20-module(thrift_multiplexed_map_wrapper). 21 22-export([ 23 new/0 24 ,store/3 25 ,find/2 26 ,fetch/2 27 ]). 28 29-type service_handler() :: nonempty_string(). 30-type module_() :: atom(). 31-type service_handler_map() :: [{ServiceHandler::service_handler(), Module::module_()}]. 32 33-spec new() -> service_handler_map(). 34new() -> 35 orddict:new(). 36 37-spec store(ServiceHandler, Module, Map) -> NewMap when 38 ServiceHandler :: service_handler(), 39 Module :: module_(), 40 Map :: service_handler_map(), 41 NewMap :: service_handler_map(). 42store(ServiceHandler, Module, Map) -> 43 orddict:store(ServiceHandler, Module, Map). 44 45-spec find(ServiceHandler, Map) -> {ok, Module} | error when 46 ServiceHandler :: service_handler(), 47 Module :: module_(), 48 Map :: service_handler_map(). 49find(ServiceHandler, Map) -> 50 orddict:find(ServiceHandler, Map). 51 52-spec fetch(ServiceHandler, Map) -> Module when 53 ServiceHandler :: service_handler(), 54 Module :: module_(), 55 Map :: service_handler_map(). 56fetch(ServiceHandler, Map) -> 57 orddict:fetch(ServiceHandler, Map). 58